Skip to main content

91 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):
    • 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).

Consensus Team Update

· One min read
Damian Nadales
Consensus Team Lead

High level summary

  • Peras protocol development (Treasury Funding Initiative 17: Maintenance and Support):
    • Reviewed and merged the implementation of a model of the committee selection scheme, which defines how voters are chosen for Peras's fast-finality voting rounds (#1839).
    • Reviewed and merged the implementation of the node tracking Peras certificate progress on-chain, needed for the protocol's chain-selection rule (#1864).
  • Node improvements (Treasury Funding Initiative 17: Maintenance and Support):
    • Released ouroboros-consensus-1.0.0.0 (#1926).
    • Reworked internal resource management for ledger state access, improving node robustness (#1910).
    • Fixed a bug in the immutable DB's chunk enumeration logic which only affected test coverage (#1923).
    • Integrated the Networking team's ouroboros-network 1.0 release (#1918, #1927, #1929).