Bip37-Bloom-Filter
SPV 布隆過濾器是應用於完整區塊鏈還是僅應用於新交易
當一個 SPV 客戶端在沒有狀態的情況下啟動,連接到一個完整的節點並設置一個布隆過濾器它會收到什麼消息?
它會只獲得與其過濾器匹配的新交易,還是有某種方法也可以讓全節點提供與過濾器匹配的所有先前塊?
這個問題有答案。
對於第一個問題,當 SPV 客戶端啟動並設置布隆過濾器時,它不會從連接的比特幣節點接收任何特殊消息。布隆過濾器將導致對 SPV 的交易廣播被過濾。
在回答第二個問題時,SPV 客戶端仍然必須請求所有塊頭並為每個塊發送一個getdata請求,以確定它是否包含任何相關交易。布隆過濾器的目的是限制merkleblock響應getdata請求返回的事務數。
依賴比特幣對等節點獲取交易資訊的 SPV 客戶端的初始啟動速度會很慢,因為它需要請求所有塊頭。