Synchronization

在修剪節點上跳過 IBD?

  • November 24, 2022

我正在嘗試在主網上執行一個輕型 bitcoind 節點以進行測試,啟動時間最短。

./bin/bitcoind \
-prune=550 \
-txindex=0 \
-assumevalid=00000000000000000004c176952213ad9a228ced92f883fb4a472f20b474ca7a \
-checkblocks=0 \
-checklevel=0 \
-disablewallet=1

塊頭同步非常快(<5 分鐘),但我無法從某個塊或塊高度啟動 IBD,它總是從block=1.

有什麼方法可以跳過 IBD 驗證,直到達到特定的塊高度/塊雜湊值(我以為是assumevalid這樣,但我可能錯了!)。

Bitcoin Core 中並沒有實現這樣的事情,儘管為此做了一些工作(“assumeutxo”項目)。

assumevalid 所做的只是假設直到某個點的塊中的所有*腳本/簽名都是有效的。*它不會讓人跳過處理這些塊的全部,它只意味著可以跳過簽名檢查。但驗證的目標是建立本地節點對 UTXO 集的視圖(基本上是關於誰擁有哪些硬幣的數據庫)。為了建立該數據庫,您需要查看所有交易,而該數據庫是必不可少的——沒有它,就不可能驗證它之後的塊。

assumeutxo 項目努力添加類似 assumevalid 的內容,但用於建構 UTXO 集的結果。在潛在的未來,可能會信任過去某個時間點的 UTXO 集的特定雜湊值,從某個地方獲取該時間點的預先計算的 UTXO 集,然後驗證所有內容。

引用自:https://bitcoin.stackexchange.com/questions/116030