Status Update

October 25, 2018

Status Updates (October, 2018) > October 25, 2018

Weekly Development Report

DAEDALUS

Wallet

This week the team finished all the work planned for the upcoming Daedalus 0.12.0 release. All of the code changes have been reviewed, approved, and tested. The team has prepared a release branch which will go through the QA process.

In order to improve the test coverage of the IPC-driven Cardano node / Daedalus communication, the team has worked closely with DevOps on the development of Cardano node fault injection features which will enable the team to predictably test Cardano node behavior.

The team is still working on the optimization of the application environment setup and disabling of the Node JS integration in the rendering process. Both of these tasks introduce a lot of code changes, which makes the code review process more demanding and time-consuming.

As a part of the regular maintenance tasks, the team is working on Flow.js setup improvements. The team has fixed a small issue with the Daedalus antivirus notification close button's background color during hover state, and another issue with maximum decimal places handling within the React-Polymorph's NumericInput component.

App Platform

This week the team collaborated with DevOps to finalize the Cardano SL Docker image improvements, support the current platform prototype, and provide a development environment independent of Nix. In addition to single nodes, a new demo cluster image will be available as an alternative to the Nix script.

The Cardano SL service was extracted into a separate module that now serves its own GraphQL endpoint, which the platform can use with first-class support. This makes the service more flexible, allowing it to operate on its own or be used in other projects. A Dockerfile based on Alpine was included for container deployments.

A performance and usability study of the new API was initiated using a fork of Daedalus, which serves as a good test bed for side-by-side comparisons.

WALLET BACKEND

Since the team has completed all of the main features for the wallet backend, the engineers spent the week on addressing bugs found during integration of unreleased code.

Additionally, the engineers completed working on improving the performance of pre-filtering of API responses.

NETWORKING

Last week the team held a meeting with several senior engineers to discuss the integration of the Communication Protocol Design. The team architects are in the process of using a chain selection implementation design, created by a senior engineer, to power the protocol by way of their typed-transition approach.

DEVOPS

DevOps updated the mainnet cluster to run Cardano 1.3.1 and published the Daedalus 0.11.1 update to the blockchain. An engineer also started discussions with a developer working on the log-classifier project to arrange a deployment. Once deployed it will keep Technical Support and the developers current on the most common problems found in logs provided by bug reports.

An engineer on the team discovered and diagnosed an infinite loop in Cardano wallet, which was soon fixed by developers. Issues were discovered in Linux Daedalus development builds, including hyperlinks failing to open in the browser and icons failing to render. An engineer implemented fixes for both. The hyperlink issue was due to sandboxing provided by nix-bundle not giving Daedalus an obvious way to load the browser. To work around this the engineer implemented a patch which allows nix-bundle users to enable an escape hatch mechanism to the host environment. More work was done to add failure injection to cardano-node to facilitate Daedalus testing.

The team continues to improve continuous integration, continuous deployment, and the developer experience. An engineer made progress separating the build and check phases in nix builds, so we can optimize scheduling of large evaluations on Hydra continuous integration. As more modular Cardano repositories are being created, DevOps engineers have been engaging with developers to ensure that testing and some form of continuous integration are being implemented. Plans have also been made to implement a small proof-of-concept Bazel+nix solution in one of the existing repositories, so engineers throughout the company can evaluate whether Bazel may be a helpful addition to their codebases. To simplify integrating, testing, and using Cardano node, wallet, and explorer, a DevOps engineer has started working on continuous deployment for publishing Docker images to Docker Hub

CARDANO DECENTRALIZATION

Design

A senior architect has made further revisions to the delegation design specification since last week and the latest spec has been sent out for review.

A senior engineer indicated that they need more time to work on the technical implementation plan and will look to have this complete with high-level estimates shortly. This will then be circulated to the development team for independent review and feedback.

Development

The team worked to find and fix a performance regression, as well as write documentation. A team member spent their week working with the sl-formal-spec team and will continue the work this week.

Furthermore, the team’s architect has prepared an implementation of Ouroboros BFT in the existing code.

GOGUEN

The team worked to develop a draft test and quality plan for Plutus and Marlowe, as well as enhancing the test and quality plan for K/IELE to include gas model testing and performance and benchmarking.

Also, the team oversaw RuntimeVerification work on the Plutus-IELE compiler, LLVM backend, K-Haskell, gas Model, and logging and extending the Remix IDE for KEVM.

Team members concentrated on Plutus and Marlowe development, including DevOps work on mockchain and GHCJS which resulted in a successful execution of the first Plutus program on mockchain.

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 as well as several others. Please see the IOHK Careers page for more details.