Is magicbytes sequence a valid delimiter for blocks in blockchains?

1

1

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 ?

JSM

Posted 2017-01-12T09:27:31.587

Reputation: 13

Answers

0

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.

Pieter Wuille

Posted 2017-01-12T09:27:31.587

Reputation: 54 032

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 2017-01-12T15:04:46.033