Skip to main content
3 of 4
added 72 characters in body
Pieter Wuille
  • 109.7k
  • 9
  • 202
  • 318

Perhaps more a clarification than an answer: there is absolutely no need for validating nodes to keep a copy of the full historical blockchain around, and it's unnecessary to have access to the chain's data for validation.

In Bitcoin Core (a fully-validating node that's often considered a reference implementation), there is a possibility of running in "pruned" mode, where all blocks are downloaded and fully validated, one by one, but deleted from disk afterwards. This is possible because the full block data is actually not necessary for validating future full blocks; only the set of unspent transaction outputs created by that block need to be retained. This is done in a separate database that is only a few GB in size, compared to a few 100 GB for the full blockchain.

The only impact this pruning mode has is not being able to scan for historical transactions (e.g. you can't import an old wallet because it won't be able to find those old transactions), and being unable to provide the historical blockchain to new nodes that are still synchronizing (which they need, even if they'll eventually prune that data away too).

Pieter Wuille
  • 109.7k
  • 9
  • 202
  • 318