Transactions

客戶如何獲得交易的 merkle 分支?

  • May 20, 2013

當比特幣客戶端收到一筆交易時,它會檢查交易是否被確認。這是通過驗證交易在 merkle 樹中正確地散列到塊中的 merkle 根來完成的。

客戶端如何知道哪個區塊持有交易的默克爾根?

找到正確的區塊後,merkle 分支是如何獲得的?

在目前的 P2P 協議中,如果不請求它所在的塊,就無法請求歷史(=已確認)交易。支持這將要求對等方擁有所有交易的完整索引,這對於正常來說不是必需的手術。

要請求交易,您將:

  • 用於getdata MSG_TX <txid>請求記憶體池或最近中繼的事務。在這種情況下,不存在塊資訊。
  • 用於getdata MSG_BLOCK <blkid>請求一個完整的塊,在這種情況下你會得到一個塊,並且無論如何都需要檢查完整的默克爾樹。
  • 用於getdata MSG_FILTERED_BLOCK <blkid>請求過濾塊(參見 BIP37),在這種情況下,您可以檢查部分默克爾樹以驗證交易確實是塊的一部分。

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