Status Update

July 12, 2019

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

Weekly Development Report

DAEDALUS

Wallet

This week the team finished the implementation of UI designs for Shelley features, which include two new UI/UX improvements: first, a button to open the Daedalus state directory, available on the ‘Daedalus diagnostics’ screen and next to the state directory path; and second, an external link icon which has been applied to all links in the Daedalus UI which open external resources such as support articles.

The work on Daedalus logging improvements is progressing nicely, and it is expected that both the Daedalus state snapshot log and the Daedalus log file rotation improvements will be done by the end of next week.

App Platform

This week the team have been concentrating on the Daedalus backend upgrade project, which is a critical aspect of the platform infrastructure. The project presents an opportunity to refactor some elements of the design to support a generic full-node application, in particular with improved launching and update mechanics. Work on a proof of concept which will implement key functionality of the Cardano JavaScript SDK in Daedalus has begun and will be used to assess the solution before proceeding with a full implementation.

BACKEND OPTIMIZATION

This week the team successfully integrated the new wallet backend with a BFT Jörmungandr node. As a result, Jörmungandr is now offered as a target option in the command-line interface which powers the wallet backend. The team is now taking a small breath before working on integration with the new Haskell nodes: polishing some implementation details, adding some more tests where necessary and implementing some low-priority small features to make the API a bit more complete. This will also leave time to correctly plan the work for the Haskell integration and work on a small prototype to highlight potential integration issues.

NETWORKING

This week the team has implemented a connection table which tracks the state of ongoing connections, as well as creating associated QuickCheck property tests. Additionally, work was done to refactor one of the core types which describes points on a chain. Progress was also made towards a graph simulation of the peer discovery layer, working on operators which represent ΔQ.

The team also worked towards a significant development milestone: the implementation of a template wallet application, which will mark the start of integration between the Shelley node and the wallet backend. Refactoring work was also undertaken to separate the mux-network package and make it independent of typed protocols, which allows it to be used as a standalone package for any other network application.

Finally, the team improved the logging of typed protocols to include decoding failures in the traces, as well as working on documentation in conjunction with other IOHK engineers.

DEVOPS

This week the team has been making improvements in the jormungandr-nix repository, bumping the version number to 0.2.4. As of this version, the self-node can now run up to three faucets and stake pools.

The Snappy package has already been updated to 0.2.4, and the build for the Chocolatey package is complete and will be made available next week. A genesis creation tool has also been created for cardano-node and will be merged into the repository next week.

CARDANO DECENTRALIZATION

This week work has continued on the implementation of the ChainDB, and is expected to be completed next week. The team has also started to implement a 'live view' of the node's state, showing resource usage (CPU, memory, I/O), and other benchmarking metrics such mempool fullness level. The log output has been redirected to a central logging process that captures the logged items from all nodes and displays them in its terminal. For this, the team has extended the federated logging to accept log forwarders on multiple endpoints. Implementation of the 'live view' is made possible by user-defined backends that can connect to the switchboard and receive observed values according to the configuration, as if they were internal backends (e.g. katip, aggregation). In the future, the team may reimplement some backends in their own libraries to further reduce the number of dependencies in the framework.

GOGUEN

This week the Plutus team updated the code for the executable contracts and also made updates to the seal and unseal dynamic builtins. They also fixed some Haddock errors and some JSON serialization issues. Updates were also made in the Plutus Playground to use the new contract API.

The Marlowe team finished the Meadow to Marlowe Playground rebrand effort and updated any redirects to the production URL. They also fixed some minor bugs in the Marlowe Playground.

The Education team presented their 2019 strategy to the executives, which includes planning for various courses and materials for Plutus and Marlowe. This received good feedback. They were also busy finalizing the first draft of the Plutus ebook which will be delivered this week.

ANNOUNCEMENTS

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