Status Update

November 8, 2019

Status Updates (November, 2019) > November 8, 2019

WEEKLY DEVELOPMENT REPORT

Daedalus

Wallet

This week the team continued with work on UI changes required for the Incentivized Testnet Daedalus release. These included enabling parallel wallet restorations, updating the wallet restoration and syncing notifications, and implementing legacy wallet UI changes. This week also saw the addition of a network information overlay which will contain all relevant network information for users. The bug icon has been replaced with a network badge which, when clicked, opens the network information overlay. The rewards screen has also been updated. ​

App Platform

The team was focused on helping out with work on Daedalus and the new Cardano Explorer this week, so there are no updates for the application platform. ​

Cardano Explorer

This week the team worked on solidifying the client-side state handling, formalizing the search and data feeds features, and implementing integration tests.

A continuous deployment process was established for the application bundle this week, utilizing environment configuration to build a range of targets covering different networks and Cardano eras. This process is intended to allow iterative releases at various stages of development with a short loop to QA and production.

Wallet backend

This week the team has been working on major refactoring of the wallet core engine, which will enable the handling of new Shelley addresses with delegation capability. The team is also actively working on delegation certificate submission and recognition to allow users to take part in delegation.

Meanwhile, work has progressed on stake distribution, despite some limitations in the Jörmungandr REST API. An ‘apparent performance’ metric is now provided for each stake pool, allowing them to be ordered by a frontend application.

Finally, a few minor bug fixes were implemented this week.

Networking

This week the team has been working on network-mux library changes required by the peer-to-peer component, specifically delayed or on-demand startup of mini-protocols and mini-protocol shutdown and restart. Progress has been made on the peer-to-peer component itself as well, and the team has been working on graph simulations of a peer-to-peer network using the following topologies: cycle, cycle with a fixed number of shortcuts (as in Poldercast), and random regular graphs (graphs with a fixed number of outgoing edges). The results show that random regular graphs exhibit expected block diffusion results that are better, both in absolute value and scaling behavior, than the use of cycles or cycles with shortcuts. This is consistent with the complexity results of small-world graphs.

Elsewhere, the team submitted the first pull request with bindings to Windows asynchronous I/O operatics (using I/O completion ports). The NTP client was also extracted from the cardano-sl repository and is currently under code review.

DevOps

The DevOps team has been busy this week supporting the work for the Incentivized Testnet.

Cardano Decentralization

This week the team worked on implementing an infrastructure for measuring the actual heap space used by data structures, and for checking that they do not contain any unexpected thunks. It is now possible to validate, as part of continuous integration processes, that there are no space leaks.

Work has also been done to reduce the memory usage of the ledger state and the ledger database in the consensus layer. Thanks to the use of purely functional data structures, it’s possible for the ledger database to share data across multiple historical snapshots of the ledger, which are kept to support rollback and the validation of potential network forks. As a result, the ledger database – which keeps 22 snapshots of the ledger state in memory at all times – now uses only 5% more memory than a single copy of the ledger state.

Goguen

This week the Plutus team integrated their published papers into the top-level README file to increase their visibility. They also provided some type checking for input-output pairs.

The team also updated the types used in the ledger contracts for the debug output that is printed. They also made some general improvements to Nix, purty, and asciidoctor material across the project.

The Marlowe team worked on the Marlowe 3 interpreter implementation this week.