Status Update

July 5, 2019

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

Weekly Development Report

DAEDALUS

Wallet

This week the team reviewed and tested the implementation of UI designs for Shelley features. The review exposed some UI/UX imperfections in the 'Delegation setup wizard' UI and the 'Delegation center' screen, which will be resolved next week, marking the end of the implementation process.

In the scope of regular maintenance tasks, the team removed all references to the discontinued report server from the Daedalus code base. The team also added a couple of improvements to the 'Loading' screen status icons, since there were some minor discrepancies between the implementation and the design specification. The status icons now have a click action which opens the 'Daedalus diagnostics' dialog.

Finally, work has started on Daedalus logging improvements. A new log file will be added which contains the Daedalus state snapshot at the moment log files are downloaded. Daedalus log file rotation will be improved by reducing the log rotation file size limit from 20MB to 5MB, and up to three of the old log files will also be kept and downloaded as part of the logs archive.

App Platform

This week the team remodeled the Cardano JavaScript SDK to include the concept of a remote wallet, to add an HTTP request interface, and complete the unrestrained aspects of the Cardano wallet provider implementation. This work establishes the SDK as a suitable library for Daedalus to use in the upcoming node and backend upgrade by abstracting the HTTP API and keeping the generic interactions out of the application codebase. The smart contract backend triggers service was also completed to enable a trigger definition to be passed in for execution when conditions are met. Additionally, further research was conducted into the Plutus interface requirements since a gap in the GraphQL type language raised a blocking issue. After discussion with the team, a path forward to explore has been established.

BACKEND OPTIMIZATION

Some significant steps were completed this week, working towards the end of the first phase of integration with a Rust BFT self-node. The team has successfully enabled and passed all the API integration test scenarios for the http-bridge using Jörmungandr as a backend target. This means that the integration of the wallet core engine with Jörmungandr is complete. In other words, it is now possible to support two backend targets with maximum code re-use between both implementations. The team is currently working on making this available to users via the command-line interface, allowing anyone to start a wallet server on top of a running Rust BFT self-node.

NETWORKING

This week the networking team made good progress with DNS management, adding useful logging information. The team took some time to refactor various parts of the code base: in the byron-proxy repository work was done to split various clients and servers into different modules, while in the ouroboros-network repository a separate network-mux package was created.

The team has also been involved in working out a new representation of the mempool transaction sequence. Also this week, engineers reviewed the documentation and added a new section with a description of all mini-protocols. Finally, the team worked on an initial wallet client template, which is a starting point for the integration of the wallet backend with a Shelley core node.

DEVOPS

This week the team worked on improving the jormungandr-nix implementation by providing more information to the user on bootstrap. Additionally, the Jörmungandr snappy package now has a jormungandr.bootstrap script that can autostart the node and send logs using the Graylog Extended Log Format (GELF) to our logging server.

In other areas, work on Genesis CLI tooling has been started to create a proper genesis file for new testnets and devnets, and the team is also working on improving upstream NixOps to make it easier to support platforms other than AWS for iohk-ops deployment scripts.

CARDANO DECENTRALIZATION

Work was completed this week for the implementation of the cryptography abstraction layer, and the final updates were made to the executable specification. Next, the team will work with the director of engineering to align the implementation approach by creating delivery checkpoints, which will ensure work moves forward efficiently and to a high standard.

The team is also finishing the implementation of the ChainDB, a crucial component that stores the current chain's and candidate forks' blocks on disk along with a corresponding ledger. Moreover, it is also responsible for chain selection based on the blocks that it is given.

GOGUEN

The Plutus team worked on dynamic built-in types and integrated support for GraphQL. They also rearranged the structure of some modules in Plutus Tx and made usability improvements to the Plutus Playgrounds use cases. Benchmarks for signature verification and multi signatures were also added to these use cases as well as some PIR tests. Some fixes were also made to the stack.yaml configuration file.

The Marlowe team have renamed Meadow to Marlowe Playground. They also worked on some Marlowe Playground front end logic tests.

The Education team are finishing the initial chapters of the Plutus ebook, which are expected to be delivered next week.

ANNOUNCEMENTS

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