Skip to content

Milestones

List view

  • # UTXO-HD - Release UTXO-HD v0.1 this quarter. After releasing this feature, we will need to assist other teams (eg wallet, db-sync) with its integration. # Peras - Get involved in the early stages of Peras implementation plan, and in writing the statement of work for the following phases. - Maintain familiarity with the Peras implementation plan as it evolves. # Cardano Blueprint - Gather the requirements for the Consensus' team contribution to the Cardano Blueprint. - Contact possible consumers of this documentation (eg alternative Cardano node implementors). - Look existing issue reports related to documentation (eg [#4581](https://github.com/IntersectMBO/ouroboros-network/issues/4581), [#5139](https://github.com/IntersectMBO/cardano-node/issues/5139)). - Address https://github.com/IntersectMBO/ouroboros-network/issues/5049. - Identify other possible areas of improvement for our documentation. - Depending on the time left in the quarter we can start implementing said documentation improvements. # Agda specification Provide support integrating the Agda specification of parts of Consensus into our repository (including CI support). # Operation Serenity - Incorporate further documentation improvements: - Improve the Hard Fork Combinator documentation. - Document Consensus API. - Provide missing CDDL specs. - Simplify the way code handles EBBs. # Support - ~~Add support for fast-failure for redundant transactions in the mempool~~ (delegated to Ledger, see [#4849](https://github.com/IntersectMBO/cardano-ledger/issues/4849)). - Provide help in integrating the latest improvements to the KES agent.

    No due date
    2/9 issues closed
  • # Genesis development ## Justification Genesis' main feature is enabling participants to safely join the network without the need to trust a specific peer to give them the correct historical chain. - https://iohk.io/en/blog/posts/2023/02/09/ouroboros-genesis-enhanced-security-in-a-dynamic-environment/ - Part of Get Cardano Done. ## Planned work - Review Genesis related milestone PRs from Modus Create / Tweag. # UTXO-HD ## Justification UTxO-HD reworks the consensus codebase to decouple the LedgerState from the UTxO set, such that the latter can be stored on the disk therefore lowering the memory consumption of the node. It has two modes of operation: in-memory and on-disk, which use the same API so should be indistinguishable from the node's point of view. The in-memory mode should work in a very similar way to the current node, with similar performance metrics. The on-disk mode will considerably lower the memory usage of the node at the cost of some performance. This is a tradeoff users will have to consider. Using the on-disk mode, even a node running on a Raspberry Pi 5 (8GB of RAM) was able to follow the chain. Currently on-disk uses LMDB underneath. In the long run, the LSM-tree library is being developed to provide a more performant on-disk backend. In terms of functionality, a UTxO-HD node does not have more functionalities than a normal node. You can try the feature already by building cardano-node from the utxo-hd-9.0 branch. It should work both with cabal and with nix. - https://github.com/IntersectMBO/cardano-node/issues/5918 - Lower memory requirements of `cardano-node`. - Part of Get Cardano Done. ## Planned work - Keep the feature branch up to date with recent node releases. - Support P&T team in benchmarking the feature. 3 main points have been raised by the Performance team: - Increase in heap size. - Increase in time spent with CPU at 85% - Few nodes were stuck in the forging loop - Review LSM-tree related milestones from Well-Typed. - If benchmarking results are good: - Expand documentation on UTXO-HD - Cleanup branch in preparation for merge # Operation Serenity (maintenance & tech-debt) - Work on analysis and prevention of attack vectors. - Make the interface between the hard-fork combinator and Ledger less error-prone. - This will require time commitment from the Ledger team. - We need to bring the Ledger team up to speed on the current status quo. - We need to conduct a workshop together with the Ledger team to define how the desired interface should look like. - Issues related to this epic include: - https://github.com/IntersectMBO/ouroboros-consensus/issues/921 - https://github.com/IntersectMBO/ouroboros-consensus/issues/389 - [This issue](https://github.com/IntersectMBO/cardano-ledger/issues/3491) provides an example of the kind of bugs a properly defined interface aims at preventing. - Investigate and try to solve the ledger snapshots performance [issue](https://github.com/IntersectMBO/ouroboros-consensus/issues/868). - Solving this issue might depend on the Ledger team. - Protocol version improvements. Confusion around protocol versioning had shown to continuously cause confusion among Cardano developers. - https://github.com/IntersectMBO/ouroboros-consensus/issues/319 - https://github.com/IntersectMBO/ouroboros-consensus/issues/324 - Investigate bug reported in https://github.com/IntersectMBO/ouroboros-consensus/issues/359 regarding blocks missing from the Immutable DB. - Investigate reported regression in https://github.com/IntersectMBO/cardano-node/issues/5810 regarding `GetUTxOByAddress` query performance. - Once the Chang hard fork takes place on mainnet, remove legacy code. There is legacy code at least in: - Babbage mempool mitigation - https://github.com/IntersectMBO/ouroboros-network/issues/3129 - The above will probably allow us to remove legacy serialization code - Certain parts of diffusion pipelining - Enroll consensus into the CIP mechanism. # Support ## Genesis Rollout ### Planned work - Collaborate with release engineer, Head of Product, Head of Software Engineering, and other teams on how to proceed with the Genesis rollout. ## Leios ### Justification - Protocol feature that drastically increases throughput. - https://www.youtube.com/watch?v=YEcYVygdhzU - https://www.youtube.com/watch?v=Czmg9WmSCcI ### Planned work - Support research and exploration activities. ## Consensus formalization ### Justification - Increasing confidence and code robustness - Establish spec for Consensus in a similar style as the Ledger ### Planned work - Support the formal methods team

    Due by October 29, 2024
    2/2 issues closed
  • # Conway - Provide support to other teams during the development of this new era. # Genesis - Review Genesis deliverables and provide any necessary support to the Tweag contractors. # UTXO-HD - Keep the feature branch up to date with recent node releases. - Engage with the testing team to run node integration tests. - Support P&T team in benchmarking the LMDB backend. - Merge the behaviour-preserving parts of the feature branch into `main`. - Document the feature and inform the community (eg through blogposts). - Review LSM-tree deliverables and provide any necessary support to the WellTyped contractors. # Leios - Perform a preliminary review of the existing documents and elaborate a high-level design for the feature. # Support - Revisit chain sync rate limiting. - Document node tasks with focus on performance (https://github.com/IntersectMBO/ouroboros-consensus/issues/1057). # Serenity - Assist with the formalization of Consensus. - Completely open-source `fs-api`/`fs-sim` on Hackage. - Enable the P&T team to develop tooling for component-level benchmarks.

    Due by July 20, 2024
    9/11 issues closed
  • # Conway - ✅ Properly integrate Conway queries (#922). # P2P - ✅ Finish pre-Genesis state machine for bootstrap peers (#808 ). # Genesis - ✅ Change epoch structure (https://github.com/IntersectMBO/ouroboros-consensus/pull/927). - ✅ Review Genesis deliverables submitted by Tweag (#535, #840, #979, #975). # UTxO-HD - ✅ Finalize new in-memory implementation ([top-level epic](https://github.com/IntersectMBO/cardano-node/issues/5495)). - ✅ Review LSM-tree implementation deliverables. # Support - :hammer_and_wrench: Ignore the VRF tiebreaker when the slots are too far apart (https://github.com/IntersectMBO/ouroboros-consensus/pull/1047). - :hammer_and_wrench: Mitigate missed leadership checks due to snapshots (This requires work from Ledger, see https://github.com/IntersectMBO/cardano-ledger/issues/4192 and https://github.com/IntersectMBO/cardano-ledger/pull/4196). - ✅ Enrich mempool tracers with the reason for transaction removal (#926). # Serenity - ✅ Improve the process of configuration data injection in the initial ledger state (#934, #1032). - ✅ Refine the general versioning process to make it easier to add new eras (https://github.com/IntersectMBO/ouroboros-consensus/pull/913, https://github.com/IntersectMBO/ouroboros-consensus/pull/922). - :hand: Document the HFC. - :hand: Enable the P&T team to develop tooling for component-level benchmarks (the P&T team's efforts were diverted to other projects that took priority over this).

    Due by April 26, 2024
    13/13 issues closed