Bitcoin-Core
跨 blkxxxxx.dat 文件拆分數據
我正在嘗試使用大數據解析比特幣數據,並想了解更多關於 blk 文件本身的資訊。我想知道比特幣如何在文件中拆分交易。我知道文件有 128 MiB 的限制。這是否意味著交易數據可以跨 blk 拆分?例如,交易的默克爾根在一個文件中,而輸出索引在另一個文件中?還是塊數據保留在單個文件中?
塊永遠不會跨文件分割:整個塊,從魔法到長度,到標題,再到交易數據,總是連續地儲存在一個文件中。
但是,您可能需要考慮:
- blk*.dat 文件中的塊按照從 network.l 接收到的順序儲存,這可能不是塊的邏輯順序。
- 一個塊可能在文件 N 中,它的後代塊在文件 N-1 中。
- 這些文件包含曾經收到的所有區塊,包括那些不屬於主鏈但被重組的區塊。
- blk*.dat 文件中的塊之間可能存在零“間隙”或垃圾數據。