Skip to main content

88 posts tagged with "consensus"

View All Tags

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

Consensus Team Update

· 3 min read
Damian Nadales
Consensus Team Lead

High level summary

  • Continued Leios prototype development (Treasury Funding Initiative 4: Ouroboros Leios Implementation):
    • Implemented a run-threadnet CLI that allows configuring, running, and observing simulated Cardano networks (#1883). This tool enables the team to quickly test multi-node setups locally, significantly speeding up the investigation of implementation issues.
    • Drafted a baseline design for the Leios fetch logic with bounded memory usage (ouroboros-leios#797, ouroboros-leios#811). The design addresses the challenge of efficiently fetching and managing large volumes of data in Leios while keeping resource usage within practical limits. Work continues in March with an exploration of alternative storage strategies to further improve performance.
  • Peras development:
    • Added state-machine tests for the Peras vote database, strengthening the guarantees around the correctness of the voting mechanism (#1809).
  • Node improvements (Treasury Funding Initiative 17: Maintenance and Support):
    • Updated the Node-to-Client protocol to version 23, unlocking new queries for wallets and other tools that interact with the node (#1860).
    • Made it easier for developers to target the current era when querying the node (#1919).
    • Improved observability of chain selection by exposing the reasons behind chain switches (#1898).
    • Integrated a ledger fix for a bug in the Plutus script context (#1914).
  • Repository and tooling (Treasury Funding Initiative 17: Maintenance and Support):
    • Unified all consensus packages into a single package, simplifying the dependency landscape for downstream projects (#1895, #1912).
    • Enhanced the snapshot converter tool with a daemon mode that watches for new ledger snapshots and automatically converts them, useful for node operators managing different storage backends (#1887).
    • Added developer documentation for inspecting a node's chain (#1913).
  • Testing and quality (Treasury Funding Initiative 17: Maintenance and Support):
    • Generalized Genesis tests to support any block type, paving the way for conformance testing with real Cardano blocks (#1879).
    • Added support for GHC 9.14 (#1902).
    • Internal cleanup of chain selection and ledger database code (#1880).

Consensus Team Update

· 2 min read
Damian Nadales
Consensus Team Lead

High level summary

  • Continued work on Node 10.7 integration (Treasury Funding Initiative 17: Maintenance and Support):
    • Integrated network packages up to ouroboros-network-0.22.6 (#1819, #1865).
    • Integrated latest ledger changes (#1762).
    • Integrated kes-agent-1.1 (#1819) (Treasury Funding Initiative 9: KES Agent).
  • Node improvements (Treasury Funding Initiative 17: Maintenance and Support):
    • Improved mempool behavior for local clients:
      • Downgraded hard timeouts to soft timeouts, improving user experience for wallets and other local client integrations (#1856, #1857, #1858).
      • Made it easier for downstream tracers to scrutinize mempool rejection details (#1847).
      • Enhanced observability by exposing the reason for chain switches in the ChainSel tracer (#1826).
    • Added support for the new GetDRepDelegations ledger state query in NodeToClientV_23 (#1794).
    • Fixed an exception due to a mix-up of resources in the V2 LedgerDB (#1842).
    • Minor: code cleanup (#1854).
    • Added documentation for the Consensus-Ledger interaction (#1830).
  • Continued Leios prototype development (Treasury Funding Initiative 4: Ouroboros Leios Implementation, MS4.6):
    • Refactored to use EbHash instead of EbId for cleaner design (#1859).
    • Simplified to monomorphic types for more rapid iteration (#1846).
    • Implemented in-memory LeiosDb for ThreadNet tests (#1837).

Consensus Team Update

· One min read
Damian Nadales
Consensus Team Lead

High level summary

  • Continued work on Node 10.7 integration and release (Treasury Funding Initiative 17: Maintenance and Support).
  • Added defensive programming logic to the mempool (#1831), backported it via a CHaP release for cardano-node 10.6.2 (#1216), and drafted corresponding EKG counters for the 10.6.2 release engineer to use (#6420) (Treasury Funding Initiative 17: Maintenance and Support).
  • Prototyped Leios EB (Endorsement Block) production, advancing the implementation of the Leios protocol (#690). Successfully forged EBs and integrated them with the proto-devnet, complete with Grafana dashboards (Treasury Funding Initiative 4: Ouroboros Leios Implementation, MS4.6).
  • Working on optimizations for the centralized TxSubmission logic (#1444) (Treasury Funding Initiative 17: Maintenance and Support).
  • Released kes-agent and kes-agent-crypto version 1.0 (Treasury Funding Initiative 9: KES Agent, MS9.7).