Status Update

July 12, 2018

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

Weekly Development Report

DAEDALUS

Wallet

Last week the team finished the implementation of the improvements of Daedalus log files packing logic. Users will now always download/submit the latest application logs. The team is almost done with the integration of the latest React-Polymorph version in Daedalus as the code is in the final review and testing phase.

In the scope of maintenance tasks, the team has improved the "Escape" key handling within the recovery phrase autocomplete component in the "Restore" wallet dialog. New logic prevents the dialog from closing in case user presses the "Escape" key while recovery phrase autocomplete component is focused as the expected behavior is the closure of the autocomplete suggestions list.

The team is starting with the implementation of the Cardano V1 API. This work will involve a lot of architectural changes and refactorings and will remain in the focus of the team for the next few sprints.

App Platform

Last week the team continued the work on the implementation of the apps screens.

The team completed the basic "Terms of Service Agreement" screen, establishing a profile node in the state tree to encapsulate the logic where the platform enforces acceptance before allowing the user to access other screens.

The next screen the team is working on is the Cardano transaction demo screen. In the scope of the work for this screen the team had to configure routing, with the history persisted in the state tree. In preparation for building the minimal wallet, the team is working on the development of a service API to enable transfer of funds from one account to another. This work will continue throughout the following week.

WALLET BACKEND

API rewrite

In order to improve the wallet's error handling, last week the team started to work on the inventory of all user-facing errors in the wallet. The team is currently engaged in detailed analysis of the data. In the meantime, all HTTP/2.0 requests are blocked in order to prevent the client from triggering misleading behavior. The Target release is 1.4.0.

Wallet

The team engaged in the task of implementing new transaction endpoints. At first, the team was experiencing some CI issues which were eventually resolved and the developers are hoping to complete the task by the end of the week.

A member of the team spent ample time working on key derivation schemes and was able to construct a small model of Hardware wallets as well as provide a review of the Icarus key derivation specification.

Additionally, the team continued working on the wallet restoration from seed functionality and concentrated on porting over the parts of the code, utilizing “RocksDB” that concerns the wallet restoration.

Last week the team also investigated ways to extend queries on “Beam”, with filtering, sorting, and pagination, as well as solving some issues concerning V1 types and Kernel types.

NETWORKING

The team worked on communication protocol design. Specifically, the team spent time working on the chain selection solution and is continuing the work on an executable specification.

DEVOPS

Last week the team worked on several build efficiency improvements. Their investigation into excessive memory consumption during nixops evaluations for mainnet continues. BuildKite's macOS builds were a bottleneck, so the team reduced the scope of those agents to only on what's necessary to build macOS Daedalus installers. Nix builds were too sensitive to modifications in files which do not affect the build outputs, so they improved the filters and in turn reduced the frequency of unnecessary cache misses. Since the stylish-haskell checks are pure, the job was migrated from BuildKite to Hydra. By treating Hydra as a strictly pure build environment and with the aim to have it manage more work, the team can reduce inefficiencies and competition between it and BuildKite for build resources. To ensure failing, Hydra jobs are resolved soon after they occur, and the team worked to improve the integration with GitHub's status checks. Specifically, Hydra was patched to exclude the branch name from the status check identifiers for Hydra jobs, and this simplified how we manage branch protection in cardano-sl.

DevOps also fixed bugs, like a locale problem that affected a script on macOS and a regression in how intermediary hashes are rendered, and therefore parsed during Daedalus’ semi-automated update proposals.

Work is ongoing to support KEVM Testnet and improve how it and IELE Testnet are provisioned and maintained. We also prepared and internally announced Cardano 1.3.0 RC3's availability for testing by QA, and conducted a test update proposal on the internal staging cluster.

CARDANO DECENTRALIZATION

Research and Design

With regards to the work on Incentives, last week a senior researcher updated a section of the research paper with the current version of the "desirability formula" and the newest experimental results while another researcher looked into the "large stakeholders" question.

Development

The developers concentrated on core refactoring. While working on removing partial field accessors, the team experienced issues that require writing golden and round-trip tests for some of the data types. The developers are currently focusing on writing the necessary tests.

A specially assigned developer has almost finished relocating orphan Bi instances. When the current task is completed, they will then focus on removing unused dependencies from cabal files.

Lastly, the team is continuing to write a document proposing a fix to improve Continuous Integration build times.

GOGUEN

Fundamental Research

The team continued development for Plutus and Marlowe. They have been focusing on expanding their pool of specialists in order to push forward the development of the Plutus VM. The work on Marlowe has also progressed nicely. The team is currently working on more precise planning to optimise this effort.

Testnets

Last week was dedicated by a large part to development, infrastructure configuration and testing for IELE testnet. Aside from this, the team worked on website and content creation for IELE testnet. The team is currently bringing on-board a technical support engineer.

MISCELLANEOUS WORKSTREAMS

Hardware Wallets

Last week the team dedicated a lot of their time to creating various documentation as well as continuing unit and integration testing.

Additionally, the team has been working closely with a blockchain consulting firm to achieve compatibility with the new BIP-44 (Bitcoin Improvement Proposal) style which is planned for implementation in future versions of the wallet as well as the upcoming light client.

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.