Skip to main content

Network Team Update

· 4 min read
Marcin Szamotulski
Network Team Lead

Overview of sprint 114.

Summary

Leios

The TxSubmission v2 demo was merged, providing an end-to-end demonstration of TxSubmission V2. A benchmark study of incremental vs. non-incremental CBOR block decoding shows that decoding blocks incrementally yields modest improvements for standard Praos blocks, and larger gains for multi-megabyte blocks — directly relevant to Leios where block sizes may grow substantially. Cardano-base was bumped to include support for Leios voting. A simple TCP congestion-window model was added to the Leios Rust simulator (sim-rs), porting the model from the Haskell simulator; mini-protocol multiplexing remains a gap to be addressed. An alternative TxSubmission V2 design without a central decision thread is under review, superseding the earlier exploration.

Ouroboros-Network

bracketFetchClient and bracketKeepAlive were decoupled by splitting FetchClientRegistry into KeepAliveRegistry and FetchClientRegistry — a prerequisite for DMQ-Node integration. Contra-tracer was upgraded to 0.2.1, unblocking the removal of iohk-monitoring-framework from cardano-node 11.1. The peer-selection governance target was renamed from selectEnvTargets to selectGovTargets. Various tracing and API improvements were merged as part of ongoing DMQ-Node integration work. A new protocol version NodeToClientV_24 for the ValidateTx local-state-query is under review.

DMQ-Node

Version 0.5.0.0 was released. The announcyness metric for peer selection was merged: it scores peers by how often they are first to announce a valid signature, with scores kept for one hour matching the churn rate. SigId validation was improved: CBOR encoding was corrected to use Hash Blake2b_256 for the sigId field, and SigExpired failures are now restricted to the ZeroSetSnapshot case. An ouroboros-network integration update is in review. Work on connecting the DMQ kernel to cardano-node continues, blocked on pr#58.

IO-Sim and TypedProtocols

io-sim and typed-protocols repositories were moved to IntersectMBO organisation on GitHub.

Leios

PR / IssueStatus
TxSubmission V2 without a decision threadin review
Block decoder: incremental vs. non-incremental benchmarkin review
Bump cardano-base for Leios votingmerged
TxSubmission v2 demomerged
simple TCP model for sim-rsmerged

Ouroboros-Network

PR / IssueStatusNotes
Add NodeToClientV_24 for ValidateTx queryin review
cardano-diffusion: label ledger peer usagein reviewcontribution by dancewithheart
Various changesmerged
Renamed selectEnvTargets to selectGovTargetsmergedcontribution by dancewithheart
Upgrade to contra-tracer 0.2.1mergedcontribution by f-f
Decouple bracketFetchClient and bracketKeepAlivemerged
cardano ping implemented with ouroboros-networkblocked

DMQ-Node

PR / IssueStatus
node kernel cleanupin progress
Updated ouroboros-network versionin review
dmq-node-0.5.0.0 pre-releasemerged
SigId validationmerged
Drop support for x86_64-darwinmerged
announcyness metric for peer selectionmerged

IOSim

PR / IssueStatus
Repo moved to IntersectMBOmerged

Typed Protocols

PR / IssueStatus
Repo moved to IntersectMBOmerged

Mithril Team Update

· 3 min read
Jean-Philippe Raynaud
Mithril Tech Lead

High level overview

This week, the Mithril team completed the analysis of the impact of the recursive SNARK on the security of the Mithril protocol, implemented benchmarks for the non-recursive SNARK, and refactored the error handling of the SNARK recursive circuit. They continued work on circuit key caching for the SNARK circuit in the STM library, the removal of the helpers module for the SNARK recursive circuit, the prover input for the recursive SNARK aggregation primitives, and the implementation of the SNARK-friendly genesis certificate.

They also enhanced the synchronization of immutable files in the Cardano database, implemented robust support for unknown and in-progress signed entity types, removed the Cardano database v1 backend, and continued working on the prototype for Cardano node ledger state certification. Additionally, they enforced the DMQ message ID format and enhanced the support of the genesis verification key in the explorer.

Finally, the team completed the update of the protocol security page on the website and continued work on shipping the Mithril signer node binary in the Cardano node bundle.

Low level overview

Features

  • Completed the issue Refactor SNARK recursive circuit - Error handling #3127
  • Completed the issue Impact of recursive SNARK on Mithril protocol security #3133
  • Completed the issue Implement benchmarks for non recursive SNARK #3154
  • Completed the issue Enhance synchronization of immutable files of Cardano database #3243
  • Completed the issue Add non-recursive certificate circuit benchmarks #3274
  • Worked on the issue Circuit keys caching for SNARK circuit in STM #3043
  • Worked on the issue Refactor SNARK recursive circuit - Remove helpers module #3132
  • 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
  • Worked on the issue Enhance support of genesis verification key in explorer #3270

Protocol maintenance

  • Completed the issue Enhance protocol security page on website #2703
  • Completed the issue Robust support for unknown and in progress signed entity types #3172
  • Completed the issue Remove Cardano database v1 backend #3268
  • Worked on the issue Ship Mithril signer node binary in Cardano node bundle in GitHub #3011
  • Worked on the issue Enforcement of DMQ message id format #3251

