Skip to main content

74 posts tagged with "consensus"

View All Tags

· One min read
Damian Nadales

High level summary

During the past couple of weeks, the team has continued working across multiple workstreams: LSM-tree integration, Peras implementation, KES agent integration, and Leios prototyping. Current efforts include:

  • Implementing a streaming conversion for ledger snapshots.
  • Drafting a set of mini-protocols to cooperatively implement the Linear Leios specification. Particular focus is being placed on ensuring adequate concurrency and resource usage bounds, which are less explicitly defined in the high-level spec.
  • Releasing a stubbed version of kes-agent, and integrating it into the Consensus version targeted for Cardano Node 10.6. While the KES code will be included in this release, functionality will remain inactive pending a code audit.
  • Merging Peras-related optimizations into both the main and peras-staging branches.

· One min read
Damian Nadales

High level summary

  • Drafted Linear Leios in the Haskell simulator (#466).
  • Introduced refactorings and optimizations to prepare the code base for weighted chain optimizations, required for Peras (#1591, #1598).
  • Merged a labeling feature into async (#164) to enable auto-labeling of threads based on a Cabal flag. This is required to ensure thread labeling in cardano-node (#6086), which, in turn, will help debug issues during development.
  • Fixed a snapshot deserialization error in Byron (#1577).
  • Updated quick-check-state-machine and fs-sim for QuickCheck 2.16 (#53, #54, #105).
  • Make lsm-trees buildable with IOG's contra-tracer (#776).
  • Started integrating LSM trees into ouroboros-consensus, aiming at version 10.7 of cardano-node (#1572).
  • Integrated the stubbed Dijkstra era into ouroboros-consensus (#1567).
  • Updated the storage tests to the new version of quickcheck-lockstep (#1585).
  • Enabled by #1585, the Genesis State Machine Tests now use quickcheck-dynamic (#1413).

· One min read
Damian Nadales

High-level summary

  • Introduced a mempool optimization (#1565).
  • Fixed a bug in the Byron deserialization of Ledger Tables (#1577).
  • Added the Node-to-Node CDDL specifications (#1571).
  • Work has started to extend the Haskell simulator to support adding individual transactions.
  • Added support for taking ledger snapshots at predictable times (#1575).

· One min read
Damian Nadales

High-level summary

  • Added support for late input block inclusion in the Haskell implementation of the Leios simulator (#413).
  • Held the Consensus Working Group call (recording), where we discussed the tie-breaker change proposed in #1548. A request for comments has been submitted to the Technical Steering Committee.
  • Released cuddle on Hackage.
  • Optimized handle usage in the on-disk backend of UTxO-HD (#1563) and exposed a configuration option for setting the maximum number of open handles (#6256).
  • Incorporated further improvements to resource management in UTxO-HD (#1564).
  • Implemented a new query to retrieve the maximum major protocol version supported by the code (#1562).
  • Introduced new versions of GetPoolDistr and GetStakeDistribution queries, now returning additional information (#1540).

· One min read
Damian Nadales

High level summary

  • Posed various clarifying "low-level" questions to the rest of the Leios Team after catching up on the Leios protocol and ledger designs. For the Consensus Team, the next step is to add transactions to the Haskell Leios simulator.
  • Fixed Ledger CDDLs (#5085, #5109).
  • Fixed encoding of WithOrigin in the TPraos ledger state snapshot (#1535).
  • Implemented a cddl validator in Cuddle (#68) and released cuddle 0.5.0.0.
  • Prevented a race condition when snapshotting LedgerDB.V2 (#1555).
  • Assessed the proposed VRF tiebreaker change (#1548). An analysis of the effects of using the leader VRF as the tiebreak VRF can be found here. We encourage community members who wish to discuss this change to join our next Technical Working Group meeting on Thursday, June 19, at 14:30 UTC.