Первые четыре байта являются версия байтов.
Волшебные байты только для работы в сети, и они предварять каждое сообщение, посланное по сети. Это просто байты идентификатора для идентификации, что сообщение для Bitcoin.
На самом деле...
$ Голова -c 300 blk00000.dat | шестнадцатеричного -C
00000000 f9 быть b4 d9 1d 00 00 01 01 00 00 00 00 00 00 00 | ................ |
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................ |
00000020 00 00 00 00 00 00 00 00 00 00 00 00 3b a3 ред FD | ............; ... |
00000030 7a 7b 12 б2 7а с7 2c 3e 67 76 8f 61 7f с8 1b с3 |. {Г .. г,>gv.a .... |
00000040 88 51 32 8а 3а 9f b8 аа 4b 1e 5e 4а 29 аб 5f 49 | ..Q2: ... К. ^ J) ._ I |
00000050 FF FF 00 1д 1д ас 2б 7с 01 00 01 00 00 01 00 00 | ...... + | ........ |
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................ |
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF | ................ |
00000080 FF FF 4d 04 FF FF 00 1d 01 04 45 54 68 65 20 54 | ..M ....... Ethe Т |
00000090 69 6d 65 73 20 30 33 2f 4а 61 6e 2f 32 30 30 39 | ИМЕС 03 / Jan / 2009 |
000000a0 20 43 68 61 63 65 6e 6c 6c 6f 72 20 6f 6e 20 62 | Канцлер на б |
000000b0 72 69 6e 6b 20 6f 66 20 73 65 63 6f 6e 64 20 62 | каток второго б |
000000c0 61 69 6c 6f 75 74 20 66 72 20 6f 62 61 6e 6b 73 | ailout для банков |
000000d0 FF FF FF FF 01 00 f2 05 2a 00 00 01 00 43 41 04 | ........ * .... CA. |
000000e0 67 8а FD b0 Fe 55 48 27 19 67 f1 а6 71 30 b7 10 | г .... UH'.g..q0 .. |
000000f0 5с d6 a8 28 e0 39 09 a6 79 62 e0 еа 1f 61 де b6 | \ .. (9..yb ... а ... |
00000100 49 f6 Ьс 3f 4с эф 38 c4 f3 55 04 e5 1е c1 12 де | I .. L.8..U ......? |
00000110 5с 38 4d f7 ба 0b 8d 57 8а 4с 70 2b 6b f1 1d 5f | \ 8M .... W.Lp + к .._ |
00000120 AC 00 00 00 00 f9 быть b4 d9 d7 00 00 | ............ |
0000012c
Выше, вы увидите самый первый блок в blockchain, а также первые 7 байт второго блока.
Вы заметите, что как магическое число:
00000000 f9 быть b4 d9 1d 00 00 01 01 00 00 00 00 00 00 00
и размер блока:
00000000 f9 быть b4 d9 1d 01 00 00 01 00 00 00 00 00 00 00
сохраняются на диске.
В какой-то степени это до интерпретации, являются ли эти два значения "часть блока" или просто разделителей между блоками с мета-информацией о следующем блоке. Следует отметить, что ни один из этих двух значений оказывают никакого влияния на части блока заголовка, который хешируется.
Первая часть блока, который фактически хешированный номер версии:
00000000 f9 быть b4 d9 1d 01 00 00 01 00 00 00 00 00 00 00
Очевидно, что если это номер версии, существует возможность для описания правил, который определяет различные размеры блоков, например, 256k, 512k, 1Mb, 2Mb и т.д.
И как именно это будет работать? Если текущая версия ничего не знаю о будущих версиях не знает, то, как он будет знать, что делать, когда он видит другой номер версии блока? Как он будет знать, если размер блока является действительным или нет?