3

I'm running a block parser that reads blocks/*.dat and I've noticed it dumps the stale blocks as well as the main chain blocks. My project only needs the main chain blocks, and I noticed that Core's pruned option removes stale blocks as part of its storage reduction.

So I was wondering if I restarted my node with huge a prune number (i.e. prune = 1000000), would Core remove the stale blocks while keeping all the main chain blocks. If so perhaps I could restart Core once again, with prune removed (my block parser needs pruned removed), and have what I need - a regular node with all the stale blocks removed from blocks/*.dat.

Basically I'm being lazy and don't want to write the exceptions for stale blocks into the block parser.

(Core V0.20.0 running on Mac)

Steve
  • 79
  • 3

1 Answers1

4

Great question, Steve

Unfortunately it won't work. Re-starting with prune=1TB will indeed remove the stale blocks from the blocks/*.dat directory, but then re-starting again with the prune option removed will cause an error. Core will detect the switch from prune to non-pruned and require you to resync the node from scratch.

Next time, just write the exception for the block parser.

meshcollider
  • 11,695
  • 4
  • 24
  • 52
Steve
  • 79
  • 3