Status Update

May 22, 2020

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

WEEKLY DEVELOPMENT REPORT

Daedalus

Wallet

This week the team continued to work on hardware wallet integration, as well as finishing an overhaul of Japanese translations across the entire Daedalus user interface.

In the scope of regular maintenance tasks, the team has been working on improving the structure of the general dialog component and updating ReactJS dependencies.

The team has also finished the implementation of the wallet recovery phrase verification feature for Incentivized Testnet wallets, which will be released in the next version of Daedalus for the Incentivized Testnet.

Adrestia

This week the Adrestia team has been working on initial integration of the Cardano node in Shelley mode. New functionality includes the partial wiring of the underlying engine to the API, an adjustment to the networking layer to deserialize Shelley-specific data-types, and a test bench for running a self-node with faucets when running integration scenarios.

The team has also been working on implementing transaction support, although the binary formats and other specifics of the implementation are still being finalized on the node.

Work was done this week to reduce code duplication by re-using some addresses within cardano-wallet. However, it is not possible to re-use all of the addresses due to some refinements required to create a more efficient platform.

More progress was made on the API this week, particularly the fee estimation rework. The API now returns a lower and upper bound for fees, backed by a statistical approach to get more reliable results, especially on bigger UTXOs.

The team also significantly reduced both the time and space required to store sequential addresses and reduced the space needed to store random addresses without adding any significant time to the operation. Normal wallets will not notice much difference, but these reductions will have a significant impact on larger wallets.

Finally, the latest Docker tag now references the latest code on the master branch, rather than the latest ‘stable’ release. .

Networking

This week the networking team has been fixing an issue that caused high CPU usage on macOS systems, which turned out to be the result of a bug in the Glasgow Haskell Compiler (GHC).

The team also made progress towards a bidirectional multiplexer this week, as well as calculating the bounds of header sizes ahead of the upcoming Shelley release. This allowed the team to verify that the existing ingress queue limits will work with the current set of cryptographic primitives in use for Shelley.

Elsewhere, the team has been working on a server-side termination message for the transaction submission protocol, which allows requests to be made to the consensus layer to cooperatively shut down all mini-protocols.

Finally, the team worked on refactoring the instantiation of the Ouroboros network protocol during consensus. Consensus protocol applications can now make decisions on the negotiated version during the handshake protocol.

DevOps

The DevOps team supported the deployment of a new explorer version this week, as well as helping the Friends and Family testnet development team with IOHK stake pool registration.

The team worked on the systemd service socket activation integration for Cardano node with NixOS this week. Work has also been done on the initial faucet integration for the Shelley wallet, and the team has been building Rust code with Naersk for Jörmungandr and other Rust libraries. They’ve also been integrating Rust libraries with haskell.nix.

Cardano Decentralization

This week the team made improvements based on feedback from the Friends and Family phase of the Shelley Haskell testnet, including updates designed to improve the user experience and interface.

The team also worked on debugging transaction generation, reconstructing the timeline of block creation and diffusion using benchmarking data, and improving the automation of the benchmarking pipeline using Nix.

Goguen

This week the Plutus team made it easier to update the benchmarks by adding a PLC source file, together with the serialized version. In addition, they upgraded the Nix packages on the deployment machine and made improvements to tidy up line endings within the code. Finally, they made updates to the state transfer during static analysis. The Marlowe team moved static analysis into the Marlowe project and added warnings for empty choice lists in the Marlowe Playground. They also worked on updates to the Isabelle build task for Nix/Hydra.