Status Updates

February, 2019

Jump to

February 22, 2019

Weekly Development Report

DAEDALUS

Wallet

This week the team finished adding multi-language support to Daedalus Windows installers and uninstallers.

The performance improvements for the rendering of large numbers of transactions are almost complete. Since loading all of a wallet's transactions can take a long time, the team has added an ellipsis animation next to the number of transactions shown on the wallet's 'Summary' screen to indicate that the total number of transactions is still being calculated. There are also still some small rendering defects to fix, but they should be resolved soon.

In terms of regular maintenance tasks, the team is working on routing logic improvements, which should fix some potentially unhandled routing edge-cases.

App Platform

This week the team investigated options for Plutus integration and produced a proof of concept programming interface to discuss and develop with the team.

BACKEND OPTIMIZATION

Work is continuing on integrating the new address derivation scheme and finishing testing on externally-owned wallets.

NETWORKING

The team's main achievement for the last week was a working demo of a chain synchronization protocol multiplexed over TCP. The simulation environment has also been improved: it now includes synchronous exception handling, with asynchronous exceptions coming soon. The typed protocol framework has been adjusted to allow pipelined peers to be written in a pure style, without relying on side effects for data flow, which is both easier to understand and easier to test. The engineers are in the process of updating our networking mini-protocols and their tests suites to match the new framework.

Moreover, the transitional Byron-Shelley proxy reached a significant milestone, and can now download blocks from a Byron node and put them in the new block storage layer.

DEVOPS

Continuous Integration

The team continued work on integrating nix-tools with the new repositories including cardano-shell, cardano-chain, iohk-monitoring, and Plutus.

OBFT Testing

Work began with the Rust team to start OBFT testing of the Rust client.

Smart Contracts

The team continued combining IELE and KVM testnet deployments into iohk-ops to consolidate and simplify deployment strategies. This work is expected to be completed by the end of the month.

Stake Pool Tooling

The team began planning the creation of stake pool CLI tooling. The team tested a new open-source monitoring solution and intends to create scripts for stake pool operators to launch similar infrastructure.

IOHK Summit 2019

The team worked on and tested a new web application which will allow the purchase of IOHK summit tickets with ada!

CARDANO DECENTRALIZATION

No update this week

GOGUEN

Development efforts continue this week for the Plutus and Marlowe streams. Outlines have been produced for some online educational materials and publications.

Work is continuing on the research paper submissions for multi-assets and chimeric ledgers. The team is also working on a new proposal for multi-currency ledgers.

ANNOUNCEMENTS

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

February 15, 2019

Weekly Development Report

DAEDALUS

Wallet

This week the team finished implementing structured logging for Daedalus logs, and is finishing work to add multi-language support to Daedalus Windows installers and uninstallers. The code changes are awaiting final review and testing.

An additional instruction has been added to the paper wallet certificate creation dialog which explains that the wallet associated with the paper wallet certificate is initially empty.

In the scope of regular maintenance, the team has fixed several minor issues with text selection, improved the navigation of the ‘Network status’ screen, and added two new error messages for special API error codes. The team is still working on the IPC API setup improvements.

App Platform

This week the team worked on authentication and authorization handling to protect access to publicly accessible dApps. Initial work has been implemented as a NodeJS and Express SDK, with middleware and a dApp store client providing developers a simple interfaces via an npm package.

BACKEND OPTIMIZATION

This week the team finished implementing structured logging for Daedalus logs, and is finishing work to add multi-language support to Daedalus Windows installers and uninstallers. The code changes are awaiting final review and testing.

An additional instruction has been added to the paper wallet certificate creation dialog which explains that the wallet associated with the paper wallet certificate is initially empty.

In the scope of regular maintenance, the team has fixed several minor issues with text selection, improved the navigation of the ‘Network status’ screen, and added two new error messages for special API error codes. The team is still working on the IPC API setup improvements.

NETWORKING

