diff options
author | Sjors Provoost <sjors@sprovoost.nl> | 2023-10-11 09:20:48 +0200 |
---|---|---|
committer | Sjors Provoost <sjors@sprovoost.nl> | 2023-10-11 09:20:48 +0200 |
commit | 03f82087f6ce1c29327f34d12945200494e6956d (patch) | |
tree | ad9eb591d6dda56faff9c2b8dba50b0c8ef7de26 | |
parent | c976657a1b1a9d6555270eb87958ad9430bbf753 (diff) |
doc: assumeutxo prune and index notes
-rw-r--r-- | doc/design/assumeutxo.md | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/doc/design/assumeutxo.md b/doc/design/assumeutxo.md index 75a7b6c866..66962a629d 100644 --- a/doc/design/assumeutxo.md +++ b/doc/design/assumeutxo.md @@ -3,8 +3,44 @@ Assumeutxo is a feature that allows fast bootstrapping of a validating bitcoind instance. -The RPC commands `dumptxoutset` and `loadtxoutset` are used to -respectively generate and load UTXO snapshots. The utility script +## Loading a snapshot + +There is currently no canonical source for snapshots, but any downloaded snapshot +will be checked against a hash that's been hardcoded in source code. + +Once you've obtained the snapshot, you can use the RPC command `loadtxoutset` to +load it. + +### Pruning + +A pruned node can load a snapshot. To save space, it's possible to delete the +snapshot file as soon as `loadtxoutset` finishes. + +The minimum `-dbcache` setting is 550 MiB, but this functionality ignores that +minimum and uses at least 1100 MiB. + +As the background sync continues there will be temporarily two chainstate +directories, each multiple gigabytes in size (likely growing larger than the +the downloaded snapshot). + +### Indexes + +Indexes work but don't take advantage of this feature. They always start building +from the genesis block. Once the background validation reaches the snapshot block, +indexes will continue to build all the way to the tip. + +For indexes that support pruning, note that no pruning will take place between +the snapshot and the tip, until the background sync has completed - after which +everything is pruned. Depending on how old the snapshot is, this may temporarily +use a significant amount of disk space. + +## Generating a snapshot + +The RPC command `dumptxoutset` can be used to generate a snapshot. This can be used +to create a snapshot on one node that you wish to load on another node. +It can also be used to verify the hardcoded snapshot hash in the source code. + +The utility script `./contrib/devtools/utxo_snapshot.sh` may be of use. ## General background |