aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSjors Provoost <sjors@sprovoost.nl>2023-10-11 09:20:48 +0200
committerSjors Provoost <sjors@sprovoost.nl>2023-10-11 09:20:48 +0200
commit03f82087f6ce1c29327f34d12945200494e6956d (patch)
treead9eb591d6dda56faff9c2b8dba50b0c8ef7de26
parentc976657a1b1a9d6555270eb87958ad9430bbf753 (diff)
doc: assumeutxo prune and index notes
-rw-r--r--doc/design/assumeutxo.md40
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