The network team has been making progress on several fronts this week. There have been developments in framing and multiplexing of mini-protocols, which will allow the team to run multiple protocols on a single bearer (e.g. TCP). The developers have also been enhancing the simulation environment to allow running concurrent algorithms in a pure setting, which will improve the speed of running tests and reduce the unpredictability of IO.

The team has also been working on simulating Haskell's exception handling. They’re making progress on the Byron adapter, finalizing a new typed framework to allow for expressing protocol pipelining, and a block fetch mini-protocol. Progress was also made on documentation, which now includes four mini protocols: ping-pong, chain synchronization, block-fetch, and request-respond.

DEVOPS

Continuous Integration

The team continued work on integrating nix-tools with the new repositories, including cardano-shell and cardano-chain, iohk-monitoring, and Plutus.

OBFT Testing

The first round of OBFT testing was completed, and the team is waiting on final code changes related to OBFT to run another round of testing.

Cross Compilation

The team completed work on cross compiling windows installers, as well as adding Japanese translation support to the installer. QA will be comparing installers on Windows that have been built with both the old method and the new cross compilation method to confirm there are no issues. The team plans on using the new cross compiled installers for the next release.

Smart Contracts

The team continued combining IELE and KVM testnet deployments into iohk-ops to consolidate and simplify deployment strategies. This work is slated to be completed by the end of the month.

Stake Pool Tooling

The team started having discussions on architecture for new stake pool tools to set up and maintain stake pools. Work developing these tools is scheduled to start in a week.

CARDANO DECENTRALIZATION

Last week the team spent time on integrating blockchain validation as well as adding specification and tests for Shelley.

GOGUEN

The team is still busy scoping and planning development efforts for Plutus and Marlowe. Work has started on the production of some online educational materials which will be delivered throughout the year.

Work is continuing on the research paper submissions for multi-asset and chimeric ledgers. The team are also still working on delivery timelines and an integration plan for Shelley.

ANNOUNCEMENTS

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

February 8, 2019

Weekly Development Report

DAEDALUS

Wallet

This week the team finished the implementation of the virtual-list rendering method on the ‘Receive’ screen, which makes it possible to display any number of wallet addresses without any performance impact.

The team is currently working on adding multi-language support to Daedalus Windows installers and uninstallers — previously these were only available in English, and the team is now adding Japanese language support.

An additional log file has been added which records system-specific information at each Daedalus start time.

The team has started the implementation of structured logging. The goal of this task is to make Daedalus log files easier to parse and automatically analyze.

In the scope of regular maintenance tasks, the team is working on IPC API setup improvements.

App Platform

This week the team started work on a prototype to improve support for mobile devices. The store UI is being built as a progressive web app to enable deployment with standard web app infrastructure, installation on the home screen, and access to services including notifications. This web app can then be wrapped for specific targets such as the desktop, running self-hosted.

BACKEND OPTIMIZATION

This week the team prepared for the upcoming Cardano 1.5 release, finalizing documentation and adding a few extra test scenarios to make sure all potential use cases are covered.

The work on decoupling has been put on hold while the team work on creating a prototype ‘lightweight’ wallet which uses the network layer to retrieve blocks from a trusted node. This prototype is not designed to persist blocks (so won’t be able to handle rollbacks) and will not persist block headers on disk (meaning that it is not interruptible). The team will then have an initial outline of a decoupled lightweight wallet, which will help them to identify remaining coupled areas so they can begin work to decouple them as well.

NETWORKING

No update this week

DEVOPS

Continuous Integration

The team continued work on integrating nix-tools with the new repositories, including cardano-shell, cardano-chain, iohk-monitoring, and plutus. The work required for integrating ouroboros-network was completed.

Testing Automation

The team finished the initial implementation of the new testing automation tool, and will be training the QA team on usage this week. The team has also started testing the initial OBFT implementation.

Cross Compilation

The team has begun cross compiling Windows installers using Nix from Linux to simplify the number of different build strategies that need to be supported. The work for this should be completed by next week.

