2
1
Assuming a full node running Bitcoincore v0.10 (with txindex=1), how exactly does the new "headers first" functionality affect the structure of the blockchain data? (Specifically, the blkxxxx.dat data, though perhaps I'm unaware of other files which are ancillary to the data structure).
The README.md for the release specifies that there's no v0.9.x back-compatibility for v0.10 blockchain blk data.
Because release 0.10.0 makes use of headers-first synchronization and parallel block download (see further), the block files and databases are not backwards-compatible with older versions of Bitcoin Core or other software:
Blocks will be stored on disk out of order (in the order they are received, really), which makes it incompatible with some tools or other programs. Reindexing using earlier versions will also not work anymore as a result of this.
How then, does the 0.10 version blk data get parsed by the client? And by extension, why does "headers first" change the structure at all, given it seems to logically set up "a template" for the Tx data to sit?
Yeah, that makes sense. I am trying to get a low-level, concrete answer on this so perhaps someone well versed in reading the Github discussions can chime in – Wizard Of Ozzie – 2015-03-27T09:49:52.677
Fair enough, I recognize this answer is a little bit high-level. But I suspect there may not be any real low-level changes. The Blk___.dat files literally have raw blocks in them, so I feel like the most you can do is store them in a different order – morsecoder – 2015-03-27T12:09:09.253
I'll report back :) I do appreciate the response mate. I'm just frustrated that so much functionality of the software - including blk, bitcoin-tx, rest functionality etc etc - is all hidden in Github. – Wizard Of Ozzie – 2015-03-28T04:17:08.097