Skip to content

Q3 2024

Due by October 29, 2024 40% complete

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.

Planned work

  • Review Genesis rela…

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.

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.

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:
    • This issue 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.

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

  • Investigate bug reported in #359 regarding blocks missing from the Immutable DB.

  • Investigate reported regression in IntersectMBO/cardano-node#5810 regarding GetUTxOByAddress query performance.

  • Once the Chang hard fork takes place on mainnet, remove legacy code. There is legacy code at least in:

  • 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

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
Loading