Status Update

May 1, 2020

Status Updates (May, 2020) > May 1, 2020

WEEKLY DEVELOPMENT REPORT

Daedalus

Wallet

This week the team worked on reimplementing the wallet recovery phrase verification feature to improve the overall user experience. They also improved the delegation fee calculation when delegating or undelegating stake, enhanced the handling of form submission, and added to the automated testing suite. ReactJS dependencies were also updated.

App Platform

There is no update from the application platform team this week, since they’ve been helping the main Daedalus team with development work.

Cardano Explorer

There is no update from the explorer team this week, since they’ve been helping the main Daedalus team with development work.

Wallet backend

This week the team worked on compiling the Adrestia user guide, which is designed to be an informational hub that connects all existing documentation so that users can find what they need easily and effectively. It also includes common definitions and FAQs.

The team also fixed a few small bugs this week, as well as removing password validation for legacy wallets due to the need to be backward compatible. Work was done on support for public key derivation via the wallet command line, and soon it will be possible to pipe commands to make using the CLI easier as well.

Progress was made on the benchmarking tests this week and the team is now getting reliable results across multiple benchmarking runs, allowing them to be plotted over time to identify any potential regressions. The team also began to experiment with request pipelining of Ouroboros mini-protocols, and initial results are positive, indicating a potentially significant reduction in wallet restoration time.

Finally, the team has improved a swathe of documentation related to Cardano GraphQL, as well as improving their CI workflow and reworking the coin selection API package to make it more user-friendly.

Networking

This week the networking team has been working on a bug in the handshake codec that manages version negotiation. It was throwing a decoder error when it received an unrecognized version number, but the issue is now fixed, and tests have been added to verify version negotiation in similar scenarios in the future.

The team also fixed some network issues with the DNS subscription manager, as well as adding timeouts for the sending of multiplexer segments. Finally, work began again on integrating the connection manager for the Shelley release and on improving the CLI tooling and the Shelley node itself.

DevOps

This week the DevOps team has been testing the Shelley CLI tools, ensuring that they can generate genesis blocks and run nodes in Praos. The team has successfully had nodes running and creating blocks in three regions of the world for 48 hours now, although no transactions have been submitted as part of the tests yet.

The team also worked on Daedalus installer improvements this week, adding detection for unsupported operating systems at install time, as well as enabling the installers to support WebAssembly code from the JavaScript chain libraries.

Elsewhere, the team worked on improvements to the Cardano GraphQL NixOS service so that it supports all configurable environment variables and is able to export performance metrics to Prometheus. They also worked on the Nix packaging and deployment logic for the new explorer frontend.

Cardano Decentralization

This week the team ran their first successful tests of a completely decentralized Shelley network, with blocks issued by stake pool operators rather than genesis delegates. The success of this test is a significant milestone, validating the ledger and consensus implementations of the team.

Elsewhere, the team added new annotated decoders in the Shelley ledger for blocks, block headers, and transactions. They also added stake pool relays and made the active slot coefficient a global constant rather than a protocol parameter.

The team also added the cryptographic algorithms used in the implementation to the specification this week, as well as fixing the last of the issues with heap exhaustion in the property tests. Finally, one of the transition rules was reworked slightly due to problems during integration, and the associated pull request is currently going through the CI tests.

Goguen

This week the Plutus team added a type parameter for contract identifiers to the smart contract backend (SCB). They also worked on the web frontend to plutus-scb and added some multi-agent tests. Finally, they continued to work on an approach for spending policies for currencies.

The Marlowe team finished updating the online tutorial that is part of the Marlowe Playground. In addition, they created a series of educational videos on Marlowe and are working with the education team on ways to use these more widely. They also spent time working on Marlowe contract JSON serialization for Haskell and PureScript interaction.