比特幣的數據儲存方式 blk.dat

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,那么往后再读八个字节作,将其值作为返回值

如果我们把之前的数据按照上述规则带入的话可以得到如下图表。



程式語言編年史

程式語言編年史原文 下面這張圖片描繪了整個程式語言的歷史。包括各種程式語言的發明人、程式語言的特點和適用領域、被什麼網站或公司使用等 (檢視 完整高清圖 )。 之所以會有那麼多不同的程式語言是因為設計程式語言的初衷不同、對語言學習曲線的追求不同、不同程式之間的執行成本差異...