Status Updates

October, 2020

Jump to

October 30, 2020

DAEDALUS

Last week, the team released Daedalus mainnet version 2.4.0. This release adds a new stake pool table view for easier pool comparison, and improves the delegation experience by featuring a saturation indicator for stake pools that shows how close a pool is to getting saturated. The release also includes tooltips for all stake pool attributes to ensure a better understanding of the key metrics, and adds a potential rewards estimation based on the amount of stake intended for delegation. The team are now preparing for the upcoming Daedalus Flight release, which will include Trezor hardware wallet support.

ADRESTIA

Last week, the node team provided the required type definitions, so Adrestia can now begin working to support multi-assets in the wallet.

Also, the team prepared for the latest Rosetta release, moved into the final stages of implementing multisig accounts, and worked on delegation support for hardware wallets.

NETWORKING

Last week, the team continued working on the connection manager integration with the node, worked out the development building procedure on Windows, and fixed some issues within the cardano-node, iohk-monitoring, and ouroboros-network.

The team fixed ongoing issues in the handshake protocol and implemented cardano-ping applications, which are beneficial for DevOps activities. They progressed with the cardano-CLI API works by implementing typed wrappers, which expose a consistent view for the typed interface of ouroboros-consensus.

Finally, the team cooperated with the benchmarking team and the researchers from the Athens University of Economics and Business (AUEB) and Leuven University regarding the node connectivity policies and Delta-Q framework.

DEVOPS

Last week, the team incorporated the hardware wallet support for Trezor and Ledger devices within all platforms in Daedalus installers, and resolved some relay db-sync issues occurring after the relay long-term running. They assisted the benchmarking team with large-scale deployment for performance analysis, and provided an initial packet.net support for cardano-ops to make the deployment heterogeneous across different providers. The team enabled wireguard tunnels to replace security groups for monitoring server communication with stake pool, BFT, and relay nodes.

The team also continued integrating the Catalyst mobile application with the CI for iOS and Android, made Bitte improvements to allow persistent storage for jobs - which is required for Catalyst deployment (jormungandr voting cluster) - and enhanced labeling for the logs and metrics.

CARDANO DECENTRALIZATION

Last week, the team worked on K=1000 benchmarking and reworked resource statistics reporting in the node, which allows for high-frequency and low-log-volume collection of the most relevant metrics. They completed an initial pre-production K=1000 run on Amazon Web Services (AWS), evaluated the preliminary results, and identified the metrics. The team then reworked the log analysis according to the new metrics.

The team collaborated with DevOps to deploy a large-scale packet.net benchmarking, implemented the generator for large, region-aware, toroidal benchmarking and also addressed some technical debt.

This was a busy week; more work has been done to integrate new eras with Shelley and implement changes within the consensus. The team parameterized eras over the script type, made the trace generators more efficient, and added a serialization for the Shelley genesis so the node can support a new query. Finally, they upgraded the cardano-node to GHC version 8.10.2 and continued working on the technical report.

GOGUEN

Last week, the Plutus team spent time running Agda code in plutus-metatheory and added a Yubikey setup guide to the deployment README file. Also, they fixed some terraform warnings about string interpolation and started exploratory work on the ledger script interface.

The Marlowe team completed the first part of the Marlowe Playground user experience refresh project and made updates to the Javascript contracts and the ActusBlockly colours. Finally, the technical writing team prepared the new Marlowe explainer and ‘getting started’ materials for publication on the Cardano Docs website.

October 23, 2020

DAEDALUS

Last week, the team prepared for the release of Daedalus mainnet 2.4.0. It includes improvements such as re-enabled stake pool saturation details, table view on the “stake pools” display, potential rewards details within the “stake pool” tooltip, and updated ranking display based on non-myopic member rewards.

The team have reached the final stages of Trezor hardware wallets integration, which is now in testing and review phase. Finally, they are working on adding support for Ledger devices.

ADRESTIA

Last week, the Adrestia team's efforts were focused on hardware wallet support, Catalyst, and multi-assets.

They added delegation support for hardware wallet, started work on extending Cardano-rosetta for delegations, and completed flexible SMASH server selection.

It was a busy week for Adrestia, as they also accomplished nightly benchmarks of server in the context of multi-account done, and have almost completed a configurable time-to-live for transaction and automatic re-scheduling of failed transactions. The team has also made good progress on the creation of script addresses via the API and soft derivation via the API.

Finally, the team completed work on signing arbitrary data with stake key for Catalyst, and are now working on pre-testing valid SMASH server URL.

NETWORKING

Last week, the team worked with mini-protocols for nodes communication, focusing on refactoring the handshake negotiation. They also continued integrating the connection-manager with a node, and improving the cardano-API.

The team have presented simulation results to the Athens University of Economics and Business (AUEB) for various simple policies regarding the choice of upstream peers by the node. This will allow AUEB to design their simulation about the inclusion of cold, warm, and hot peers.

DEVOPS

