Status Update
June 28, 2018
Status Updates (June, 2018) > June 28, 2018
Weekly Development Report
DAEDALUS
Last week the team finished the implementation of form submissions using the "Enter" keyboard key. In the scope of this task, the team introduced active button state which marks a button with a focus that will be interacted with in case the "Enter" keyboard key is pressed.
The team continued to work on improvements of the Daedalus IPC setup and started with the support for running multiple copies of Daedalus which connect to different networks, for example, the testnet and mainnet. This support includes configurable ports for the installer for running the Cardano backend and labels in the user interface indicating which network is being used.
In the scope of maintenance tasks, the team added acceptance tests for the "Daedalus update mechanism" feature which make sure Daedalus shows a "New version available" notification message in case a new version of Daedalus is released and that "Apply" and "Postpone" update actions are working as expected. React-Polymorph "Autocomplete" component tests have been extended and now they cover suggestions list selection triggered by "Enter", "Tab" and "Space" keyboard keys.
The team decided to switch from NPM to the Yarn package manager which required application scripts and documentation to be updated.
WALLET BACKEND
Last week the team continued the effort to create the new wallet from their formal specification.
Work on implementing input selection for generating transactions has been completed. Apart from that, input selection is being tested against different edge cases (grouping, fees, short addresses). The task of finishing tests for input specification study and implementing input selection is very crucial. Once complete, the team will have full confidence that what we have in terms of coin selection is sound and behaves as expected.
Furthermore, the team continued to work on the function of wallet restoration from a seed. Particularly, a specialist has been concentrating on integrating work previously done on acid-state with the “wallet worker” code. At the moment they are fixing some of the public API of these two parts of the code necessary for the restoration from seed work, and as they go on they are taking care of exception handling and bracketing all resources involved.
Additionally, the team focused on the Block metadata, as per Section 9 of the spec. Also, the developers report very good progress in supporting history tracking and queries and are hoping to complete the task next week.
NETWORKING
Last week the work to speed up block verification continued. A developer added a test for decoding blocks & headers with external representation and updated the code base up to Cardano SL generators with all tests passing and benchmarks showing good progress.
CARDANO DECENTRALIZATION
Research and Design
In the effort of Research and Design for incentives, the team was trying to understand why the simulations didn’t converge with the updated formula for "pool desirability". At the end of last week, they finally narrowed down the problem to a subtle bug in the simulation code, of which a researcher spent their weekend running lots of experiments with the fixed version, tweaking parameters until they finally reached a satisfactory outcome late Sunday. Now the simulations converge again with the improved "pool desirability" formula.
GOGUEN
Languages and Virtual Machines
The team reports good progress on Plutus and Marlowe.
End Users and External Developers
The new product manager spent the week providing direction on the K/IELE workstream (wallet, testnet status) and is now starting to provide direction and plan for other areas incrementally (external developer and end user).
Testnets
Last week the team started the testing of the IELE testnet. Also, time was spent on content creation and website design for the IELE testnet.
MISCELLANEOUS WORKSTREAMS
HD Wallets
The Ledger backend APIs have been built and successfully unit and integration tested with the existing wallet backend. Unit and integration testing are ongoing while one bug was found and addressed.
Daedalus App Platform
Last week the team finished writing tests for the permissions system and added all relevant information and instructions to the app platform developer's guide.
The team has finished the modelling of the app platform domain and has started with the implementation of a domain layer as an independent module in order for it to be easily extracted if the need arises. Domain is modelled as a state tree, exposing a mutable and observable interface for applications, and can be synchronized using EventEmitters. Redux was reviewed as an alternative to MobX state tree.
In order to have a clearer base for comparison, both solutions need to be compared in actual implementation. However, at this stage, MobX state tree looks like a better solution as it enables us to easily express the domain without having to build an interface first.
ANNOUNCEMENTS
IOHK is currently looking for talented people to work with us as a Front End developer, Exchange Experience Engineer/Coordinator, Software Test Engineer, Senior Events Manager, Testnet Community Manager, Development Experience Manager as well as several others. Please see the IOHK Careers page for more details.