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)

1 Answer 1


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.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.