IntersectMBO / cardano-node

The core component that is used to participate in a Cardano decentralised blockchain.
https://cardano.org
Apache License 2.0
3.06k stars 724 forks source link

UTxO-HD release #5918

Open jasagredo opened 2 months ago

jasagredo commented 2 months ago

This issue is an aggregate of dangling issues here and there about UTxO-HD, to better reflect the current status of the feature, with updated information.

Current status

The UTxO-HD feature is based currently on the 9.1 cardano-node release.

Repository Branch
ouroboros-consensus link
cardano-api link
cardano-cli link
cardano-node link

High level description of UTxO-HD and features

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.1 branch. It should work both with cabal and with nix.

github-actions[bot] commented 1 week ago

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 120 days.

syndeton commented 3 days ago

Should we be able to build utxo-hd-9.1.1? Or should we hold off for now? I'm getting the following error when building .... Thanks

.fatal: Could not parse object 'c09534a2cbaeacf1d49a4a49478ccc61cb49799d'. HEAD is now at 1751eea4e UTXO-HD 9.1 HEAD is now at bcf0e26e1 UTXO-HD 9.1 fatal: Could not parse object 'c09534a2cbaeacf1d49a4a49478ccc61cb49799d'.

Note: I'm able to build utxo-hd-9.1

jasagredo commented 3 days ago

I'm sorry, I moved the tips of the branches a bit and maybe I moved the tip of the ouroboros-consensus' utxo-hd-9.0 branch (although I though I had only added new commits on top). The source-repository-package stanzas in cardano-node@utxo-hd-9.1 branch should point to the tip of the utxo-hd-9.1 branches in cardano-cli and cardano-api and to the utxo-hd-9.0 branch in ouroboros-consensus.

syndeton commented 2 days ago

Just wanted to say great job with utxo-hd. It's looking like my server costs could be cut by half using it. A big help for those smaller struggling pools. You guys are heroes.