Bip37-Bloom-Filter

SPV 布隆過濾器是應用於完整區塊鏈還是僅應用於新交易

  • August 12, 2017

當一個 SPV 客戶端在沒有狀態的情況下啟動,連接到一個完整的節點並設置一個布隆過濾器它會收到什麼消息?

它會只獲得與其過濾器匹配的新交易,還是有某種方法也可以讓全節點提供與過濾器匹配的所有先前塊?

這個問題有答案。

對於第一個問題,當 SPV 客戶端啟動並設置布隆過濾器時,它不會從連接的比特幣節點接收任何特殊消息。布隆過濾器將導致對 SPV 的交易廣播被過濾。

在回答第二個問題時,SPV 客戶端仍然必須請求所有塊頭並為每個塊發送一個getdata請求,以確定它是否包含任何相關交易。布隆過濾器的目的是限制merkleblock響應getdata請求返回的事務數。

依賴比特幣對等節點獲取交易資訊的 SPV 客戶端的初始啟動速度會很慢,因為它需要請求所有塊頭。

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