Skip to main content

92 posts tagged with "consensus"

View All Tags

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

Consensus Team Update

· 3 min read
Damian Nadales
Consensus Team Lead

High level summary

  • Leios prototype development (Treasury Funding Initiative 4: Ouroboros Leios Implementation):
    • Fixed an "impossible!" crash in the Leios prototype's fetch decision logic (#1996).
    • Added cumulative transaction bytes to the ledger state and exposed them as a Prometheus metric, giving operators a direct measure of throughput on the proto-devnet (#1988, cardano-node#6536).
    • Added a confirmed-transaction throughput panel to the proto-devnet dashboard (ouroboros-leios#859).
    • Hardened the prototype's test suite around endorser-block inclusion, making it easier to extend to upcoming features such as voting (#1971).
    • Started aligning the prototype with the original Leios design by migrating the endorser-block announcement and certification flag from the Ledger Block into the Praos Header (ouroboros-leios#837).
    • Investigating a performance bug observed during the March demo, where the time between forging and storing an endorser block can stretch to minutes and disrupt protocol operation (ouroboros-leios#844).
    • Nick Frisby shared a work-in-progress snapshot of his SQLite latency investigation from March, which informs Leios-related storage work (ouroboros-leios#863).
    • Posted the logbook update from the 2026-04-09 Consensus Office Hours (ouroboros-leios#854).
  • Peras protocol development (Treasury Funding Initiative 17: Maintenance and Support):
    • Defined sensible default values for PerasParams, simplifying configuration for downstream users (#1998).
  • Documentation (Treasury Funding Initiative 17: Maintenance and Support):
    • Added an explanation page describing the data flow between consensus components (#1955).
    • Published a first iteration of an explanation page covering the Ouroboros Praos consensus protocol (#1960).
    • Removed leftover documentation stubs and cleaned up the sidebar on the consensus website (#1956).
  • Releases and integration (Treasury Funding Initiative 17: Maintenance and Support):
    • Released ouroboros-consensus-3.0.1.0 (#1987).
    • Bumped the node's consensus dependency to 3.0.1, propagating recent consensus improvements to cardano-node (cardano-node#6533).
    • Re-landed the rework of snapshotFromIS, part of ongoing improvements to ledger snapshotting (#1992).

Consensus Team Update

· 2 min read
Damian Nadales
Consensus Team Lead

High level summary

  • Ouroboros Leios (Treasury Funding Initiative 4: Ouroboros Leios Implementation):
    • Implemented Leios Endorser Block (EB) inclusion in the consensus layer, adding EB announcement and certification tracking to blocks, along with a SQLite-based backend for querying EBs and certificates (#1921).
  • UTXO-HD (Treasury Funding Initiative 10: LSM including UTXO-HD):
    • Refactored database initialization by modifying mkOpenState in the ImmutableDB and VolatileDB (#1917).
    • Improved performance by caching transaction differences on first execution, addressing a hotspot observed during transaction revalidation on stressed nodes (#1954).
  • Releases and integration (Treasury Funding Initiative 17: Maintenance and Support):
    • Released ouroboros-consensus-2.0.0.0 (#1947) and ouroboros-consensus-3.0.0.0 (#1964).
    • Integrated ouroboros-network-1.1.* (#1943).
    • Integrated the latest consensus packages into cardano-node for the upcoming Node 10.7 release (cardano-node#6402).
  • Testing and documentation (Treasury Funding Initiative 17: Maintenance and Support):
    • Fixed a flaky ChainDB StateMachine test related to iterators (#1948).
    • Replaced the consensus documentation's Introduction page with a comprehensive System Overview, including a C4 Context diagram and clarifications on code organization and era evolution (#1950).