I am revising my blockchain parser and I'm encountering an issue where I only have block headers but not the corresponding block data on my machine for blocks past a certain height (on my machine it started at block #594606 and from there on I only had data for some blocks.) There is a bit flag 'BLOCK_HAVE_DATA' which, if not set, indicates that we have the header in the leveldb database but not the corresponding block data on disk in the .dat files.

Unfortunately I need that data for my parser to work, so I don't know (a) why it is missing and (b) how to get the data on my hard drive.

Is there some command line option I can pass when I launch the bitcoin core node software for make sure I have data for all blocks on my hard drive?


John W. Ratcliff

** Note: I asked this question of ChatGPT and it provided the following response. I don't know if it is correct or not, but I'm going to try it.

enter image description here

  • To clarify, when you say "past", do you mean blocks older than 594606 or blocks newer than 594606?
    – Ava Chow
    May 6, 2023 at 4:05

1 Answer 1


Edit: I just realized that you say “past a certain height”. If you meant, that you don’t have the blocks below that height, my answer below applies. Otherwise, you might not have downloaded the remaining blocks yet?

It sounds like you are running your node in “pruning” mode. This is the default behavior when you are using bitcoin-qt, the GUI-mode. If you want to keep a complete copy of the blockchain you can either uncheck the option in the settings or add prune=0 in the configuration (bitcoin.conf). Either way, you will need to indeed reindex after changing the setting to reacquire the missing blockdata.

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.