Status Update

November 22, 2018

Status Updates (November, 2018) > November 22, 2018

Weekly Development Report

DAEDALUS

Wallet

This week the team fixed all newly discovered issues during the first QA phase of the upcoming Daedalus 0.12.0 and Cardano 2.0.0 release.

The fixes and improvements include:

  • adding the network name (mainnet or testnet) to the Daedalus title bar so that it is easier to identify which network Daedalus is running on

  • removal of wallet import and export features from Daedalus testnet build

  • a fix for a caret positioning issue on the transaction amount input field

  • a fix for a low-quality Daedalus window icon on Linux

  • a fix for the support-request feature submission issue where it was impossible to submit a new support request if the user had already downloaded the logs prior to opening the support-request dialog

The team has improved acceptance test performance by using Cardano node state caching to reduce screen reload time. The full test suite now takes approximately 9 minutes to complete, a reduction of 5 minutes.

In the scope of regular maintenance tasks, the team has continued to work on quarterly Daedalus dependencies updates.

A new version of React-Polymorph framework has been released on npm. It contains several important changes such as refactored flow-type setup and improved flow-type declarations and lint fixes which are targeted into making the framework more stable and robust.

App Platform

This week the team started to migrate existing Daedalus components into the Cardano wallet app running on the Daedalus app platform. The core idea was to reuse as much of Daedalus' functionality as possible while using the new GraphQL layer on top of Cardano SL to perform blockchain operations.

WALLET BACKEND

Last week the team set up a new cardano-wallet GitHub repo with a complete CI pipeline which includes builds, tests with coverage reports, linters, and automated export of the API documentation. The engineers also completed analysis on the submission layer and the node-to-node protocol, and produced outputs with detailed diagrams and explanations about the current behaviour. It appears that not much work will be needed to decouple at the submission level, so the team started removing cardano-sl dependencies on cardano--wallet to achieve full structural decoupling.. The team also moved the node monitoring and node management API onto core nodes, and adjusted the node’s command line interface accordingly.

NETWORKING

A senior engineer worked on generalization of the typed protocol definitions so that they permit early yielding/awaiting for latency hiding. Other team members analyzed requirements for the peer discover layer and are looking for an in-house solution.

DEVOPS

This week DevOps were mostly busy with extending the scope of CI and incident management. Additionally, the team worked on testing automation, integration of new repositories, Zendesk support, and the Goguen project.

The CI side saw time spent on multiple fronts. Efficiency work included continued effort on Windows cross compilation (in particular the massive update of the Cardano software stack to GHC 8.4/LTS 12), merge queue workflow automation, a CI prototype workstream, and improved machine support.

The CI scope expansion was due to the continued enrollment of repositories carrying the Cardano rewrite, further work on cardano-shell, cardano-wallet, and the Plutus project, and also deeper automation of cluster testing.

Goguen clusters also suffered from a number of operational issues and had to receive a lot of our attention - but we also managed to refactor their deployment toolstack, clean up the DNS infrastructure, improve documentation, and fix bugs to create a smoother engineer workflow.

Last but not least, we also helped with support desk debugger infrastructure and assisted in preparation of the 2.0.0 release.

CARDANO DECENTRALIZATION

The team has begun an initial proof of concept for the integration of a subset of the executable specification of the ledger rules with the node prototype, and a review of the interactions and interface. A team member presented the architecture of the node and the role of the consensus layer to the company, and has made further progress on the design which now includes chain validation.

Most of the ledger interface is defined, although this can only be fully completed after the ledger layer team is done. Engineers settled on a basic design for on-disk representation of the immutable tail of the blockchain and interaction with the volatile prefix. The team has started mocking out a test implementation, and also started work on a test infrastructure that will allow them to test things like disk failure.

ANNOUNCEMENTS

IOHK is currently looking for talented people to work with us as a Rust Software Engineer, Haskell Trainer as well as several others. Please see the IOHK Careers page for more details.