Status Updates

January, 2019

Jump to

January 25, 2019

Weekly Development Report

DAEDALUS

Wallet

This week the team implemented multi-language support for application menu items, and the application menu is now available in English and Japanese.

The team has also made good progress on performance improvements for the "Receive" and "Transactions" screens. The plan to implement virtual-list rendering is showing great results, enabling the display of any number of transactions and addresses without negatively impacting performance.

Additionally, a small UX improvement has been made so that when users request the collection of logs from their machine as part of a support request in Daedalus, there is now a notification to alert the user that collection is complete.

Last but not least, the team has started work on the implementation of a new screen which will display the current status of the block consolidation process. This screen is designed to explain the purpose of this process, as well as help users to diagnose and fix potential block consolidation process issues.

App Platform

No progress to report, the team was mostly off during this week.

BACKEND OPTIMIZATION

Good progress has been made in multiple areas this week. The wallet decoupling is approaching its end, and most of what remains to be completed is just waiting for review. Moving forward, priority has been placed on implementing a new address scheme, similar to BIP-44 (Bitcoin Improvement Proposal).

The team has been focused on completing the first testable capabilities for wallets with externally-hosted private keys, which will enable the side-by-side comparison of the Yoroi and Cardano wallet backend. This week, the team was able to successfully compare addresses created from one wallet with addresses created from the other - both Haskell and Rust implementations for address derivation match!

NETWORKING

The team reports that the chain following protocol will be completed later this week, and that the ΔQ implementation is in progress.

DEVOPS

Continuous Integration

The main focus this week was on integrating nix-tools with the new repositories, including ouroboros-network, cardano-shell, cardano-chain, and cardano-wallet. Implementation is complete for cardano-wallet, and the others are in progress and likely to be completed this week. The nix-tools tooling allows cross-compilation from Linux to Windows, which will aid in CI response times.

Testing Automation

A new tool was developed that allows automated and manual testing of update proposals using the excellent Haskell Brick UI against development clusters. This tool will be used by the IOHK QA team for the upcoming 1.5 release to automate testing the OBFT transition phases.

Monitoring/Logging

With the upcoming delegation features, the team is aware of the need to provide better tooling to exchanges and stake pools for collecting logs and monitoring metrics. Even though excellent tooling is available currently, it is intended for internal use, is based on third-party services, and it would be preferable to move to more open source solutions. The team have started initial discussions on this topic, and are looking at setting up a proof of concept environment in the upcoming weeks.

CARDANO DECENTRALIZATION

Research and Design

Regarding ledger rules for delegation, the team completed the first version of the ledger specification and presented it last week in Berlin. Following feedback from the stakeholders, the team is updating the spec accordingly.

Development

Last week the team successfully completed the first integration into the 'node-shell', and the proof of concept integration into 'ouroboros-network' was also completed. Gathering of requirements from the wallet, network, and core teams continues.

GOGUEN

No updates this week.

ANNOUNCEMENTS

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

January 18, 2019

Weekly Development Report

DAEDALUS

Wallet

This week the team implemented improvements in the NTP time check handling logic. These improvements prevent false positive NTP check results, which would wrongly trigger the display of the NTP error screen during Daedalus startup and after losing and restoring internet connection.

A significant feature has been finished this week: Daedalus now keeps track of available disk space and if there is not enough free disk space for normal operation, Daedalus shuts down Cardano node and displays an error screen with information about the problem and instructions about how to resolve it. This feature prevents potential data corruption in a situation where a user runs out of available disk space while Daedalus is running.

The team is working on performance improvements for the "Receive" and "Transactions" screens, since having a large number of wallet addresses and transactions is currently causing rendering delays on these screens.

In the scope of regular maintenance, the team added a fix for text rendering issues of application menu items on Ubuntu 18.10.

The design team finished initial user interface designs for Daedalus features which are coming with Shelley release. These designs were presented at an internal Berlin workshop to other teams working on delegation and ledger formal specifications.

App Platform

The team attended an internal workshop in Berlin where they discussed and planned the long-term and short-term roadmap of the Daedalus application platform project.

NETWORKING

No updates this week.

DEVOPS

This week the dominant theme in DevOps activity was core build tooling.

The nix-tools project is maturing, with hackage.nix, stackage.nix, and haskell.nix being spun off as separate projects for the benefit of the community, while also allowing for greater separation of concerns. Some effort was spent pinning down a GHC bug in ghc-pkg, which was filed as upstream GHC Trac issue #16417.

