Status Update

April 9, 2020

Status Updates (April, 2020) > April 9, 2020

WEEKLY DEVELOPMENT REPORT

Daedalus

Cardano Wallet

This week the team completed and released Daedalus Flight 1.0.0-FC2. The new release fixes an issue with address compatibility, as well as providing general performance improvements.

Application Platform

This week the team worked on implementing changes in the cardano-js library which are required to support a new Daedalus feature that allows users to verify their wallet recovery phrase.

Cardano Explorer

This week the team team added some analytics tracking to the explorer and finished all performance optimization tasks.

WALLET BACKEND

This week the team has been finishing up integration with the new Cardano node. Their most significant achievement has been to fill the remaining gaps in the Byron API to fully enable Daedalus Flight. The API now has a total of 38 endpoints, working as an interface for both the Jörmungandr and Haskell nodes, allowing it to support the Byron mainnet, Icarus, Trezor, Ledger, and Incentivized Testnet wallets.

The team has also finished implementing full command-line support for Byron wallets via the new Cardano node, as well as finalizing the JavaScript launcher library that enables Daedalus to spawn and monitor multiple processes directly. With this new launcher, Daedalus no longer needs to rely on fragile inter-process communication. The launcher is cross-platform compatible and works for both Rust and Haskell nodes.

Finally, the team has improved their continuous integration set up, allowing them to to easily build, test, and distribute the wallet backend with both Rust and Haskell nodes on all supported platforms, as well as run nightly benchmarking and migration tests. They will also be able to monitor the synchronization of the backend with a variety of wallet simulations on the mainnet.

The first draft of the coin selection library has also been started, with the goal of creating a clear specification of the coin selection algorithms that have been implemented in the wallet backed, as well as their properties and clear terminology definitions.

NETWORKING

This week the networking team has been focusing on finishing and testing work required as part of the Byron reboot rollout. A few issues were fixed, including ensuring that the DNS subscription worker times out correctly, and that the Win32 network library can support at least 10,000 connections. The team has also been working on testing and profiling on Windows platforms.

DEVOPS

This week the DevOps team have been assisting the Daedalus team with identifying a stable Daedalus Flight build for release. They’ve also been doing preparatory work on the faucet for the upcoming Shelley Haskell testnet, as well as helping the explorer team with build and deployment for the new Byron explorer.

CARDANO DECENTRALIZATION

This week the team has been working on a hard fork combinator, designed to allow two different network protocols to be combined together so that one can transition into the other with a single hard fork. This has proven to be surprisingly difficult, but the team is working hard and resolving issues at a good pace.

Elsewhere, the team has added a few more tests to the testing suite for Shelley features, as well as working on transaction generators. These transaction generators are designed to generate possible transactions, which can then be passed through the protocol tests to spot errors.

Finally, the team has started work on annotated decoders, which provide a way to avoid serialization and could be widely implemented in the Shelley ledger if they prove to work well with the consensus layer. The team has also improved the performance of the nightly continuous integration testing, and has all but one test running successfully now.

GOGUEN

This week the Plutus team worked on improving the performance of abstract machines, as well as working on a new approach for the error term in the metatheory package. In addition, they removed the notification/current slot constructor and made improvements to the deployment server documentation.

The Marlowe team continued work on the new design for the Marlowe Playground. They made some general UX improvements, including the layout of the input and transaction composer buttons, a clearer distinction between items that can be clicked in the bottom panel, supportive messages for when there are no warnings and errors, and a reduction in the size of the sidebar to improve visual appearance. They also added lint tests and resolved some minor issues.