Status Updates

December, 2018

Jump to

December 20, 2018

Weekly Development Report

DAEDALUS

Wallet

This week the team fixed an issue with the "Ada redemption" feature which was found during the final QA phase of the upcoming Cardano 1.4 release with Daedalus 0.12.0 and Cardano SL 2.0.0. The fix involved changing the way the "Ada redemption" API endpoint integrates with Daedalus; the change was successful, and the full functionality of the "Ada redemption" feature has been restored.

In the scope of regular maintenance tasks, the team has updated the Daedalus documentation about setting up Cardano. The team has also been updating Daedalus dependencies, and this work is still ongoing.

App Platform

This week the team worked on API authentication, which now only requires a signed payload as part of the network request, removing the complexity of auth token issuance. Each request is verified using the app's public key, which is loaded from the on-chain registry upon installation: invalid requests get rejected with a typed error for client-side handling, and valid requests go through authorization checks. Progress was also made on Cardano Wallet, the app being developed for prototyping the system.

WALLET BACKEND

The team has decided that the due date for new wallet specifications and development will now coincide with the cut-off date for the Cardano 1.4 release with Cardano SL 2.0.0.

This will be released later in the week.

NETWORKING

Last week the team made progress on the various protocols, and some team members spent their time working on the Haskell specification for ΔQ.

DEVOPS

Last week the team closely monitored the production Plutus Playground infrastructure during PlutusFest and did release work for Cardano 1.4, which consists of Cardano SL 2.0.0 and Daedalus 0.12.0. The latest Cardano SL build approved by QA was deployed to the staging, testnet, and mainnet clusters. Additionally, the RC6 and RC7 builds of Daedalus were successfully proposed to the staging cluster.

The team also supported Cardano developers with continuous integration strategies for new Cardano code repositories, and considered how the projects will eventually integrate. An internal test cluster has been created for OBFT integration work and DevOps is keeping QA involved. Finally, more progress was made on a tool for testing the operational steps DevOps periodically take on Cardano clusters.

CARDANO DECENTRALIZATION

There is no update this week

GOGUEN

Update coming soon

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.

December 13, 2018

Weekly Development Report

DAEDALUS

Wallet

This week the team fixed all the issues found during the final QA phase of the upcoming Daedalus 0.12.0 with Cardano 2.0.0 release.

The fixes and improvements include:

  • improvements in the NTP time difference check logic which eliminate unnecessary NTP checks, as well as preventing an NTP error screen being shown after a machine comes out of hibernation

  • an improvement in Daedalus/Cardano IPC channel communication which stops Daedalus from losing the Cardano state after internet connection has been lost and restored

  • a minor fix for an issue which caused flickering of the blockchain height chart on the "Network status" screen

In the scope of regular maintenance tasks, the team is still working on dependencies updates, and has finished the implementation of the UX/UI fixes for the issues identified during the quarterly design implementation review.

App Platform

This week the team continued work on the remote server-based prototype, including simplifications in the domain model and infrastructure interactions, and improving the API request to perform authorization checks at a higher level. A new end-to-end test suite was developed to provide coverage over the application service access, which is a critical part of the system.

WALLET BACKEND

Last week the team spent time studying the node-to-node protocol for receiving blocks, documenting their findings in the wiki, and illustrating it with diagrams.

As part of the work to create wallet integration tests, the team needed to solve a circular dependency between the wallet and cluster packages. Previously, the cluster package was generating both a node cluster and a wallet backend, but now it only generates nodes - and now that the two packages are more clearly separated, the team can use the cluster library in their wallet integration tests.

NETWORKING

An engineer has been working on block download protocols that match block download logic requirements. Next steps are improving code documentation, refining the implementation, and adding tests.

A senior engineer has been working on block download logic, and the first running version has been completed.The next step is to include integration with the block download protocol.

DEVOPS

Last week DevOps helped with the public testnet launch and confirmed people are withdrawing test ada from the faucet. The team also prepared for PlutusFest by setting up a test production environment for Plutus Playground, and preparing Docker images for developers to use.

As part of the QA cycle for the upcoming Cardano 1.4: Daedalus 0.12.0 with Cardano SL 2.0.0 release of Cardano and Daedalus, DevOps created new release candidates and helped with testing and fixes. The team has also been reviewing and participating in developers' planning to prepare for upcoming OBFT integration into Cardano-SL.

