Protocol

版本消息中 addr_from 和 addr_recv 的用途是什麼?

  • April 4, 2018

我從這個答案中理解了addr_fromand的語義addr_recv。我不清楚他們的目的是什麼。難道我們不假設傳輸層協議負責傳輸嗎?

如果我發送的版本消息中資訊缺失或不正確addr_from,會發生什麼情況?addr_recv例如,在這個答案中,範常式式碼包括以下內容:

addr_recv = struct.pack("Q", 0)
addr_recv += struct.pack(">16s", "127.0.0.1")
addr_recv += struct.pack(">H", 8333)
addr_from = struct.pack("Q", 0)
addr_from += struct.pack(">16s", "127.0.0.1")
addr_from += struct.pack(">H", 8333)

如果可行,為什麼要在這些領域中包含任何有意義的內容?

在此評論中回答:

比特幣核心實際上忽略addr_from了收到的版本消息。addr_recv用於影響確定接收節點的哪些 IP 地址可公開訪問的啟發式方法。

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