Skip to main content

Consensus Team Update

· 2 min read
Damian Nadales
Consensus Team Lead

High level summary

  • Mithril integration (Treasury Funding Initiative 8: Mithril):
    • A node running on an on-disk backend can now also write a snapshot in the portable in-memory format when given an export path. Mithril signers need a single agreed format to sign, and this lets them get it straight from the node instead of running a separate conversion tool. This is the first part of #1574; the export format is not fully complete yet, as it still needs some fixes on the LSM-trees side (#2053).
    • Added a snapshot policy for Mithril that makes the timing of ledger-state snapshots predictable, using cadence values agreed with the Mithril team. Predictable snapshots let signers agree on the same state to sign (#2063).
  • Maintenance and tooling (Treasury Funding Initiative 17: Maintenance and Support):
    • db-analyser can now start an analysis from a snapshot at a chosen slot. Given --analyse-from, it picks the newest snapshot at or before that slot and replays only the blocks needed to reach it, instead of always replaying from genesis (#2061).
    • Fixed a rare corner case where a snapshot taken at the same slot as the immutable database tip, on an epoch boundary block, triggered an error. The node now discards the snapshot in that situation (#2070).
  • Documentation (Treasury Funding Initiative 17: Maintenance and Support):
    • Full-text search is now available on the consensus documentation website. The search index is built into the site as static files, so it needs no external service (#2059).

Mithril Team Update

· 3 min read
Jean-Philippe Raynaud
Mithril Tech Lead

High level overview

This week, the Mithril team completed the implementation of the SNARK-friendly genesis certificate and the type-consistency and naming-alignment refactoring for the SNARK recursive circuit. They continued work on the prover input and the SNARK proof verification of the recursive SNARK aggregation primitives, and on adapting the certificate chain to support the recursive SNARK.

Additionally, they completed support for DMQ ledger peers, enforcement of the DMQ message ID format, and a prototype for Cardano node ledger state certification. They also continued shipping the Mithril signer node binary in the Cardano node bundle and updating the ledger state snapshot selection in artifacts.

Finally, the team completed the upgrade of the DMQ node to 0.6.0.0, removed support for Mithril nodes in the devnet, and continued work on optimizing the end-to-end tests for SNARK.

Low level overview

Features

  • Completed the issue Implement SNARK-friendly genesis certificate #3145
  • Completed the issue Refactor SNARK recursive circuit - Type consistency #3128
  • Completed the issue Refactor SNARK recursive circuit - Naming alignment #3130
  • Completed the issue Prototype Cardano node ledger state certification #3269
  • Completed the issue Support for DMQ ledger peers #3303
  • Worked on the issue Recursive SNARK aggregation primitives: Prepare prover input #3138
  • Worked on the issue Recursive SNARK aggregation primitives: Verify SNARK proof #3140
  • Worked on the issue Adapt certificate chain to support recursive SNARK #3147

Protocol maintenance

  • Completed the issue Enforcement of DMQ message id format #3251
  • Completed the issue fails_with_empty_signatures flakes in CI due to concurrent SRS temp file collision #3292
  • Completed the issue Remove Mithril nodes support in mithril-devnet #3295
  • Completed the issue Update DMQ node to 0.6.0.0 #3302
  • Completed the issue Formatted list of de-registered signers in explorer misses aliases #3310
  • Worked on the issue Ship Mithril signer node binary in Cardano node bundle in GitHub #3011
  • Worked on the issue Optimize e2e tests for SNARK #3151
  • Worked on the issue Update ledger state snapshot selection in artifacts #3298
  • Worked on the issue Release 2624 distribution #3271
  • Worked on the issue Upgrade to Pallas 1.1.0 #3297

Hydra Team Update

· 3 min read
Noon van der Silk
Software Engineering Lead

High-level Summary

Big news is that we have merged the partial fanout work!. After many months of design and review, heads with large UTxO sets can now be fanned out in multiple steps, each verified on-chain via a BLS accumulator membership proof, with the chunk size determined dynamically by a binary search so each step packs in as many outputs as will fit. This removes the long-standing limit on UTxOs per head. Alongside that, the hydra-tui got a significant refactor, the test suite moved to tasty, and a handful of correctness fixes landed around cross-head event contamination and recovered deposits leaking back into L2.

What did the team achieve?

  • Merged partial fanout, including the on-chain validators, BLS accumulator membership proofs, and the PartialFanoutTx / FinalPartialFanoutTx transactions #2324
  • Made the fanout chunk size fully dynamic via binary search over fitting tx size, replacing the hardcoded threshold #2617
  • Significantly revised hydra-tui: pending-deposit recovery from Open and Closed/Final, dark/light theme toggle persisted to disk, event-history filter, tab navigation, and a per-tab rendering refactor #2590
  • Switched the test suite from hspec to tasty #2620
  • Validated headId in the aggregate function to prevent replayed events from a previous head corrupting the state of a newly opened one #2618
  • Fixed a bug where a recovered incremental-commit deposit could reappear in the L2 UTxO after sideloading a snapshot, making the same UTxO spendable on both L1 and L2 #2630, #2629
  • Made etcd writes more resilient to resolve a pumba-style network-partition test failure #2627
  • Bumped rust-accumulator to fix musl build issues #2622
  • Disabled nix store optimisation on CI to work around a macOS dyld issue #2626
  • Sped up repeated linting and normal building, and added a small CLAUDE.md #2625
  • Updated docs and changelog to reflect the partial fanout implementation, and documented the remaining large-UTxO limitation #2631

What's next?

  • Get a new release out!
  • Add a test that probes how large a UTxO set we can actually (partially) fan out #2616
  • Continue the still-open node-observing-unrelated-Heads deposit issue #2606
  • Land the user-friendly hydra-node configuration file #2581
  • Accept PaymentExtendedKey (HD wallet keys) #2583

Mithril Team Update

· 3 min read
Jean-Philippe Raynaud
Mithril Tech Lead

High level overview

This week, the Mithril team completed caching of circuit keys for the SNARK circuit in the STM library and removed the helpers module for the SNARK recursive circuit. They continued work on the type consistency and naming alignment refactoring of the SNARK recursive circuit, the prover input of the recursive SNARK aggregation primitives, and the implementation of the SNARK-friendly genesis certificate.

The team also completed enhancements to support the genesis verification key in the explorer. They continued work on shipping the Mithril signer node binary in the Cardano node bundle, enforcing the DMQ message ID format, prototyping the Cardano node ledger state certification, and removing Mithril node support in mithril-devnet.

Finally, the team worked on optimizing the end-to-end tests for SNARK and fixing flakiness in the CI.

Low level overview

Features

  • Completed the issue Circuit keys caching for SNARK circuit in STM #3043
  • Completed the issue Refactor SNARK recursive circuit - Remove helpers module #3132
  • Worked on the issue Refactor SNARK recursive circuit - Type consistency #3128
  • Worked on the issue Refactor SNARK recursive circuit - Naming alignment #3130
  • Worked on the issue Recursive SNARK aggregation primitives: Prepare prover input #3138
  • Worked on the issue Implement SNARK-friendly genesis certificate #3145
  • Worked on the issue Prototype Cardano node ledger state certification #3269

Protocol maintenance

  • Completed the issue Enhance support of genesis verification key in explorer #3270
  • Worked on the issue Ship Mithril signer node binary in Cardano node bundle in GitHub #3011
  • Worked on the issue Optimize e2e tests for SNARK #3151
  • Worked on the issue Enforcement of DMQ message id format #3251
  • Worked on the issue fails_with_empty_signatures flakes in CI due to concurrent SRS temp file collision #3292
  • Worked on the issue Remove Mithril nodes support in mithril-devnet #3295
  • Worked on the issue Update DMQ node to 0.5.0.0 #3302

Consensus Team Update

· 3 min read
Damian Nadales
Consensus Team Lead

High level summary

The Leios monthly demo and review took place on 2026-05-27. Several of the items below were presented or discussed during that meeting.

  • Leios prototype development (Treasury Funding Initiative 4: Ouroboros Leios Implementation):
    • Started migrating the prototype to the Dijkstra era of the Cardano node, which enables Stake Pool Operator key registration and brings the prototype in line with the audited BLS cryptography.
    • Working on EB application and mempool partitioning (#2047).
    • Working on wiring the mempool transaction-load events into the throughput dashboard (ouroboros-leios#929).
  • Leios fetch and network design (Treasury Funding Initiative 4: Ouroboros Leios Implementation):
    • Continued investigating multi-peer Endorser Block fetch strategies. The current proposal is a single large request to a high-latency peer (for example Europe to Australia), capped at roughly 30 MB in flight per EB, with neighbourhood diffusion taking over once the data arrives. Simulation results show this approach meets the 7 to 14 second budget. Slow-loris impact is still being assessed.
    • Refined the safety argument for linear Leios and flagged that the Rust simulator currently assumes peer reliability, which is not a safe assumption on mainnet.
    • Proposed EB precursors (proto-EBs) as a way to raise confidence without raising the voting time threshold.
    • Concluded that erasure coding is unlikely to pay off at this stage, given the estimated 60 ms latency cost and added complexity.
    • Working on the Mininet LeiosFetch logic test bed and the linear Leios tuner (ouroboros-leios#880, ouroboros-leios#891).
    • Committee selection scheme change was merged into the Leios SIP, cutting the certificate size from around 8 KB to 200 B.
  • Mempool design for Leios (Treasury Funding Initiative 4: Ouroboros Leios Implementation):
    • Started a discussion on mempool goals for the Leios protocol. Revalidating entire transaction sequences against multiple ledger states is wasteful, and certifying an Endorser Block produces a new ledger state that can render the basic mempool state irrelevant. Designs under consideration include two distinct mempools and a Directed Acyclic Graph for the ledger.
  • LSM-trees and UTxO-HD (Treasury Funding Initiative 10: LSM including UTXO-HD):
    • Updated the LSM-trees package dependencies (#2021).
    • Working on the UTxO-HD redesign (#2049).
    • Working on adding LSM snapshot export when an export path is configured (#2053).
  • Ledger-HD (Treasury Funding Initiative 11: Ledger-HD):
    • Working on an example PR that moves InstantStake onto the redesigned UTxO-HD, demonstrating the pattern that the remaining Ledger-HD datasets will follow (#2055).
  • Maintenance and tooling (Treasury Funding Initiative 17: Maintenance and Support):
    • Working on predictable ledger state snapshots in cardano-node (cardano-node#6526).
    • Working on enabling search on the consensus documentation site (#2059).