Status Update

July 19, 2018

Status Updates (July, 2018) > July 19, 2018

Weekly Development Report

DAEDALUS

Wallet

Last week the team finished the integration of the latest React-Polymorph version in Daedalus.

In the scope of QA process for the upcoming Daedalus 0.11.0 with Cardano 1.3.0 release, the QA team discovered an issue where the "Daedalus website" and "License" links were opening within the application window instead of in an external browser. The issue was successfully resolved.

The team is working on a fix for a problem with the Electron GPU-accelerated rendering which fails on certain platforms and GPU cards/drivers combination and compatibility issues. This results in Daedalus window rendering a completely white or black screen.

React-Polymorph library was extended by a couple of new UI components: "Loading spinner" and "Progress bar indicator".

The team is continuing with the implementation of the Cardano V1 API.

App Platform

The team prepared a demo and application updated architecture diagrams for the bi-weekly stakeholders meeting. The team also completed the first iteration of the benchmarking test suite and undertook some refactoring of the application platform to make compatible with stress testing. The suite benchmarks the platform from startup to the UI rendering on screen and has been designed to evolve as the platform and bundled apps become more sophisticated. The report returns host information, total execution time, total CPU usage, total memory usage, and per-process memory usage. With 10 very minimal apps installed on a 2.3Ghz i7, the UI renders in in 2.3 seconds and consumes 1.1GB, with a single app consuming 90MB.

WALLET BACKEND

The team continued building new wallet from the formal specification by implementing endpoints for generating addresses and transactions which are now being tested.

Additionally, the team was able to successfully complete their work on the block metadata as well as extending the metadata API with the filtering operations provided by V1 API.

The team investigated ways to do error and exception handling, and testing for support history tracking and queries.

A team member finished up the tests for the static size bounds and in the process flushed out several bugs with the initial estimates. There are now Hedgehog tests covering all of the bounds and checking that the encoded length of randomly-generated values falls into the computed bounds.

Finally, the developers concentrated on porting old wallet restoration Rocks DB support to the new wallet, adding what's necessary to support functions that rely on MonadDBRead from the new wallet code.

NETWORKING

The team did further work on the communication protocol design. Several of the key team members spend last week collaborating and documenting on the protocol. A senior engineer has come up with a proposal for a protocol which is stateful server side, but which simplifies the handling of forks and their delivery to consumers. A sketch of an implementation has also been provided.

DEVOPS

DevOps continued preparing for upcoming testnets. Flaws were discovered in the Cardano testnet genesis configuration. After fixing them DevOps sought review from developers. Resource provisioning, monitoring, and production environment encapsulation are continually improving for both testnets.

Last week the team also contributed to release preparation work for Cardano and Daedalus. An engineer implemented a fix to the Linux Daedalus builds so the title bar text included the build number, as is done on Windows and macOS builds. The internal staging cluster was updated to the tip of the release/1.3.0 branch and a mechanism was added to announce on Slack the cardano-sl revision on the staging cluster whenever it changes. Around the time of this update, engineers discovered Daedalus wasn't syncing blocks from the staging cluster. DevOps investigated and determined there was likely a bug in a new block streaming optimization. The team coordinated with a network engineer to get patches and deployed to the staging cluster to verify the fixes worked. Given the change in load profile on the public relays, the team also tested many concurrent connections to the same staging relay from wallets which had to sync all the blocks from scratch. The connection count varied the relay node balanced block throughput reasonably well across all the wallets.

Engineers made general improvements to builds and testing as well. BuildKite hooks were added to ensure consistent environment settings and to clean up stale data from past builds. The nix evaluation time and memory footprint for cardano-sl, especially for mainnet NixOps deployments, was improved by using the memoise branch of nix. Several GitHub status checks for cardano-sl on Hydra were marked as required for merges to the develop branch, and internal documentation was updated to describe how the status checks are currently maintained.

On the side, the DevOps team also supported engineers with their projects. The team shared insights with a developer about how DevOps' existing wallet integration test works so they could improve test coverage for redemption certificates. DevOps also monitored mainnet while the developers working on the Icarus project ran a small test to ensure everything went according to plan.

CARDANO DECENTRALIZATION

Research and Design

Discussions were held last week on the review of the incentives paper and figuring out how to optimally flush out the content.

GOGUEN

End Users and External Developers

Last week, the product manager had started work on developing a plan to deliver features and roadmap for products in Goguen with a particular reference to end-user and external developer needs.

Testnets

The team continued with website development for the IELE testnet.

MISCELLANEOUS WORKSTREAMS

Hardware Wallets

The team finished the HD-wallet document (docs/hd.md), which can be found on the Cardano GitHub. Additionally, the developers worked on improving wallet integration tests.

ANNOUNCEMENTS

IOHK is currently looking for talented people to work with us as a Front End developer, Exchange Experience Engineer/Coordinator, Software Test Engineer, Senior Events Manager, Testnet Community Manager, Development Experience Manager as well as several others. Please see the IOHK Careers page for more details.