Status Update

October 4, 2018

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

Weekly Development Report

DAEDALUS

Wallet

Last week, the team finished the implementation of the new Cardano wallet data layer migration screen and continued to work on testing of the IPC driven Cardano node / Daedalus communication.

In the scope of the V1 API integration, the team introduced a new error message which is shown in case the user tries to create or restore a wallet by using an example backup mnemonic phrase from the Cardano documentation.

As a part of the regular maintenance tasks, the team is working on several tasks such as the optimization of the application environment setup and disabling of the Node JS integration in the rendering process.

App Platform

The team designed the Cardano SL service using an adaptor to generate a GraphQL schema from the published Swagger spec. The platform hosts each service schema using a namespaced hierarchy, which can be explored using the included GraphQL Playground. The platform is responsible for managing certificate-based authentication with applications and other services and enforcing access control based on service definitions and user permissions.

WALLET BACKEND

Since all of the main features have been successfully completed for upcoming 1.3.1. release, the engineers are now concentrating on addressing bugs found during integration in an unreleased version of the code.

Additionally, the team focused on integration testing. They found and solved the issue of wallet restoration being stuck at 100%. While testing out the wallet, the team noticed how the acid-state database of a restored wallet occupied almost 1GB, and went on to find out how to reduce the number of things that are stored in the DB. This originated into a pull request that has been opened which mitigates the issue. More work in this area will be done this week.

NETWORKING

A senior engineer has added a new (simpler) chain producer state with types and property tests and a new chain implementation for Communication Protocol Design. Another team member have updated the protocol with the new chain and consumer protocol changes, extending them where required. They also finished merging senior engineer's changes as well as their own generators for property testing.

DEVOPS

DevOps continued optimizing CI response times and reduce developer toil. Hydra's Linux build agents, which were previously virtual machines, have been replaced by bare metal instances to speed up CI times. Some engineers are experimenting with the snack build tool on cardano-sl to get finer grain caching and incremental builds using Nix. A major blocker to using snack is evaluations before any of the builds begin are time-consuming. We improved evaluation time some, but not enough yet to be practical. To improve the developer experience an engineer added explicit support for cabal new-build under a nix-shell with binary cache reuse. Support for centralized binary caching for the nix-shell environment was also added. Internal evaluation of bors-ng to improve the PR approval and merging workflow continues. Periodically macOS build agents have been running out of disk space, so monitoring was improved and tested.

As developers continued work on the required address discrimination feature for the Testnet, DevOps helped to test and isolate integration bugs. The Testnet configuration and cluster have also been updated to reflect the latest state. Sources of non-determinism were identified and removed in Cardano's ./pkgs/generate.sh to ensure developers and CI get the same result. A NixOps deployment issue was traced to case-insensitivity in hostnames; an issue and PR were filed upstream. This helped integration work for Plutus and Cardano progress. Wallet integration tests sometimes exhibit false positive results, and an engineer has started investigating. Cardano error logs were too generic when a worker program crashed, so a DevOps engineer submitted a PR to capture more context.

CARDANO DECENTRALIZATION

The team have been working on the detailed technical implementation plan where timelines and allocation of resources are being defined.

A Test and Quality plan has been drafted where a number of internal teams have collaborated to provide their input and feedback. This document will be a living document over the next few weeks until the Networking design components are completed in order for us to go to the next level of detail.

GOGUEN

There is no update this week.

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.