Status Update

August 16, 2019

Status Updates (August, 2019) > August 16, 2019

Weekly Development Report

DAEDALUS

Cardano wallet

This week the team made a couple of additions to the upcoming Cardano 1.6 release: the ‘Help’ menu has been extended with a new ‘Safety Tips’ option which opens a related Support Portal article, and a small issue has been resolved where the old ‘GPU safe mode’ text was showing in the Daedalus window title bar while the ‘Blank screen fix’ setting was enabled.

The team has also started the implementation of the redesigned wallet creation wizard. The new design is better organized and provides more information about wallet creation, backup, and recovery processes, which should make even new users more comfortable using Daedalus.

In the scope of regular maintenance tasks, the team worked on improving the Storybook build setup. Build time has been significantly reduced which should eliminate CMS service deployment timeouts, which had caused issues with the QA team’s manual tests in the past.

Finally, the theme management optimizations have been finished. The themes are now much more scalable and the whole process of working with the themes has been properly documented, including the creation of video tutorials with a detailed theming walk-through for developers and contributors.

App platform

This week the team implemented configurable dependency management functionality in the application platform, including fetching from the remote repository, integration with the electron packaging process, and child process management during platform runtime. Work has also commenced on TCP port management of running services.

The design of the Cardano GraphQL codebase has been established, with initial work on the ledger model ongoing. The schema will cover all the features of Cardano, and since it's not coupled with a programming language, nor a particular transport protocol, it will be a suitable candidate for a Cardano API. The team is using a code generator to create TypeScript typedefs for internal use in the server implementation, but this and other outputs will be produced within the CI process for consumer code to perform static type checking.

BACKEND OPTIMIZATION

The team is now fully occupied with the support for the random derivation address scheme, which has required extensive redesign and code changes to enable the core engine to work with either random or sequential derivation. Some remaining work has also been wrapped up regarding filtering and sorting for the transaction API.

The team is also currently reviewing development processes to improve efficiency and make gains in both productivity and code quality. An updated process will be in effect soon.

NETWORKING

This week the team has been working on error classification architecture in the subscription worker, which will help to decide which errors are fatal to a particular connection, and which ones are fatal to the node itself. The team has also been improving testing of the multiplexing layer and progressing with documenting the design.

DEVOPS

This week the DevOps team updated Jörmungandr-nix to version 0.3.2 and created packages for all three main operating systems via Snappy, Chocolatey, and Homebrew. An explorer Python API has also been added as part of the Cardano 1.6 release to ensure the provision of the correct address summary endpoint.

CARDANO DECENTRALIZATION

This week the team started hooking up the tests for invalid chains in the Byron re-write code. As well as succeeding as expected, it's also important that the validation code fails as expected too. Otherwise, it could just be accepting lots of garbage input without complaint. Progress has also been made this week on the Shelley hard fork combinator, which allows the combination of the code of two consensus algorithms into a new one that does a hard fork between them, providing a nice modular design.

Additionally, thanks to the comprehensive property testing that has been underway, a team member found a very subtle bug that existing tests hadn't caught yet. It’s much cheaper to find and fix bugs during development than during QA or in production, and the bug in question made some transaction lookups return the wrong transaction, a problem which would have been difficult to reproduce and diagnose once in a production environment.

GOGUEN

Last week the Plutus team made updates to some contract types and also improved the testing outputs for contracts. They also replaced the game and crowdfunding contracts with new versions and worked on the mock wallet backend, a mockchain with an HTTP interface that simulates wallets interacting with the blockchain for testing purposes. The Marlowe team resolved a semantic merge issue with the Marlowe interpreter and fixed some minor bugs. The education team communicated with the students of the Plutus Udemy course to promote the Plutus ebook this week. They also continued work on new chapters within the ebook.

ANNOUNCEMENTS

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