Synchronization

執行修剪過的節點是否支持網路中其他節點的同步?

  • November 16, 2021

我決定將我的比特幣核心節點修剪為 25 GB。對於節點在其數據目錄中的塊(未刪除的塊),這樣的節點是否支持網路中其他節點的同步?此外,讓我們想像一個剛剛加入網路的新節點,假設它已經成功下載了前 10GB 的數據,並且他的修剪設置為 25GB。在如此早期的狀態下,在開始修剪之前,這樣的節點是否為它擁有的網路塊的子集提供服務?

讓這個問題的範圍僅限於同步區塊鏈數據的問題。與託管服務相比,我很清楚使用修剪節點作為錢包的優勢。已經有一個與此事有些相關的問題,它的答案表明,截至 2017 年 5 月,已修剪的節點無法為他們擁有的舊塊子集提供服務。還是這樣嗎?此外,它的答案並不涉及第二個問題,即由修剪尚未開始的修剪節點為塊的子集提供服務。儘管我遇到了一些關於修剪的資源意見,但沒有一個能向我解釋同步的問題。

正如 Pseudonymous 已經說過的,修剪過的節點不會宣傳該NODE_NETWORK服務,這表明一個節點將服務於區塊的完整歷史。推論,修剪後的節點不會協助其他節點進行初始同步。

但是,從 Bitcoin Core 0.16 開始,修剪後的節點按照BIP159NODE_NETWORK_LIMITED的規定進行廣告。一個節點廣告表明它將為最近的 288 個區塊提供服務。因此,修剪後的節點可以為對等塊提供服務,以趕上不到兩天的時間間隔,並為覆蓋該期間的輕客戶端對 Merkle 分支的請求提供服務。修剪後的節點還傳遞有關對等節點、交易清單和新塊的資訊。NODE_NETWORK_LIMITED

即使修剪過的節點擁有超過 288 個數據塊,它們也不會提供更大的深度來防止根據它們儲存的數據量進行指紋辨識。

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