Bitcoin-Core
孤立或陳舊的塊在比特幣核心節點記憶體中保留多長時間?
如果有一個鏈重組,例如:
區塊鏈:
0a
—1a
—2a
—3a
變成……
0a
—1a
—2b
—3b
塊在節點上的記憶體中保存
2b
多長時間?3b
2b
如果我稍後向節點查詢塊(getblock(2aBlockHash, VERBOSITY_LEVEL = 2)
),它還會返回給我嗎?謝謝!
您指的是陳舊的塊。孤立塊是前一個(父)雜湊欄位指向未知塊或本地節點尚未處理的塊的塊。由於比特幣核心遵循標頭優先方法,因此在下載區塊數據之前首先下載並驗證區塊標頭。因此,完整節點將永遠不會收到它不知道其父節點的塊。因此,使用目前的標頭優先方法,您的比特幣核心節點不會下載孤立塊。
現在,來到陳舊的街區。所有塊都儲存在磁碟中的
blocks/blk*.dat
文件中。您從對等方收到的塊數據(如果有效)將永久儲存在該目錄中。但是,為了接收陳舊的塊,您需要在您的對等方從不同的鏈視圖向您廣播塊時線上。對等點只會從他們的角度廣播他們從目前活動鏈中查看的那些塊。因此,使用該命令,您將只能檢索線上時收到的陳舊塊。您可以使用該
bitcoin-cli getchaintips
命令返回有關塊樹中所有已知提示的資訊,包括主鏈以及其他分支。