Status Update

September 27, 2018

Status Updates (September, 2018) > September 27, 2018

Weekly Development Report

DAEDALUS

Wallet

Last week the team finished post-integration cleanup of the legacy Cardano wallet V0 API code and improved the V1 API endpoints error handling.

Since the V1 API introduced the new Cardano wallet data layer, the team had to implement a migration screen which contains all migration-related information.

As a part of a review process of the code which implements IPC driven Cardano node / Daedalus communication, the team decided to further improve the automatic Cardano node restarting logic in case it unexpectedly exits by introducing a limit for maximum restart attempts in order to prevent infinite restart loops. Also, Daedalus will first check, during its startup, if there is an already running Cardano node before trying to start a new one. In case this is the same instance it used on a previous run it will shut it down and start a new instance.

Next Cardano release will include structured logging which required the team to modify the code used for logs packing within the bug report feature which was successfully resolved.

App Platform

Last week the team continued work on the GraphQL API design and upgraded a performance testing tool to be compatible with the current design.

The application registry format was also upgraded, and the installation process and UI enhanced to collect service permission from the user before opting to install.

WALLET BACKEND

Last week the team focused on investigating memory leaks that were recently discovered in an unreleased version of the wallet code which resulted in an interim fix.

Additionally, the team did some manual wallet testing on the staging cluster and worked on clarifying the get-address API endpoint (the new API does not return an error in the case of ‘unknown’ addresses, this constitutes as a breaking change to the API, hence the extra care was taken around this).

As part of the wallet implementation, the team implemented a new --force-full-wallet-migration option which enforces the full migration to finish without any errors, before letting the node continue. The developer also wired the --wallet-rebuild-db which rewrites both databases if they are already there. A bug was discovered in the way the reset-wallt endpoint used the cancel function of restoration threads and opened a PR with a fix (not ready yet but this should have low priority).

NETWORKING

The team have created the repository ouroboros-network to contain their work on the Communication Protocol Design. A team member has brought their executable protocol specification up to a presentable form and published it there. Currently the simulation shows a producer serving one particular chain to a consumer, which finds the intersection and downloads the difference.

DEVOPS

This week DevOps efforts were focused mainly on the testnet, development workflow automation, and CI performance.

The testnet was progressing nicely, and the address discrimination functionality deployment is now almost ready for the blockchain relaunch.

Development workflow received attention in the form of branch testing/merging automation, a process that was only semi-automated before and was causing unnecessary suffering and resource waste. The new bors-ng deployment (still in the works) will allow us to overcome these and to build upon to deliver further improvements later.

CI performance had non-stop attention, with the long-term cross-compilation effort getting closer to internal release, performance metrics efforts and physical machine provisioning for lower CI latency. Several performance bugs were resolved.

The team also participated in the Daedalus wallet testing efforts, furthering automation in the area, and writing more integration/smoke tests.

Additionally, we're evaluating the long-standing CI/dev build tool divide, by addressing the interactive development workflow issues that devs have with our CI-oriented build infrastructure. We're hoping to deliver a converged solution, and are actively working out our options.

CARDANO DECENTRALIZATION

The team is looking to have a business requirement documented for Incentives and Delegation by the end of this week. Requirements will be based on the design spec and will be cross-referenced with storyboard requirements that were done late last year.

GOGUEN

Fundamental Research

Research on Ouroboros BFT and sidechains for Mantis has progressed nicely. The team are beginning further collaboration with other teams to propel the progress.

Languages and Virtual Machines

Development work on Plutus and Marlowe has continued.

ANNOUNCEMENTS

IOHK is currently looking for talented people to work with us as a Performance Management Specialist, Web Tester, Director of Product Management, Rust Software Engineer, Haskell Trainer, Technical Writer, Senior Haskell Developer - Prototyping as well as several others. Please see the IOHK Careers page for more details.