Status Update

October 25, 2019

Status Updates (October, 2019) > October 25, 2019

WEEKLY DEVELOPMENT REPORT

DAEDALUS 

Cardano Wallet

This week the team integrated the latest Cardano wallet backend and Rust node into Daedalus, which opened a chance to integrate network information with the V2 API endpoint. Since there were several changes to the API specs, the team had to update the implementation of already-implemented endpoints - mainly the ones for handling wallets and transactions.

In order to further improve performance, the team worked on reducing layout re-renderings by optimizing data handling.

In the scope of regular maintenance tasks, the team also worked on fixing the build mode of Webpack auto DLL plugin and speeding up Storybook builds.

App Platform

Full-scale performance testing of a mainnet Byron deployment of Cardano GraphQL was initiated using the four services of the stack: AWS RDS cluster, Haskell PostgreSQL write service, Hasura, and the GraphQL server. The initial goals were to identify performance bottlenecks, analyze SQL query performance, and determine areas that would benefit from optimizations. The results were used to make improvements to the underlying SQL schema in coordinating with the node client developer, and the interface improved to enforce more explicit query argument requirements.

Cardano Explorer

This week the team implemented pagination, which is used across the app, and worked on polishing the UI and optimizing the UI components structure.

A load test has been designed based on the application query profile and will be used next week to assist with planning the public deployment, in addition to establishing a benchmark to run as part of CI.

The API team also assisted with providing technical direction on how the full stack can naturally be applied within the Jörmungandr networks, adding value as a complementary application for the testnets.

WALLET BACKEND

Wallet

The team is closing the gap between the current Byron wallet implementation and the new Shelley implementation by providing a featureful API supporting both Byron and Shelley wallets at the same time. This will allow easy migration of Byron wallets to the new Shelley format (API documentation available). 

The team is also adding extra features to make users' lives easier by pushing more information through the API. It now reports about things such as node's tip and height, network tip, and precise syncing progress of both wallets with the network and node with the network. 

In parallel, efforts are ongoing on stake pool tracking and listing by pulling information from multiple sources (blocks themselves and the node) and combining them into a single digestible source for API clients like Daedalus.

NETWORKING

This week, the networking team has been working towards a production readiness of clients (explorer and node). For this, they extended the subscription worker to support local clients and updated the error policy patch. Both changes are in review. 

The team has been working on asynchronous IO on Windows using the Windows API, and wrote a small demo application which shows that the multiplexer works on Windows using this approach. They also wrote channels that support delays based on ΔQ: a change that allows for improved tests, and enables the team to write more complex test scenarios of ouroboros-consensus. 

The team also made small changes to the MonadFork, splitting MonadThread out of it, which gives access to two operations: retrieving thread ID and labeling a thread, which is useful for more debugging scenarios using GHC's event log. Lastly, the team is continuing the design work of the P2P selection mechanism.

DEVOPS

The DevOps team has been continuing their work on the Jörmungandr node.

CARDANO DECENTRALIZATION

The team continued to add generators and property tests. They now have the pool registration certificates and protocol parameters being generated and have new property tests using them. It took some work to make sure there were valid signals in the traces generated.

The team also gathered and organized examples to begin benchmarking the different shrinkers. In addition to property testing, the team now has proof sketches of why the properties are true. Currently, these are hand-written; they will be polished and put into a LaTeX document.

GOGUEN

This week, the Plutus team worked on ledger updates to pass PendingTx as a data type and make the specification simpler. The team also added an escrow to the contract. This works like the crowdfunding contract, in that contributions can be made in parallel. The Marlowe team changed the wording within Blockly to avoid misconceptions and to make the representation more compact. They also added symbolic execution for the Marlowe Playground and made some other minor updates.