Status Update

May 10, 2019

Status Updates (May, 2019) > May 10, 2019

Weekly Development Report

DAEDALUS

Wallet

This week the team worked on improving the navigation of application menu screens. Since all these screens appear in a dialog-like form, only one of them should be active at any time.

A new 'Help and Support' application menu has been introduced. The existing 'GPU Safe Mode' option has been moved from the 'Daedalus' menu into the newly added one, along with the three new items: 'Download Logs', 'Support Request' and 'Known Issues'.

The team changed the way the 'GPU Safe Mode' feature works by introducing a confirmation dialog which clarifies what this option means and when it should be used. Additionally, the UI designs for Shelley features have been completed and the team will be starting with their implementation next week.

App Platform

This week the team completed initial work on a JavaScript SDK for Cardano, which provides an interface for developers to add key management and transaction handling features to an app. The module uses the Cardano WASM bindings for cryptographic operations and uses a key management interface to allow wallet implementations to be written as an extension. An in-memory manager was implemented as the default, but support for popular hardware wallets is coming soon.

BACKEND OPTIMIZATION

With most of the team absent this week, it was an excellent opportunity to perform some deep repository restructuring and re-organization of the source code to prepare for the upcoming integration with the Rust node. After finalizing various bits of testing related to the new transaction builder, the wallet core code has been completely decoupled from any protocol-specific elements (like network serialization formats, or address representation). The core code of the wallet backend can now work in practice with any UTXO-based cryptocurrency, regardless of how the protocol works internally. This is especially powerful in terms of integrating with both the Shelley Haskell and Rust nodes. It will allow the wallet to cope with any possible discrepancies while still preserving the old backend as a viable option during the transition (and for comparison).

NETWORKING

This week, the team completed work on concurrency and state management between the threads involved in block fetch logic. Property-based tests have been included, although coverage is still partial at the moment. Engineers have started to work on the dynamic mux layer and are also running an experiment on using named pipes on windows for connecting with clients. The team has also identified and fixed some dependency problems in the Byron proxy related to cardano-sl and presented a demo of the Byron proxy. Documentation of Shelley connectivity management has begun, as well as designing behavioral objectives.

DEVOPS

Continuous Integration

The team continued work on integrating nix-tools with the new repositories, including cardano-shell and plutus.

Monitoring

The team continued with monitoring tooling migration and tested the changes in an isolated environment. The changes have been finalized, but have not yet been deployed to all environments. The team will combine this roll out with the implementation of central logging changes.

Central Logging

The team started working with a new central logging tool to replace the old one. The team is currently investigating the available options to capture Cardano application logs. With the Shelley code base, the team will move to having iohk-monitoring-framework log directly to the new logging tool.

Stakepool Tooling UI

The team has started designing the UI for stake pool operators to handle common tasks. The stake pool tooling will also support a fully command-line interface for scripting.

CARDANO DECENTRALIZATION

Research and Design

Work has been progressing on the formal specification for the transition from Byron to Shelley, and the team completed the first round of review this week. Some changes are required following the review, which the team will be working on in the coming week.

Development

Great development progress this week with the team completing the implementation of the header-body split, which they’ll be demoing internally soon. Previously, both header and blocks were downloaded together, whereas now headers are downloaded and validated separately before blocks are downloaded from only selected peers. The completion of this milestone marks the removal of the last prototyping simplification of the Ouroboros implementation, and thus the completion of the final production design.

Additionally, the completion of the header-body split also acts as an integration milestone for the consensus and network layer, with the consensus layer making more complete use of the network layer functionality, including the block fetch protocol and block fetch decision logic.

GOGUEN

This week the Plutus team started working on the specification for extended UTXO. They were also busy with enhancements and fixes for the Transaction tab in the Plutus Playgrounds, and a fix for the drag and drop functionality in Firefox.

This week the Marlowe team were working on sample tests and also general improvements in Meadow. Subscriptions in the online Udemy courses for both Marlowe and Plutus continue to grow, and the feedback continues to be positive. The Education team were working on translating the captions in these courses and on including subtitles with the help of the community. Work is continuing on the initial chapters of the Plutus ebook.

ANNOUNCEMENTS

IOHK is currently looking for talented people to work with us. Please see the IOHK Careers page for more details.