Last week, the team worked on the scripts for Project Catalyst to generate vote registrations from a stake key in cardano-CLI, and scripts to query db-sync to fetch these registrations. They also ran initial testing of the voting workflow for Fund2 and worked on iOS and Android voting applications.

The team improved Bitte deployment tooling to allow running multiple unrelated node clusters on the same nomad cluster, and deployed Catalyst jormungandr cluster for the Fund2 voting. Finally, they provided Nix assistance with Glasgow Haskell Compiler (GHC) 8.10 update for the node and implemented Daedalus hardware wallet support for Trezor devices.

CARDANO DECENTRALIZATION

Last week, the team worked on the technical report for the consensus layer functionality. More work has been done on the integration of new eras with the consensus, which requires additional changes in the ledger for finalization. The team is now testing Shelley hard-forking, implementing some refactoring to simplify this process, and also rewriting ThreadNet tests.

In terms of multi-asset functionality, the team merged multiple property tests and worked on their generalization. They rearranged era parametrization to fix an issue with the consensus integration and deployed a framework for transaction generalization, which allows new era transactions to use the timelock scripts. Finally, the team worked on the parameters to enhance stake pool ranking, and prepared a pull request that will synchronize documentation (delegation design, formal specification, and ranking specification) with non-myopic calculations.

GOGUEN

Last week, the Plutus team made some initial changes to the metadata batch query structure in the smart contract backend (SCB). They also updated a number of scripts that are involved in validations that occur during the plutus-use-cases tests, together with some benchmarks for timing the validation process. Additionally, they updated the batch query endpoint convention from GET requests to use POST requests to improve usability.

The Marlowe team concentrated on updates to Blockly regarding the use of account numbers. They also made changes to the Option contract example in the Marlowe Playground to make it more realistic. The technical writing team worked on new explainer materials for Marlowe, which will be published soon.

October 16, 2020

DAEDALUS

Last week, the team released Daedalus mainnet 2.3.0. The team is now busy adding support for hardware wallets, focusing on fixing build issues. Once these issues are resolved, the team will be able to start testing Daedalus installers. The team also re-enabled the stake pool saturation indicator and fixed a minor UI issue with the stake pool tooltip. Finally, they updated Electron to the latest v8 release and are in the process of testing to confirm that all features are operational.

ADRESTIA

Last week, the team released a new version of the wallet, which now supports Ledger and Trezor devices. The team is working on improving this implementation even further.

The team extended benchmarking to sync 100 accounts in one wallet, with no significant differences in performance.

Flexible SMASH selection has now been enabled in the wallet, which should make it easier for the community to run their own SMASH servers. An upcoming improvement will enable the wallet to handle delisting of pools better.

Finally, GraphQL is ready for release, pending the final release of db-sync.

NETWORKING

Last week, the team added the DiffusionMode to the Ouroboros network and implemented some changes to P2P functionality in the Ouroboros network cardano-node repository. They also enhanced keep-alive tracers, resolved all outstanding pull requests, and worked on the map for LocalStateQueryClient, which makes cardano-api easier to use.

CARDANO DECENTRALIZATION

Last week, the team worked on timelock scripts, which are in the final stage and require the generalization of transactions to define an optimal ‘time-to-start’ and ‘time-to-live’. They also performed many property tests for the multi-asset functionality, and discovered and resolved a bug in the ranking system. Work is ongoing with transaction generalization to define optional fields, adjusting property tests to multi-assets functionality, and some changes to simplify this integration with the consensus.

GOGUEN

Last week, the Plutus team completed some refactoring work in the smart contract backend (SCB) that included removing an obsolete type variable from ChainReport and renaming some test cases. They also worked on Hlint housekeeping so that it is now possible to (optionally) fetch our metadata server from the live system. Additionally, they worked on a simple stablecoin prototype using state machines.

The Marlowe team concentrated on updates to the tutorials. They expanded the tutorial section to include material on using JavaScript in the Marlowe Playground and also added a contracts for difference (CFD) example.

October 9, 2020

DAEDALUS

Last week, the team released Daedalus Flight versions 2.3.0-FC1 and 2.3.0-FC2. The automatic update system has been successfully tested within Daedalus Flight, which allowed the team to proceed with the preparation for the Daedalus Mainnet 2.3.0 release. The team have been working on providing support for the hardware wallets, focusing on the multi-device support feature. The third-party dependency updates are now completed and merged. The Byron wallet migration feature has been updated to display the migration leftovers, and finally, the team is now completing the addition of table view to the stake pool display.

ADRESTIA

Last week, the team worked on the release of flexible SMASH server selection, a feature that will give the end user a dynamic option to select their own SMASH server for their wallet.

The team is also working on the refactoring of the cardano-library to support multisig transactions, and have nearly finished with hardware wallet support on the wallet backend.

Finally, there is ongoing work on multi-account support, they are adding rewards data to Graphql after db-sync release, and have started the release of rosetta v1.0-rc1.

NETWORKING

