Skip to main content

99 posts tagged with "consensus"

View All Tags

Consensus Team Update

· 2 min read
Damian Nadales
Consensus Team Lead

High level summary

  • Leios prototype development (Treasury Funding Initiative 4: Ouroboros Leios Implementation):
    • Chain selection and the volatile database now handle ranking blocks and Endorser Blocks that arrive out of order. A certifying ranking block that arrives before the Endorser Block it certifies is stored but held back from chain selection until the Endorser Block shows up. A new header bit also lets a syncing node fetch Endorser Blocks that were certified on the historical chain (#2076).
    • Fixed a bug where the LeiosFetch budget leaked when a peer disconnected. Requests in flight at the time of the disconnect were never cleared, so their share of the budget was never returned, and a node could eventually stop fetching altogether. This is a plausible cause of the forks seen recently on the testnet (#2083).
    • Corrected Endorser Block application to take the slot from the provided ledger state (#2085).
    • Voting and certification now happen over the announcing ranking block hash (#2086).
    • The db-synthesizer config parser now honors ExperimentalHardForksEnabled, so experimental hard forks can be enabled when generating synthetic chains (#2077).
    • Made the proto-devnet demo start up more reliably by holding back the transaction generator until the nodes are ready, and reduced the tip-observation frequency for the secondary nodes (ouroboros-leios#942, ouroboros-leios#943).
  • LSM-trees and UTxO-HD (Treasury Funding Initiative 10: LSM including UTXO-HD):
    • Reworked the snapshot-converter into a command tree. It now offers a daemon mode that watches a node's snapshot directory and converts each exported LSM snapshot into the portable in-memory format as it is produced, a one-shot conversion in either direction, and commands to move snapshots in and out of an offline LSM database. This supports the Mithril workflow, where signers need snapshots in a single agreed format (#2064).
  • Documentation (Treasury Funding Initiative 17: Maintenance and Support):
    • Added configuration documentation to the consensus website (#2065).
    • Minor improvements to the Genesis documentation (#1916).

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).

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).

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.

Consensus Team Update

· 2 min read
Damian Nadales
Consensus Team Lead

High level summary

  • Leios prototype development (Treasury Funding Initiative 4: Ouroboros Leios Implementation):
    • Completed the migration of endorser-block announcements and certification flags from the Ledger Block into the Praos Header, aligning the prototype with the original Leios design (#1978, ouroboros-leios#874, cardano-node#6537).
    • Fixed several bugs in the Leios prototype (#2017).
    • Helped the SRE team stand up a Leios testnet that is now running the prototype (ouroboros-leios#879).
    • Working on the voting prototype (#1963).
    • Continuing to investigate and fix in-memory LeiosDb performance issues observed during the March demo (ouroboros-leios#844, cardano-node#6554).
    • Working on applying Certified Endorser Blocks to the Mempool (ouroboros-leios#838).
  • Ledger-HD (Treasury Funding Initiative 11: Ledger-HD):
    • Refactored consensus type variables so that ledger tables, transaction inputs, and transaction outputs are indexed by the block type rather than the ledger-state shape, collapsing duplicate type-class instances and simplifying the codebase ahead of Ledger-HD integration (#2016, #2019).
  • Releases and integration (Treasury Funding Initiative 17: Maintenance and Support):
  • Documentation (Treasury Funding Initiative 17: Maintenance and Support):
    • Added an explanation page covering the Ticking mechanism used by the consensus layer (#2011).