Status Update

July 5, 2018

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

Weekly Development Report

DAEDALUS

Last week the team finished all "Testnet" related tasks. It is now possible to install network specific Daedalus builds (for example, the testnet and mainnet) and run them in parallel on the same machine. These features will be delivered as a part of Daedalus 0.11.1 with Cardano 1.3.1 release.

The team has improved compatibility of the wallet address QR-code printed on the paper wallet certificate. Improved QR-code should now be working with all existing QR-code readers.

In the scope of maintenance tasks, the team has refactored wallet deletion code to prevent race conditions where Daedalus would try to fetch fresh data for the wallet which is in the process of being deleted. The team is working on improvements of Daedalus log files packing logic with the goal of making sure users always download/submit latest application logs.

Last week the team released React-Polymorph 0.7.0 which introduces a lot of architectural improvements, bug fixes, and new features. The team is currently finishing the integration of this latest React-Polymorph version in Daedalus.

WALLET BACKEND

The team continued the efforts to build new wallet backend from the formal specification.

Work on transaction submission layer, which is in charge of submitting and scheduling transactions to the blockchain, was completed and merged.

Automated tests were written for input selection algorithm which was completed last week.

Work on new build system based on Cabal continued. Stack2cabal tool for translating Stack configuration to Cabal was written. New build system works well on Linux but there are linker issues on macOS which need to be resolved.

Additionally, work on wallet restoration from seed and block metadata continued.

NETWORKING

The networking team continued their efforts to speed up block verification.

DEVOPS

The DevOps team made improvements to build infrastructure last week. Memory usage has been high on nixops mainnet deployments, so we added diagnostics and investigated potential improvements. Nix build caches for cardano-sl were getting invalidated too much because the current git revision is used by the executables. By injecting the git revision into the output artifacts from the bulk of the build, spurious cache invalidation is avoided. We also made Plutus buildable using nix and integrated it into Hydra for continuous integration.

Preparations for additional testnets are underway, with a focus on the IELE testnet and the Cardano testnet which reflects the code currently running on mainnet. There have been internal deployments for both, and we are iteratively validating the configurations, improving the code, updating the environments. Support for running an independent copy of Daedalus for Cardano testnet is improving and getting more polished.

CARDANO DECENTRALIZATION

Research and Design

After addressing the previous week's testing issues, the Incentives team feels confident with the results of the latest tests performed. The team has concluded that the biggest missing item for the paper is now the "large stakeholder" question. The questions is what they will/should do. Split their stake into several pools? Run several pools? The team is now engaged in analyzing this and writing a section in the paper about the results, as well as updating the chapter to outline the results of the experiments. They have changed quite a lot since it was written, so it needs to be updated with the newest formulas and results.

Development

Several of the developers have teamed up and successfully finished off the golden/roundtrip tests for serialization and deserialisation.

While that task was being addressed, another member of the team has finished replacing deriveSimpleBi variables with deriveIndexedBi variables for sum types.

Additionally, the team worked on replacing type constraints with explicit parameter passing.

GOGUEN

Fundamental Research

The research pertaining to Marlowe, Plutus as well as Sidechains is reported to be progressing nicely.

End Users and External Developers

The newly hired product manager has continued familiarizing themselves with end user and external dev requirements, by researching feedback from the community as well as reported issues.

MISCELLANEOUS WORKSTREAMS

Hardware Wallets

The Ledger backend APIs have been built against the existing wallet backend. Unit and integration testing are ongoing.

Daedalus App Platform

Last week the team finished all quality assurance tasks.

The team discovered a couple of rendering problems regarding the way text fields are managed under RJX. The problems were resolved by replacing RJX with a custom renderer which makes sure only changed components are updated and re-rendered.

The team implemented a client-side state-tree as the foundation for building out the UI features, in a format that is suited for saving and recovering during a restart. This change also cleans up the remaining hard references used for prototyping.

The team has started with the implementation of the apps screens. First of which is the one where the user needs to accept terms of use before using the software. This task will be in the main focus of the team for the upcoming week.

ORGANIZATION

The software development management team spent last week on creating new organizational workflows. Haskell Engineers are now organized in small, autonomous, self-organizing teams called Squads.

Each Squad is lead by a Squad Lead and has full responsibility for delivering their respectively assigned features (including specifications, coding, testing). The development process is a queue based process similar to Kanban and is fully integrated with the Project Management Processes.

The team developed tools for daily progress monitoring and is now fully employing these tools. All development activities are now tracked in a customized Issue Tracking System. Cycle Time (duration of time from start to end development of a feature), Flow Efficiency (amount of time a feature is worked on vs. not worked on) and Cumulative Flow Diagrams (An area graph that depicts the quantity of work in a given state, showing arrivals, time in queue, quantity in queue, and departure) are measured on a weekly basis.

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.