Status Update

March 22, 2019

Status Updates (March, 2019) > March 22, 2019

Weekly Development Report

DAEDALUS

Wallet

Work to implement status icons on the connecting/loading screen has been completed, providing users with more information about the status of the connection and improving the overall user experience.

The team is working on a new screen named 'Wallet's UTXO distribution', which will allow users to examine their wallet's histogram of the distribution of UTXOs with different amounts of ada. The goal of this new screen is to make users more familiar with UTXO accounting.

Next on the list is the implementation of system location detection, which will be used upon initial Daedalus launch to present the interface in the appropriate language (only English and Japanese will be supported initially).

In the scope of regular maintenance tasks, the team has implemented a tool which enforces code formatting rules to ensure that all code changes conform to best coding practices.

The team has also implemented a handler for an invalid TLS certificate error. If this occurs, users will get an error message on the 'Connecting' screen instructing them to restart Daedalus to resolve the issue.

App Platform

This week the team refined the smart contract backend design to include: contract state management to suit off-chain network propagation and crash recovery, a UTXO observer, and a module to run 'triggers' based on conditions such as UTXO set changes. A Docker-based execution engine was also scoped to provide a runtime for development scenarios, but can later be considered a production execution engine for container-hosting scenarios.

BACKEND OPTIMIZATION

The team spent most of last week setting up a new repository and getting started with a new agile development approach. This week, engineers have ported and reviewed a lot of the fundamentals required to implement various aspects of the wallet backend, such as manipulation of mnemonic phrases, sequential address derivation, and address discovery. Meanwhile, other members of the team finalized the first instance of a network layer which allows the wallet backend to connect to another chain producer process. It relies, for now, on the cardano-http-bridge, and other targets (such as Shelley nodes) will be implemented soon.

NETWORKING

The networking team has started work on some high-level, convenience

interfaces for the library. Engineers began by preparing a low-level interface for running a multiplexing layer, and on top of that will implement node-to-node and node-to-client interfaces.

The team has been working on versioning in the multiplexing layer, which involves a tiny protocol which runs initially to agree on protocol versioning. Engineers have also added the chain-sync server (of the chain-sync protocol) to the Byron proxy.

Last week, the team received an initial review of the ΔQ computations that are used in the block fetch logic, and have also been making progress on ΔQ and its interface.

Finally, the protocol documentation received a number of updates and explanations. All mini protocols are now documented, the protocol pipelining is explained, and we have CDDL definitions (Concise Data Definition Language) for codes implemented for various protocols.

DEVOPS

Continuous Integration

The team continued work on integrating nix-tools with the new repositories, including cardano-shell and plutus.

Smart Contracts

The team completed the review and documentation phase of IELE integration with iohk-ops.

Cardano 1.5 Release

The team worked with QA and the release manager on various release activities. The public testnet was deployed, along with an updated proposal for the community to start testing the Cardano 1.5 release. Testnet installers can be found on the testnet page: https://testnet.iohkdev.io/cardano/get-started/testnet-wallet/.

The mainnet will be updated this week.

Monitoring

The team started a proof-of-concept migration to new monitoring tooling. This is in anticipation of providing similar tooling to stake pool operators to monitor their nodes post-Shelley release.

CARDANO DECENTRALIZATION

Research and Design

Some subtleties in the rewards distribution function have been discussed amongst the team this week, and the specs for the update mechanism have been updated.

The chain level spec for Praos is nearing completion. It still needs some prose, and a couple of details need to be checked with the researchers.

The document that describes non-integral calculations in Shelley has been completed. The team also started using criterion to write benchmarks for the Haskell implementation thereof.

Development

Lots of integration work this week: continuing the integration of network and chain code, of validation code for the existing chain with the cardano-shell, and of validation rules (executable spec and concrete implementation) with the consensus layer.

Some work has been done on implementing the update mechanism.

Progress has been made on various storage subsystems: the ledger DB, immutable DB, and volatile DB.

GOGUEN

This week the Plutus team worked on some tutorial content and made updates to the sample scenarios available in Plutus Playground, and preparatory work was carried out for improved testing within the playground. The Marlowe team are busy working on the design for Meadow in the cloud, as well as updates to Marlowe semantics for translation to PureScript. Actus use cases are also being reviewed and integrated into Marlowe.

Work continued on the content creation for the Marlowe educational materials, and plans are being confirmed for the Plutus training courses this week following the delivery of the class in Ethiopia.

ANNOUNCEMENTS

IOHK is currently looking for talented people to work with us. Please see the IOHK Careers page for more details.