Bitcoin-Core
比特幣核心 LevelDB 索引保存分叉塊
我注意到這
bitcoind
將永久保存它收到的未經驗證的塊,即使它們是小型區塊鏈分叉,可能是由於相對同時發現兩個高度相等的塊而發生的。這不會對比特幣核心的功能造成問題,因為肯定有一個程序寫入原始碼,忽略瞭如此小的分叉,但是,我很奇怪,數據仍然存在於保存到.dat
文件.ldb
中的.bitcoin/blocks/
數據中.bitcoin/blocks/index
。-reindex
有沒有辦法在不影響整個區塊鏈的情況下修剪這些屬於區塊鏈中小分叉的無效區塊?-reindex
甚至會刪除它們嗎?
保留它們是因為刪除它們很複雜(需要重寫塊儲存文件),並且保留它們幾乎沒有任何成本(它們只佔總數的一小部分)。此外,接近提示我們希望有可用的分叉,以便在其中一個最終成為主鏈時能夠快速重組。
從技術上講,比特幣核心的 $DATADIR/blocks 目錄並不是區塊鏈的代表。它是我們曾經下載過的所有有效塊的儲存。其中哪一個最終被認為是主鍊是一個不同的問題,並且獨立處理。
另請注意,在修剪模式下,所有舊塊都被刪除 - 包括這些小叉子。