Status Update

June 21, 2018

Status Updates (June, 2018) > June 21, 2018

Weekly Development Report

DAEDALUS

Last week the team finished the work on "Ada redemption" screen updates - this feature is now accessible only through the application menu, and in case there are no wallets in the UI an explanation screen is shown, which instructs the user to add a wallet in order to use this feature.

In order to fix the Japanese characters issue on the Linux version of Daedalus, the team had to replace the font used in the main UI which has been finished and tested.

The team started to work on improvements of the Daedalus IPC (inter-process communication between the main process and rendering processes) setup. The end goal is to extract all of the IPC logic into a separate layer which will reduce code complexity and ease future development. In the scope of maintenance tasks, the team introduced several important acceptance tests. These tests cover wallet, transactions and addresses ordering, "About" dialog presentation and the "maximum wallets limit reached" notification.

In order to improve general UX, the team decided to implement an option of form submissions using "Enter" keyboard key. This work has been started and will continue throughout the next week.

WALLET BACKEND

More effort was put towards new wallet specifications and development.

Two team members concentrated on the task of implementing input selection, “generate transaction”. The duo also has ported the initial code to use concrete Cardano types, and started working on a substantial amount of Quickcheck properties.

One of those team members has also spent time on an input specification study. The developer successfully modified his input policies to allow a maximum number of inputs to be specified (in order to keep the size of a transaction at bay) as well as modifying the random input selection policy to better deal with some edge cases.

Another team member continued on implementing the REST (Representational State Transfer) endpoint akin to the old wallet’s restoreWalletFromSeed, but using new wallet types and storage.

The team also finalised the ‘AcidState Wallet’ PR and started work on BlockMeta initialisation.

A new team member spent the week getting acquainted with the code base. Specifically, trying to understand how WalletLayer should work and connecting the different layers to the V1 API.

API rewrite

Last week, one of the team’s main efforts were improving the wallet’s error handling. The team reports that the work is progressing nicely and plans to release the improvements in the upcoming 1.3.0 update. Currently, the team is engaged in identifying what errors can be easily triggered by the API via integration testing and addressing those errors.

NETWORKING

In the task of communication protocol design, one of the team’s senior developers has come up with a potential solution for chain selection, doing away with "recovery mode".

DEVOPS

Last week DevOps released Cardano 1.2.1 and Daedalus 0.10.1. An engineer also resolved an upstream regression in NTP and improved monitoring resolution for NTP drift on the Cardano clusters in time for the 1.2.1 update. In preparation for the 1.3 release branch cutoff the team worked to get Windows builds for Cardano passing again on the develop branch. Blockers to creating a new genesis block suitable for Cardano testnet were resolved. Developers needed a web server to host internal reports, so we provisioned one for them. Lastly, DevOps started supporting an exchange over recent performance issues and considered strategies to optimize their wallet.

CARDANO DECENTRALIZATION

Research and Design

A senior team member has concentrated their efforts on the Delegation design document. It builds upon extensive discussions involving both researchers and engineers, and describes how delegation will be implemented in Cardano, and how it will interact with the rest of the system. The current version is under review by another senior engineer, and a few sections are currently being updated to reflect recent optimizations of the design. The author will add a summary section, which will describe how each of the requirements will be satisfied by the design in the document.

Another researcher continued working on the proof pertaining to the Incentives research paper. A senior researcher ran some more experiments on the proof and successfully identified the cause of the unfavorable results of the last simulation.

GOGUEN

Fundamental Research

The team reports that an agreement has been reached on the plan for how the formal methods team will prototype multi-currency ledgers.

Languages and Virtual Machines

Plutus and Marlowe work is progressing well.

End Users and External Developers

The Product manager, who joined the team a little while ago, has spent the week familiarizing themselves with end user and external developer requirements and requests.

Testnets

Last week, the QA team focused on the IELE testnet and preparing a presentation of the overall strategy. Furthermore, the market analysis for IELE testnet have been successfully completed. The team has also baselined content and design for the IELE testnet as well as started on content creation for development work, videos, and learning through development.

MISCELLANEOUS WORKSTREAMS

Daedalus App Platform

Last week the team was focused on quality assurance tasks. The team finished writing integration tests for app installation process and integration tests for app interaction (triggering actions, receiving UI updates). The team is now focusing on writing tests for the permissions system. The team also worked on modelling the app platform domain and prototyping a solution for managing app and platform state, which will remove the hard-coded information in the view and the state. The research was done regarding the usage of the observer pattern for unlocking a reactive app interface and the usage of a state tree to allow synchronization and reduction in brittle code.

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.