Transactions
客戶如何獲得交易的 merkle 分支?
當比特幣客戶端收到一筆交易時,它會檢查交易是否被確認。這是通過驗證交易在 merkle 樹中正確地散列到塊中的 merkle 根來完成的。
客戶端如何知道哪個區塊持有交易的默克爾根?
找到正確的區塊後,merkle 分支是如何獲得的?
在目前的 P2P 協議中,如果不請求它所在的塊,就無法請求歷史(=已確認)交易。支持這將要求對等方擁有所有交易的完整索引,這對於正常來說不是必需的手術。
要請求交易,您將:
- 用於
getdata MSG_TX <txid>
請求記憶體池或最近中繼的事務。在這種情況下,不存在塊資訊。- 用於
getdata MSG_BLOCK <blkid>
請求一個完整的塊,在這種情況下你會得到一個塊,並且無論如何都需要檢查完整的默克爾樹。- 用於
getdata MSG_FILTERED_BLOCK <blkid>
請求過濾塊(參見 BIP37),在這種情況下,您可以檢查部分默克爾樹以驗證交易確實是塊的一部分。