Status Update

July 19, 2019

Status Updates (July, 2019) > July 19, 2019

Weekly Development Report

DAEDALUS

Wallet

This week the team worked on the implementation of process management for the decoupled cardano-wallet and node. Once this work is done, the team will start with the integration of the V2 API and all of the BIP-44 related UI changes.

Work has also been completed to improve checks for clock synchronization. For Daedalus to work and the Cardano node to process blocks and synchronize with the blockchain, the clock on the user's machine needs to be synchronized with global time. Before reporting an issue with clock synchronization and stopping operation, Daedalus will now perform two additional tests for a total of three confirmations that the clock is not synchronized. This will reduce the number of false reports.

The team has put a lot of effort into completing the work planned for the upcoming Cardano Wallet 1.6.0 release, which includes Daedalus 0.14.0 and CardanoSL 3.0.2.

Finally, the work on Daedalus logging improvements is in the final testing and review stage.

App Platform

This week the team completed tasks for the Daedalus backend upgrade project, refined the platform’s full-node application stack design with optimizations now deferred from the Daedalus upgrade, and improved the smart contract stack JavaScript client.

The focus of the backend upgrade tasks was refactoring the API to align with cardano-wallet and process management changes. Initial work to enable frontend development against the new backend was also completed, including the development of a JavaScript launcher that will be used within the full-node application stack.

The smart contract stack JavaScript client previously handled transaction signing and network submission, but this week, the design was simplified to abstract the complexity of connecting and receiving signing requests. The client now expects the application to handle transaction signing and submission. The Cardano JavaScript SDK provides the functionality for this part of the process for Plutus-based implementations. The client also now wraps the GraphQL API with a simplified interface for convenience; however, the instance of ApolloClient is still exposed for standard integration into modern web apps.

BACKEND OPTIMIZATION

The team is investigating a more complete software solution which can be cross-compiled into several platforms with Linux, OSX, and Windows as primary targets. A lot of work was also done this week towards feature completeness. A handful of features that were judged as low priority were initially left out, and the time has come for their implementation to ensure that the new wallet backend is a genuine, equivalent-or-better replacement for the existing software currently deployed and distributed to the community.

NETWORKING

This week the networking team has been working on subscription management and its first integration with cardano-node. The function has been demonstrated in an internal meeting. The team has been doing some refactoring: changing the point type which is used to explicitly reflect the genesis point, as well as refactoring the network-mux package. The team also worked on improving tracing, and a pull request has been prepared which extends typed protocol trace messages with peer id.

DEVOPS

The team continued work on a number of items this week. The jormungandr-nix implementation now has added helper scripts for sending transactions and creating stake pool certificates, and can generate Windows Chocolatey packages. As a result, the 0.2.4 update has been pushed to chocolatey.org and passed automated review, although it's still pending final manual review before it will be published.

In other work, the cardano-node genesis creation tool has been completed, and the iohk-ops repository now has integrated cardano-node and can deploy an OBFT cluster using the new Haskell node.

CARDANO DECENTRALIZATION

This week the team finished the implementation of the ChainDB, which now enables the node to write to disk, a significant milestone. Elsewhere, the focus this week has been on the integration into cardano-node and preparation for the upcoming internal demonstration. The setup now shows consolidated logging in one terminal and the running nodes in another. The nodes also have a textual user-interface with live indication of CPU and memory usage taken from the node's process state. More indicators and metrics like chain quality and progress of block creation will be added in the future.

In collaboration with DevOps, the team has implemented a unified configuration that includes parameters from CLI arguments, from loading configuration files, and the preset constants in the shell. Work has also started on the updater, which involves many other teams including backend, frontend, and DevOps.

GOGUEN

This week the Marlowe team discussed their draft for the third version of Marlowe with researchers, as well as discussing the future of Marlowe and Blockly with the wider team. The new version of Marlowe is based on feedback from the educational course in Ethiopia and the Miami summit, as well as general user feedback received elsewhere.

The education team has been adding the finishing touches to the upcoming Plutus ebook, as well as coordinating and planning what to write next.

ANNOUNCEMENTS

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