First block of blk00000.dat from bootstrap.dat doesn't contain genesis block

3

1

I downloaded the bootstrap.dat file from the torrent at http://sourceforge.net/projects/bitcoin/files/Bitcoin/blockchain/ and placed it in the .bitcoin directory of a new Ubuntu installation of Bitcoin-Qt, ran the client and waited for the client to sync. In the blocks directory there are now blkxxxxx.dat files.

I expected the first 285 bytes of blk00000.dat to look like the ones at http://james.lab6.com/2012/01/12/bitcoin-285-bytes-that-changed-the-world/ complete with message about the Chancellor, but instead my first 285 bytes start with:

 00000000  f9 be b4 d9 d7 00 00 00  01 00 00 00 6f e2 8c 0a  |............o...|
 00000010  b6 f1 b3 72 c1 a6 a2 46  ae 63 f7 4f 93 1e 83 65  |...r...F.c.O...e|
 00000020  e1 5a 08 9c 68 d6 19 00  00 00 00 00 98 20 51 fd  |.Z..h........ Q.|
 00000030  1e 4b a7 44 bb be 68 0e  1f ee 14 67 7b a1 a3 c3  |.K.D..h....g{...|

and there's no readable text, i.e. no timestamp message from Satoshi. The magic number is there, but the rest of the data doesn't look like the genesis block.

Note that I'm using the standard Bitcoin foundation's client, and the genesis block has to be there for it to work (see How did the first 50 Bitcoins come into being?) so:

What am I missing?

Keir Finlow-Bates

Posted 2014-03-15T17:47:55.427

Reputation: 143

Answers

3

The genesis block is hardcoded in the software, as you need a common starting point to start a chain.

Pieter Wuille

Posted 2014-03-15T17:47:55.427

Reputation: 64 874

I see. And in the older clients that used to start with blk00001.dat rather than blk00000.dat as is now the case, used to have the genesis block in the dat file. Makes sense. And in fact the hash of the genesis block (000000000019d668... in big endian) is in the snippet I posted. – Keir Finlow-Bates – 2014-03-16T09:58:12.717

1

It looks as if you have the block after the genesis block. I don't know the bootstrap.dat format, but I would venture to guess that the genesis block doesn't need to be in the bootstrap file because the certain checkpoints are already hardcoded into the Reference Client, and that includes the genesis block.

njaard

Posted 2014-03-15T17:47:55.427

Reputation: 151