Status Update

September 20, 2019

Status Updates (September, 2019) > September 20, 2019

WEEKLY DEVELOPMENT REPORT

DAEDALUS

Cardano Wallet

This week the team reviewed and tested most of the integrated V2 API endpoints which will enable the transition to Shelley features. The team also implemented a 'Wallet recovery phrase verification' feature which will help users to keep their wallet recovery phrases safe. The final pieces of the Daedalus Jörmungandr development setup are complete, with the Nix workflow now including the interactive command-line interface for secret generation. Node dependencies have also been modularized to ensure a stable and dynamic development environment while the team works in parallel to deliver both the upcoming Haskell Byron backend upgrade and the Jörmungandr-based testnet.

App Platform

This week the team worked with the Haskell wallet team to create an address introspection utility for JavaScript applications. Daedalus and other applications such as the new Cardano Explorer will be able to use this utility to perform client-side logical operations before sending network requests. The tool has been written into a low-level library that has minimal dependencies and will be a core part of the growing TypeScript offering from the team.

Cardano Explorer

This week the team finished the design work for the Cardano Explorer Shelley features. Elsewhere, the implementation of the new Cardano Explorer UI is progressing well. The 'Home' page design implementation is currently in the final review and testing phase, and the team is starting work on the rest of the pages. The Cardano GraphQL project now supports different node implementations, with Jörmungandr to be the first implementation outside of the requirements for the new Cardano Explorer. Work was also started on a small chain projection service to write block data to a Postgres database using the chain-libs derived package js-chain-libs. It will serve as a complementary and alternative option for the Explorer data sources.

WALLET BACKEND

Wallet This week the team revised the database layout to better support wallet checkpoints, which will be essential for supporting rollback (which may occur arbitrarily often in a decentralized context). The team reviewed the internal structure of the database to enable the storing of multiple checkpoints and the ability to navigate through them efficiently. The team is also wrapping up testing on the new endpoint (and associated CLI command) regarding the submission of externally-signed transactions. Meanwhile, as part of a new agile process, the team is going through a recovery phase focused on improving the quality of the existing source code and its surrounding documentation. The team also spent time migrating its continuous integration environment from one service to another for performance reasons, and in doing so made several improvements and fixes to integration test scenarios, making them more reliable and quicker to execute. Work was also done to polish some existing areas ahead of the next release. This release doesn't contain many visible changes for end-users but extends the core Haskell libraries the wallet is built upon with essential building blocks. In particular, it provides all the necessary primitives to create wallets compatible with the legacy address scheme currently in production.

NETWORKING

The team has made progress this week on networking support for local clients such as wallets and explorers on Windows operating systems. The team also consolidated and specialized the networking interface, which simplifies work for other teams when developing their clients and nodes. More low-level traces were added this week too, and the team is making progress with the chain sync pipelined client, which is expected to improve the performance of syncing the chain from upstream nodes. Finally, work continues on writing and reviewing documentation.

DEVOPS

There is no update this week.

CARDANO DECENTRALIZATION

This week the team worked on the high-speed transaction submitter tool. There was an issue with forming correct transactions using the tool, so the team has also unintentionally tested the performance of the node in rejecting transactions, which exceeded expectations. Eventually, however, the team successfully achieved the goal of being able to generate transactions substantially faster - where previously this would have taken hours, it now only takes minutes. In other work, the interaction of the launcher with Daedalus and the update mechanism are now extensively modeled and tested in QuickCheck state-machine tests.

GOGUEN

This week the Plutus team updated the vesting contract and also refactored the ledger validation code. They also worked on the development docker image. The Marlowe team continued work on the new tutorial and added symbolic execution functionality to the Marlowe Playground. In conjunction with the education team, they started to update the recordings and content for the new version of the Udemy course. The new auction chapter for the Plutus ebook was reviewed and finalized this week too. Updates were also made to the extended UTXO chapter. A new edition of the book is being prepared, and the new version will be uploaded to the publishing portals shortly.