Skip to main content

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team achieved a number of milestones, including the release of the first mainnet compatible version. Besides this they also addressed inconsistencies in rollback handling, added an architecture page to the website, reducing the size of logs using event IDs. They also had productive discussions with researchers on plans for incremental commits/decommits and had a whiteboard session on DeFi and lending protocols. The goals for next week include completing the validation of the timed transactions feature, exploring stateless observation, refining the Hydra explorer ticket, writing ops instructions and troubleshooting, and implementing the first end-to-end journey for external commits.

What did the team achieve this week

  • Released first mainnnet compatible version 0.10.0
  • Addressed inconsist handling of rollbacks #784
  • Added architecture page and fixed haddock links on our website #838
  • Opened a new hydra head on mainnet
  • Talked with researchers on initial plan for incremental commits/decommits
  • Had a Whiteboard session on DeFi and lending protocols
  • Reduced size of logs using event ids #859
  • Published the monthly report for April

What are the goals of next week

  • Complete validation of timed transactions feature #196
  • Explored stateless observation and refined hydra explorer ticket #696
  • Write ops instructions and troubleshooting #569 and improve logs
  • Have a first end-to-end journey for external commits implemented #215

· 2 min read
Marcin Szamotulski

High level summary

We started working on a new way to switch between root & ledger peers (see below). We continued to work on eclipse-evasion. We merged changes to Handshake contributed by Galois Inc. We made improvements to our tests (fixed a flaky test, added cddl specs for NodeToNodeVersionData and NodeToClientVersionData). We improved our CI and automated the process of releasing new package version to CHaP.

Detailed summary

We continued to work on testing eclipse-evasion.

We came up with an idea to limit how full node wallets relay on root peers (currently operated by IOG, in future also CF and Emurgo). We designed a switch to use ledger peers if the node tip is close enough to the current time. For more details see #4530.

We merged changes to the handshake mini-protocol which allow one to query server's node-to-node / node-to-client parameters. We are grateful to Galois Inc. for implementing it, #4256 and #4538. We published new version of packages to CHaP chap-#253.

We added DiffusionError wrapper. Thanks to it, ouroboros-consensus will not duplicate diffusion errors messages in the log, #4537.

We fixed an issue which caused one of our tests to be flaky, #4515.

We added cddl tests for NodeToNodeVersionData and NodeToClientVersionData: #4540, #4544 (in review).

We wrote scripts which will help us release packages as well as verify that we released all the package necessary to build the newest set of packages, #4542.

We renamed the consensus startup tracer and make sure it doesn't log ExitSuccess exceptions, consensus-#71.

We reviewed PR which adds RawBearer API, #4395.

We made series of improvements to our CI:

  • #4539: we don't need to install cryptographic libraries in CI;
  • #4545: Javier Sagredo (consensus) cleaned up CI after consensus moved to a new repo;
  • [#4546]: we switched to use GitHub merge queues;
  • #4549: we made it possible to trigger building haddocks manually;
  • #4553: we fixed and enhanced caching of building dependencies.

· 2 min read
Jared Corduan

High level summary

The ledger team focused mainly on the conway ledger era and node integration. For conway, we completed a large structural change that now allows for delegation certificates to be parameterized by era, and introducing new certificates for the first time since Shelley. We also continue to build out our contraint based generators that we will use to property test the conway era. In particular, we can now generate an entire ledger state and a transaction which is balanced with respect to the ledger state.

Low level summary

Conway certificates

Certificiates are now abstracted as a type family in the ledger codebase. Moreover, there are new certificates in the Conway era to support CIP-1694, and MIR certificates have been removed.

Constraint based testing

Our plan for property testing in the conway era is to no longer use the trace generators, but instead generate ledger states and transactions based on constraints. We hit a milestone this week, namely the ability to generate a balanced transaction in the context of a ledger state, all based on our ever growing constaint language.

Integration work

Technical debt

· 2 min read
Jordan Millar

2023-05-05 - 2023-05-23

High level summary

  • Golden tests for cardano-cli command help output were added.
  • Documentation was updated with new libsodium installation instructions.
  • There were several updates for the cardano-cli:
    • Deletion of the deprecated shelley command group.
    • Addition of golden tests for CLI help.
    • An improvement to avoid bare IO in tests, allowing better error reporting in failed tests.
    • Generation of UTCTime test values without leap seconds (avoids erroneous test failures)
    • Support for signing transactions with GenesisDelegateSigningKey_ed25519_bip32.
  • The cardano-api underwent multiple refinements:
    • Implementing deposit handling when balancing transactions (necessary for Conway)
    • Cleaning up socket file path code.
  • Several changes were made to the cardano-testnet:
    • Adding golden tests for cardano-testnet help.
    • Removing all hardcoded yaml files in cardano-testnet
    • Improving cardano-testnet help output.
    • Parameterizing default yaml configuration value, allowing for easier hardforking to the era of choice.


CI & project maintenance

Developer experience





· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team completed the implementation of the new certifier service of the aggregator, which is in charge of producing certificates for multi-signatures. They also finished implementing the interfaces defined to provide certification for the full immutable Cardano files snapshot and the Mithril stake distribution. Additionally, they have completed the refactoring of the multi-signer in the aggregator. The team also fixed the bug in the signer registration that was responsible for gaps during the signature phase for some signers, and they upgraded the Cardano node used in the Mithril testnets and devnet to version 1.35.7.

Finally, they have worked on designing a decentralized registration for the signers that takes place on the Cardano chain.

Low level overview

  • Worked on the epic that designs and implements generic signing/verification of entity services #780:
    • Completed the implementation of the Certifier service in the aggregator #850
    • Completed the implementation of the signable builder for the Mithril Stake Distribution #851
    • Completed the implementation of the artifact builder for the Mithril Stake Distribution #870
    • Completed the implementation of the signable builder for the Full Immutables Snapshot #852
    • Completed the implementation of the artifact builder for the Full Immutables Snapshot #871
    • Completed the adaptation of the aggregator runtime to use the signable builder service #853
    • Worked on the adaptation of the signer runtime to use the signable builder service #854
    • Completed the definition of the entity service interface for verification/restoration #868
    • Completed the refactoring of the OpenMessage type #878
  • Completed the epic that simplifies the multi-signer in the aggregator #398:
    • Completed the extraction of the single signature registration from the multi-signer #643
  • Completed the upgrade of the Cardano node to version 1.35.7 #881
  • Fixed the bug that created a discrepancy of the signer verification keys between signers and aggregators #873