Engineers continued working on tools and integration work for the new Cardano repositories. Progress has been made on Cardano cluster automation tooling, which can apply test operations at different points in the cluster's lifetime. Git submodule support has been added to CI systems. To help developers who sometimes need to build and test on Windows, an engineer created a single script which automatically prepares a developer set up. The team also worked more on the packet.net backend for nixops, so we can more easily provision clusters on bare metal hardware.

CARDANO DECENTRALIZATION

The team has been working on implementing an on-disk representation of the immutable tail of the blockchain and interaction with the volatile prefix. They’ve made a lot of progress, and a PR with a first version is currently being reviewed ahead of being merged.

A senior team member will work with a new developer this week to make sure they are up to speed on the project.

GOGUEN

Languages and Virtual Machines

Last week the team continued development of Plutus and Marlowe, as well as preparing for the inaugural PlutusFest.

Testnets

The team is still diagnosing performance and stability problems with IELE and the KEVM testnet, and building test automation for the Remix IDE. An implementation of IELE with an updated gas model is ready, but has no documentation at the moment. IELE/KEVM with LLVM is also now available, but spread across multiple repositories and will require some work to integrate.

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.

December 6, 2018

Weekly Development Report

DAEDALUS

Wallet

This week the team worked closely with the networking and wallet back end teams on debugging an issue with network connection interruption during initial Daedalus sync.

Spending password validation rules have been updated so that it is now possible to set a password which consists of only non-Latin characters and numbers.

The team has finished improving how the low disk space warning is handled. The code is in the final review and testing phase.

In the scope of regular maintenance tasks, the team is still working on dependencies updates which should be finished next week. The team has finished another quarterly design implementation review which resulted in a list of visual imperfections and UX/UI flaws which will be resolved in the coming week.

App Platform

This week progress was made on the new wallet app's create dialog; a strategy was developed for porting the Daedalus app UI rather than a full reimplementation; and the implementation of a new concept for running web applications from remote servers was begun. This concept better supports light-client use-cases, simplifies distribution, and limits the attack surface to a web browser process.

WALLET BACKEND

All features scheduled for this release are complete and QA will be completed along with the release process for 2.0.0.

NETWORKING

The team have been working on block download protocol and logic. Additionally, engineers worked on load management aspects of the mini protocols and scheduling which is the best peer to choose without overloading the input interface. Bearer peer selection success criterion sketched out also. The team have been asked to change priorities from the current prototyping and development work to documentation requirements, design, mapping between epics, deliverables, and features.

DEVOPS

This week DevOps worked mainly on longer-term CI improvements and testing automation. Otherwise it was mostly maintenance and release support work this week.

The CI side saw a breakthrough on the Windows cross compilation effort: we're now able to build the Windows wallet backend on Linux. Further work included covering the new Cardano-rewrite codebase and testing integration. The build automation reached initial functionality on Plutus, and continued with developer workflow adaptation and Hydra integration. The new CI infrastructure has now fully replaced our old one, which will positively impact our Windows build cadence. We also worked on distilling the Nix code common between our repositories in the iohk-nix project.

The testing infrastructure effort covered advanced automation of cluster testing, such as update proposals and reaction to node outages. The team also began rewriting of acceptance tests in Haskell, and worked on wallet-tool, which will help us to better automate wallet node testing.

Operationally we were busy with exchange support, cluster migration testing, and also improving configurability of the exchange wallet. We've also some 2.0.0 release support, including contribution to the sync stalling debug effort.

The Goguen activity included QA support, documentation improvements, and the usual maintenance work. On a final note, we also continued our Shelley requirements review involvement and completed the outstanding support portal workflow improvement effort.

CARDANO DECENTRALIZATION

The team has made progress preparing the integration of the ledger and consensus layers. On the consensus side, chain validation and selection is done, and the abstractions for interacting with the ledger are basically ready. The team is anticipating combining code from consensus and ledger in the next few weeks. The code for an independent relay node is almost complete, though some tests are not yet passing. A first implementation of the Genesis rule is now complete, but it still needs to be tested.The team is currently working on DB implementation to persist blocks and the chain.

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.