For the next release, QA will test Daedalus installers on Windows that have been built with both the old method and the new cross compilation method, to see if there are any differences or bugs found between the two.

Smart Contracts

The team has started combining IELE and KVM testnet deployments into iohk-ops to consolidate and simplify deployment strategies. This work is slated to be completed by the end of the month.

Development Environments

The team started adding Nix-based development environments to nix-tools. This will allow developers to use nix-shell to set up development environments and ensure reproducible results.

CARDANO DECENTRALIZATION

No update this week

GOGUEN

More progress was made by the team this week in scoping and planning development efforts for Plutus and Marlowe. The documentation and education plan was updated to reflect the planned delivery of key assets for both of these streams, as well as more general Goguen reference materials. Additionally, working groups were established for some of the larger assets that will be delivered.

Work is continuing on the research paper submissions for multi-asset and chimeric ledgers. As mentioned last week, the team are still working on delivery timelines and an integration plan for Shelley.

ANNOUNCEMENTS

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

February 1, 2019

Weekly Development Report

DAEDALUS

Wallet

This week the team finished implementing a new screen which displays the status of the block storage consolidation process. This new screen will be accessible from the application menu and will help users to identify and fix potential block consolidation issues.

Additionally, implementation of the virtual-list rendering method on the "Transactions" screen has been completed. This new approach eliminates performance issues caused by the display of a large number of transactions, and Daedalus can now display any number of transactions without impacting performance. The same approach is being applied to the "Receive" screen as well, to fix similar problems with the rendering of large numbers of wallet addresses.

In order to improve the UX, the team has disabled the misleading right-click context menu on all of the screen elements except the ones which support copy/paste options, such as the input and other form elements. The team has also moved the initial setup steps (language selection and acceptance of "Terms of Use") to the very beginning of the Daedalus startup sequence. This means that Daedalus will no longer wait to establish a connection with the Cardano network before showing the setup steps.

Finally, as part of preparations for the upcoming Daedalus release, the team has updated the list of contributors shown on the "About Daedalus" screen.

App Platform

This week the team investigated the use of progressive web app technologies to solve some challenges with the current model, namely adding fundamental support for mobile and light clients part of the initial design.

BACKEND OPTIMIZATION

The team has been integrating the final elements required for node decoupling, as well as cleaning up old artifacts from the implementation. Decoupling won’t be enabled by default, however, since it has no user-facing impact: it is just a necessary intermediate step in the transition to using the new Haskell or Rust node.

Meanwhile, work continues on BIP-44, which approaches full support for externally owned wallets, and the team is also wrapping up and polishing development on cardano-sl for the upcoming 1.5 release.

NETWORKING

Work on the chain following protocol has been completed and undergone initial testing, and the team is planning to write some more tests soon. The ΔQ implementation continues, and the team has begun creating supporting documentation as well.

DEVOPS

Continuous Integration

The team continued work on integrating nix-tools with the new repositories including ouroboros-network, cardano-shell, and cardano-chain, and the work for cardano-wallet was completed.

Testing Automation

The team continued work on the new testing automation tool. This work should be completed this week and ready for QA to start testing.

1.4.1 Release

The team spent a lot of time deploying the new 1.4.1 release to testnet and mainnet this week.

CARDANO DECENTRALIZATION

Research and Design Work has been underway to address some of the issues that were raised at the workshop in Berlin, about half of which have been resolved. This has involved lots of general clean up, and some simplification of the UTxO transition rules, as well as grouping together address definitions, transaction definitions, and protocol parameters.

GOGUEN

This week the team had a productive discussion with a financial contracts standard body about building a library of financial smart contracts. The business analysis team are currently working on a plan for this engagement.

Good progress is being made in planning Plutus and Marlowe development efforts, as well as creating documentation and educational resources.

Work is continuing on research paper submissions for multi-assets and chimeric ledgers.

ANNOUNCEMENTS

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