Skip to main content

98 posts tagged with "consensus"

View All Tags

Consensus Team Update

· One min read
Damian Nadales
Consensus Team Lead

High level summary

  • Leios prototype development (Treasury Funding Initiative 4: Ouroboros Leios Implementation):
    • Closed an attack on the way nodes announce Endorser Blocks. The attack made honest nodes disconnect from each other (#2179, for ouroboros-leios#1029).
    • db-analyser now reads Leios chains. The tool replays a chain and reports the cost to apply each block. The reports now cover the transactions of each certified Endorser Block, their total size, and the time to read them (#2181, for ouroboros-leios#1023).
  • Maintenance and support (Treasury Funding Initiative 17: Maintenance and Support):
    • Forward-ported the new snapshot interval and the mempool allocation fix from the 4.x release line to the main development branch. The 2026-08-11 update describes both changes (#2209, #2215).

Consensus Team Update

· 4 min read
Damian Nadales
Consensus Team Lead

High level summary

  • Leios prototype and testnet (Treasury Funding Initiative 4: Ouroboros Leios Implementation):
    • Added endorser-block announcements to the node. The node now generates them and sends them to its peers. An announcement tells a peer that an endorser block exists, before the block itself arrives. The other Leios components do not use the announcements yet. This change is the first step (#2132, for ouroboros-leios#772).
    • Added announcements to the proto-devnet demo, with a new graph of the announcement age on arrival. The demo can now run a line topology. In that topology the first and third nodes have no direct link. This makes the announcement behaviour easier to watch (#1002).
    • Made the node reject malformed Dijkstra blocks. A block body must not carry both a Leios certificate and transactions. The header flag must also agree with the body content (#2178, for ouroboros-leios#932).
    • Released a new prototype, prototype-2026w32 (#6636).
    • Fixed the testnet visualizer. It lost events and reported send and receive counts that did not match. It now reads the log store with range queries instead of a live stream (#1000).
    • Corrected the units on the throughput dashboard. The certification graph now covers every node, not only the first (#1001).
  • Node performance (Treasury Funding Initiative 17: Maintenance and Support):
    • Removed the allocations from the comparison of transaction identifiers. The old code rebuilt a 32-byte hash on each comparison. The mempool and local queries use that code path heavily. Comparisons now run about five times faster and allocate nothing (#2125, for #2003).
    • Cut the allocations in the mempool snapshot code (#2195).
    • Simplified how the mempool moves a transaction into a newer era. The mempool now decodes the transaction straight into the target era. It no longer steps through each era in between (#2134).
  • Releases and the next hard fork (Treasury Funding Initiative 17: Maintenance and Support):
    • Released ouroboros-consensus 4.0.0.0 and 4.1 (#2161, #2189).
    • Allowed the node to hard fork into Dijkstra, the next Cardano era (#2167).
  • Storage and snapshots (Treasury Funding Initiative 10: LSM including UTXO-HD):
    • Changed the default snapshot policy. The node now takes a snapshot every 40*k slots, with no offset. On mainnet that is one snapshot a day. One snapshot in five lands on an epoch boundary. This keeps the node aligned with Mithril (#2194).
  • Documentation and tooling (Treasury Funding Initiative 17: Maintenance and Support):
    • Wrote a new page on hard forks and node-to-node versioning. A hard fork does not need a new node-to-node protocol version. Each block carries its own era tag. The protocol version holds back an era that is not yet active, not the wire format (#2117).
    • Corrected the db-analyser timing documentation and added two columns to its CSV output. A script that reads the CSV by column position needs an update (#2186).

Consensus Team Update

· 2 min read
Damian Nadales
Consensus Team Lead

High level summary

  • Leios prototype and testnet (Treasury Funding Initiative 4: Ouroboros Leios Implementation):
    • Cut a new prototype release, prototype-2026w29, carrying this fortnight's work across the node and the Leios repository (#6621, #996).
    • Landed the change that lets the node certify and announce endorser blocks inside the forging loop, so it no longer misses chances to certify. This is expected to raise the certification rate and throughput (#2105).
    • Added CallTrace instrumentation to the Forge thread, making it easier to trace and profile block production in the prototype (#2126).
    • Taught the LeiosNotify mini protocol to accept but ignore the proper MsgLeiosBlockAnnouncement message, a step towards the full block-announcement flow (#2142, integrated into the node in #6624).
    • Enriched typed-protocols to give more precise back pressure for pipelined mini protocols, motivated by the new LeiosNotify protocol (#93).
    • Improved testnet stability by stopping the node from mangling some Dijkstra blocks, a quick workaround while a ledger issue is fixed (#2140, for cardano-ledger#5937).
    • Updated the prototype dashboards and added a graph of recent endorser-block events, making the testnet easier to observe (#990, #992).
  • Mempool design for Leios (Treasury Funding Initiative 4: Ouroboros Leios Implementation):
    • Wrote up Mempool design considerations for Leios (#997).
    • Took part in discussions on how the Mempool should work: its current requirements, a "high-throughput mempool", and a "tiered-pricing mempool" in which transactions that pay more can queue ahead of normal-paying ones when they do not conflict.
  • Storage and snapshots (Treasury Funding Initiative 10: LSM including UTXO-HD):
    • Set the node's default snapshot policy to match Mithril's snapshot policy, so the two stay aligned (#2149).
    • Added a new LSMExportPath configuration option, letting operators control where LSM data is exported (#6629).

Consensus Team Update

· 3 min read
Damian Nadales
Consensus Team Lead

High level summary

  • Leios prototype and design (Treasury Funding Initiative 4: Ouroboros Leios Implementation):
    • Continued to harden the Leios testnet with a round of prototype fixes across consensus and the node (#2113, #6614), and cut two prototype releases carrying this work, prototype-2026w27a (#978) and prototype-2026w28 (#986).
    • Fixed two bugs found while running the testnet. The node no longer applies uncertified endorser blocks from the immutable database on startup, and the LeiosNotify pipelining depth was increased (#2114). A startup crash caused by a race condition on a node's first run was also resolved (#2115, fixing ouroboros-leios#983).
    • Added a voting dashboard to make Leios easier to observe, showing how endorser blocks are voted on and certified (ouroboros-leios#985).
    • Reviewed a change to how the node certifies and applies endorser blocks that is expected to roughly double the certification rate and raise throughput (#2105).
    • Drafted prose for the Leios high-level design document, describing how the pieces of the protocol fit together (commit 13e3908), and started negotiating the interface between Consensus and Ledger for Leios with the Ledger team (ouroboros-leios#977).
  • Node diversity and conformance (Treasury Funding Initiative 17: Maintenance and Support):
    • Took part in node diversity meetings on conformance testing with the Amaru team and others, including working through a conformance hurdle specific to the preview network.
    • Discussed how to specify the mempool and transaction submission precisely enough that other node implementations can follow the same rules.
  • UTXO-HD snapshot tooling (Treasury Funding Initiative 10: LSM including UTXO-HD):
    • Improved the snapshot-converter tool's --help and --version output, making it clearer how to convert ledger snapshots between the in-memory and on-disk (LSM) formats (#2098).
    • Added a temporary workaround so snapshot-converter reads the bloom-filter salt directly from exported files, until a proper fix lands on the LSM-trees side (#2097, pending lsm-tree#855).
  • Documentation (Treasury Funding Initiative 17: Maintenance and Support):
    • Added a reference document describing the metrics and tracing available for observing Ouroboros Genesis (#2103).

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