Mithril Team Update

· 3 min read
Jean-Philippe Raynaud
Mithril Tech Lead

High level overview

This week, the Mithril team completed the refactoring of the recursive circuit, the preparation of the prover input implementation in the STM library, the off-circuit verification tests for the recursive SNARK circuit prototype, and the replacement of the temporary certificate circuit with the STM circuit. They also continued work on circuit key caching for the SNARK circuit in the STM library, the recursive SNARK aggregation primitives prover input, the preparation of the SNARK-friendly genesis certificate implementation, and the non-recursive certificate circuit benchmarks.

The team continued work on shipping the Mithril signer node binary in the Cardano node bundle, robust support for unknown and in-progress signed entity types, enforcement of the DMQ message ID format, and enhancements to immutable file synchronization for the Cardano database.

Finally, the team completed enforcement of Mithril crate versions in downstream Mithril crates and enhanced the protocol security page on the website.

Low level overview

Features

  • Completed the issue Prepare the refactoring of the recursive circuit #3126
  • Completed the issue Prepare implementation of the prover input in STM #3137
  • Completed the issue Add off-circuit verification tests for recursive SNARK circuit prototype #3193
  • Completed the issue Replace temporary certificate circuit with STM circuit #3195
  • Worked on the issue Circuit keys caching for SNARK circuit in STM #3043
  • 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 Prepare SNARK-friendly genesis certificate implementation #3262
  • Worked on the issue Add non-recursive certificate circuit benchmarks #3274

Protocol maintenance

  • Completed the issue Enforce Mithril crates versions in downstream Mithril crates #3245
  • Worked on the issue Ship Mithril signer node binary in Cardano node bundle in GitHub #3011
  • Worked on the issue Enhance synchronization of immutable files of Cardano database #3243
  • Worked on the issue Enforcement of DMQ message id format #3251
  • Worked on the issue Enhance protocol security page on website #2703
  • Worked on the issue Robust support for unknown and in progress signed entity types #3172

Consensus Team Update

· 2 min read
Damian Nadales
Consensus Team Lead

High level summary

  • Leios prototype development (Treasury Funding Initiative 4: Ouroboros Leios Implementation):
    • Landed the first voting capability in the Leios prototype: nodes now diffuse votes over a dedicated mini-protocol and a voting thread casts votes on completed endorser-block closures. This is the foundation for committee-based endorsement and is exercised by new threadnet property tests (#1963).
    • Ongoing: reworking the prototype branch ("Leios prototype remake") to target the same ouroboros-consensus-3.0.1.0 release that ships in cardano-node 11.0.1, so downstream consumers building against that node release can pick up Leios without a separate consensus branch (#2041).
    • Ongoing: adding late-join support, so a node that joins the network after an endorser block was produced can still resolve the resulting certified blocks (#2040).
    • Ongoing: replacing the placeholder voting from #1963 with stake-based committee selection and real BLS signatures, so votes are individually validated before being relayed (#2039).
    • Ongoing: performance work on the in-memory Leios database to remove contention and laziness issues that were causing nodes to time out under load (#2032).
  • LedgerDB cleanup (Treasury Funding Initiative 10: LSM including UTXO-HD):
    • Retired the V1 LedgerDB implementation and the LMDB backing store. V2 has been the default for some time; removing V1 deletes a large amount of now-unreachable code, drops the LMDB dependency, and simplifies the LedgerDB API (for example, snapshots no longer block the caller, and the tryFlush no-op is gone) (#2030). This paves the way for adding more tables to the ledger state, enabling them to be stored on disk.

Hydra Team Update

· 2 min read
Noon van der Silk
Software Engineering Lead

High-level Summary

This week the team shipped hydra-node 2.1.0 - a significant release that brings improved deposit security, the new SQLite-backed event store, a ~7% reduction in snapshot confirmation latency, and compatibility with cardano-node protocol version 12+. We encourage all operators to upgrade. Alongside the release, work continues on two long-standing items: partial fanout and a user-friendly configuration file for hydra-node to replace the current sprawl of command-line flags.

What did the team achieve?

  • Released hydra-node 2.1.0, which includes improved deposit security, the SQLite-backed event store, a ~7% reduction in snapshot confirmation latency, and compatibility with cardano-node protocol version 12+ release 2.1.0
  • Upgraded to cardano-api 11.1 / cardano-node 11.0.1 to support protocol version 12+ #2607
  • Switched from a lazy to a strict Map to reduce memory pressure during transaction processing #2599

What's next?

  • Continue work on partial fanout — choosing the UTxO set to fan out and final code review #2593, #2324, #2573
  • Reduce disk usage in hydra-node #2601, #2600
  • Investigate a node observing/persisting deposit events from unrelated Heads #2606
  • User-friendly hydra-node configuration via config file #2581
  • Accept PaymentExtendedKey (HD wallet keys) #2583