You can run bitcoin in:
txindex mode: Which allows you to query any transaction on the
blockchain with getrawtransactions (any other benefits?). This takes
up the most space
default mode: this allows you to only getrawtransactions for your own
Pruned mode: Like default mode but you only keep a few GB of the
latest transactions.You download the blocks verify then throw them
But I would like to know in more depth the differences between the modes.
What part of the Bitcoin blockchain does each mode store on the local machine? What does it download and verify? What does it discard? What abilities do you lose with the different modes?
Most use cases do not require a tx-index. The wallet keeps track of the relevant transactions (if you run a wallet). A complete tx-index may be useful for block-explorer-like interfaces or for research, etc.
It requires some disk space.
Pruning & TxIndex: You can’t use a txindex with a pruned blockchain. Pruning will throw away scanned blocks. Having an index that points to a tx in a block that is no longer on your disk seems a waste.
Autopprune (-prune=550) allows you to reduce your historical blockchain data to a given target (in MB, example uses 550 which is the minimum). You can’t throw away all blocks because you may need to “roll back a couple of block” if there is a chain reorganisation.
If you set
prune=1 (== manual mode), you can then manually prune your blockchain (use RPC call
pruneblockchain <height>) [since 0.14]
The only reason to keep old blocks (say deeper then 144 blocks) is to allow other peers to bootstrap the blockchain and to serve (filtered) blocks to SPV client.
There are little “end-user” use case (expect the txindex) to keep old block.
Important to know is, that your full node will keep track of all unspent transaction (only those are relevant for validating blocks/the chain).
This database is (at the moment) roughly 2GB large and will (and must) also be present in pruning-mode. This database is essential for a full node.
Keep all blocks (take up ~80GB of disk-space). This will allow other peers to verify the blockchain and it allows SPV peers to ask for relevant transactions in all possible blocks.
If no one will run in this mode, the blockchain history may be lost (exaggerated).