For a blockchain parser, is it correct to say that "for X magicbytes sequences, we have X blocks in blockchain" ?

In other words, may blocks in blockchain accidentally contain magicbytes sequences ?

1 Answer 1


A blockchain is an abstract datastructure that contains a chain of blocks, consisting of hash-linked he headers and transactions.

If you're talking about a parser, I assume you're talking about files on disk... perhaps the blk*.dat files in Bitcoin Core's data directory. Those are just one way to represent the blockchain, and it's an implementation specific one that can change between releases.

Assuming you're indeed asking about the disk representation of blocks in Bitcoin Core (or similar software):

  • Every valid block starts with the magic sequence plus the size.
  • The magic sequence is allowed to appear inside the middle of blocks.
  • There may be gaps between blocks that are filled with garbage, including byte sequences from block data, which may in fact also contain the magic sequence.

Furthermore, the term 'blockchain' is often interchangably used for both the tree of all blocks produced/known, or for the longest path through it. The block files on disk contain all blocks Bitcoin Core has ever seen, including blocks that are not part of the main chain ("orphan blocks") and were stale or reorganized out.

  • Sorry that my question was unclear. You guessed well, I'm talking about disk representation of blocks in bitcoin core. Thank you for your detailed answer.
    – JSM
    Commented Jan 12, 2017 at 15:04

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.