We continued test automation improvements, both to cover the Windows wallet with acceptance tests, and also to update the system testing infrastructure, which received a lot of attention.

Enrollment of Cardano rewrite repositories continued, with cardano-wallet and cardano-shell in the process of being ported to nix-tools, ouroboros-network being fully ported, and Windows cross-compilation still being worked on.

Regarding Daedalus, the team participated in some UI discussions, did a feasibility study for making the update download parallel to syncing, and fixed a Linux wallet update issue.

The Goguen side of affairs received some routine deployments and infrastructure fixes. The 2.0.1 release had our close attention, as usual with releases, and we also did some exchange support.

CARDANO DECENTRALIZATION

Last week, IOHK held an internal workshop in Berlin to make sure everyone is aligned on their work for Shelley - and it was a great success!

The team working on the formal specification for the ledger rules (including delegation) presented their work in great detail, and received a lot of valuable feedback from their colleagues. Based on this presentation, attendees discussed the major design decisions, and made sure they are in line with the business requirements. Having people from the specification and implementation teams together for a whole week was a great opportunity to lay the groundwork and make sure everyone is on the same page.

To support further development, a process was designed to ensure that low-level implementation decisions are properly communicated between the Haskell and Rust teams, so that they will end up with compatible implementations.

Finally, the attendees were able to answer a number of remaining open questions which required input from researchers, developers, DevOps, and the formal methods team, such as details of the transition plan from Byron to Shelley, and the precise timing of when nodes need to calculate rewards for a given epoch.

For more information about the Berlin meetup, see IOHK CEO Charles Hoskinson's most recent AMA.

GOGUEN

No updates this week.

ANNOUNCEMENTS

IOHK is currently looking for talented people to work with us as a Rust Software Engineer, Haskell Trainer as well as several others. Please see the IOHK Careers page for more details.

January 11, 2019

Weekly Development Report

DAEDALUS

Wallet

This week the team improved the logic for detecting stalled blocks by implementing tracking of both network and local block heights. As a result the "Network connection lost - reconnecting..." screen is no longer shown if the network block height is stalled but the local block height is still increasing, and vice versa. It will only be shown when both block heights remain unchanged for more than 120 seconds.

The in-app support request feature has been removed and replaced with a link to the IOHK support portal, and all Daedalus dependency updates are now completed, reviewed, and tested. The team has also implemented a single instance file lock mechanism, which is a much more robust solution than the custom lock file mechanism which was implemented previously.

In other work, the team has completed a small UX improvement for the wallet name field on the "Wallet Settings" screen. The field now also becomes editable when the user selects the text in the field without having to click in the field itself.

The team also added support for running Daedalus in a frontend-only mode, which makes it possible to connect to manually-started instances of Cardano node for advanced debugging purposes.

App Platform

This week the team reviewed the Cardano delegation and incentives design specification and initiated work on an expressive API for the Cardano GraphQL package. This not only adds a stakeholder API to the platform's service offerings, but also a means for Daedalus to implement the new interface for upcoming features.

WALLET BACKEND

All of the development and updates have been successfully completed. This workstream is now complete.

NETWORKING

No updates this week. The team is busy attending a meetup in Berlin to discuss staking and delegation on the network.

DEVOPS

This week DevOps were mainly busy with adding the new Cardano rewrite repositories into the build infrastructure. This included nix-toolification of cardano-wallet, cardano-shell, and ouroboros-network, debugging of OS X issues that cardano-wallet had, and enrolling it into BuildKite and Hydra. The wallet-tool was also split into a new repository.

The team also engaged in planning for the intermediate future, for OBFT deployments, and took part in the Berlin meetup covering staking and delegation.

Preliminary investigations on compiling Haskell to web for the sake of Plutus was initiated by our resident GHC expert, and more work was done on testing automation, as well as a fully automated protocol-only update testing for block size changes.

Additionally, some usual CI fixes were pursued for Appveyor, and a thorough blog post on how IOHK employs Nix was produced.

CARDANO DECENTRALIZATION

No updates this week. The team is busy attending a meetup in Berlin to discuss staking and delegation on the network.

GOGUEN

No updates this week. The team is busy attending a meetup in Berlin to discuss staking and delegation on the network.

ANNOUNCEMENTS

IOHK is currently looking for talented people to work with us as a Rust Software Engineer, Haskell Trainer as well as several others. Please see the IOHK Careers page for more details.