blk.dat
Raw blockchain data files 原始區塊鏈數據文件: https://learnmeabitcoin.com/guide/blkdat
Magic Bytes: https://learnmeabitcoin.com/guide/magic-bytes
完整解析,包括程式讀寫細節:
https://zhuanlan.zhihu.com/p/31924911
https://blog.csdn.net/t46414704152abc/article/details/90174727
几乎所有数据都是以小端类型(Little-Endian)存储的,但是 Transaction Input/Output 里的script除外。它们是以大端方式(Big-Endian)存储的。
magic number是一个固定的数,其值为 0xD9B4BEF9
variable integer本身的长度不定,在 1 到 9 字节之间。具体的解析规则如下:
如果第一个字节小于 253,那么直接返回该字节所代表的数值
如果第一个字节等于 253,那么往后再读一个字节作,将其值作为返回值
如果第一个字节等于 254,那么往后再读四个字节作,将其值作为返回值
如果第一个字节等于 255,那么往后再读八个字节作,将其值作为返回值
如果我们把之前的数据按照上述规则带入的话可以得到如下图表。