Last week, the team fixed DeltaQ calculations and restarted a range of tests. They also extended MonadAsync in io-sim-classes, rate-limited ‘Warm to Hot’ transition, and worked on cardano-node API. Finally, the team were engaged with Athens University of Economics and Business (AUEB) partners.

DEVOPS

Last week, the team tested and deployed version 1.21.1 of the cardano-node. They released the latest version of Daedalus with integrated SMASH functionality, cross-compiled it for hardware wallet support, and integrated the Daedalus wallet backend with 1.21.1 version of the cardano-node to show the saturation level. Finally, the team worked on the Bitte project documentation, which explains how to run clusters of nodes with Nomad and Nix functions.

CARDANO DECENTRALIZATION

Last week, the team fixed a performance regression in the set algebra library and added many respective property tests. They also fixed a bug in a wallet-API function and diagnosed some cardano-node issues. The team continued working on the Value Coin abstraction in the new Era framework. They wrote code to detect the transition point from Shelley to the next development eras, and started work on the integration of these eras with the consensus protocol. The team added additional support for multiple credentials, which allows managing many stake pools with a single node, which is required for benchmarking. Finally, they detected and resolved a performance issue in the rewards calculation.

GOGUEN

Last week, the Plutus team made some changes to the Haskell code for the migration of the Plutus Playground to use Lambda and webghc. They also fixed a problem with x509 builds on OSX and added a safe version of LedgerBytes.fromHex that returns an Either value rather than an error. Also, they continued working on environments for the wyohack event in Wyoming.

The Marlowe team concentrated on updates to the Marlowe homepage within the Marlowe Playground. In addition, they made improvements to the text within the Modelling contracts section of the playground.

October 2, 2020

DAEDALUS

Last week, the team worked on the preparation for Daedalus Flight 2.3.0-FC1 and 2.3.0-FC2 releases, which will test the newly-built automatic update functionality. The third party dependency updates are now in the final testing and review phases. Finally, the team is working on adding the ‘table view’ feature to the stake pools display.

ADRESTIA

Last week, the Adrestia team worked on improving wallet performance, with the goal of enhancing the usability of larger wallets. These improvements will go live today. The team will shortly publish a blog post outlining the improvements made and the benchmarks used.

The wallet now has an address validation endpoint. The team has also been working on implementing flexible SMASH server selection, meaning that users can pick whichever SMASH server they prefer without being forced to resync the wallet.

The team has also made great progress on multisig, and its corresponding CIP will be discussed in the upcoming CIP writer group. Some steps have been taken to add multisig functionality to the Cardano-addresses and wallet.

The team expects that work on the multi-accounts for the wallet will start next week. They will publish an updated API specification as soon as possible to facilitate changes for potential users.

Work is currently underway to add historical rewards to data to the GraphQL data model, which will simplify the users' task to find their historical rewards.

Finally, the team expects to release Cardano-Rosetta 1.0.0 early next week, including some final improvements. There are continuous enhancements on the Rosetta framework, so the team is looking to batch-upgrade the new items over the coming weeks.

NETWORKING

Last week, the networking team worked on the registerDelay implementation, labeled threads to ensure easy debugging, adjusted block-fetch protocol limits, and conducted respective testing within tx-submission and block-fetch clients. The team also continued working on the P2P governor and the connection manager integration with the node, diagnosing and fixing any occurring issues. They completed the keep-alive tracing feature implementation within the Ouroboros network, whereas it is work in progress in the cardano-node. The team found some bugs in DeltaQ, worked on their resolution, and implemented tests to restart mini protocols. Finally, they worked with metadata and high-level API development for mini protocols in cardano-CLI.

DEVOPS

Last week, the team integrated the USB driver with yarn2nix to support hardware wallet development features with Daedalus. They also built and deployed Graphql 2.2.0, and worked on the frontend explorer version 1.2.0, implementing withdrawal and deposit support. Finally, the team helped to integrate the automated update feature into upcoming Daedalus Flight, and investigated performance issues that occurred during rewards calculation.

CARDANO DECENTRALIZATION

Last week, the team performed some prototyping and testing in the cardano-CLI to simplify benchmarking on custom clusters. The team resolved CI caching divergences that caused local overbuilding, and are currently working on prototyping the multi-pool capacity in the Ouroboros network. Work is ongoing with the new Era generalization in the ledger code. The team has prepared an overview of multiple properties with algebraic structures for the generalized coin structure, which will help to create a ‘coin’ that can be used as a multi-asset.

GOGUEN

Last week, the Plutus team made updates to use de-bruijn indices for scripts. They also fixed the order of elements in the TransactionPartialPay JSON decoding and removed unused code from the Wallet.API. Finally, they were busy preparing environments for the wyohack event in Wyoming.

The Marlowe team concentrated on the migration to Amazon Web Services (AWS) Lambda within the Marlowe Playground. This included using Lambda proxy features, which means that Marlowe analysis can now be performed locally. They also performed a sanity check on all Lambda references to ensure that they are all accurate. Finally, they worked on the cashflows use case for Marlowe Labs.