Bitcoin-Core

如果對等點沒有按時響應“getheaders”或“getdata”會發生什麼?

  • July 22, 2021

假設一個節點從許多對等點接收到相同的“inv”消息。

  1. 節點會向所有節點發送“getheaders”請求還是只向其中一個節點發送請求?
  2. 節點是否保留一個計時器以從對等方獲取“標頭”響應?定時器有多大?
  3. 假設節點僅向其對等節點之一發送“getheaders”請求並且計時器到期。然後該節點向多少個其他對等方發送“getheaders”請求?節點是否儲存地圖資料結構map<"inv", peer id from which the inv is received>來執行此操作?
  1. 在 IBD 期間,Bitcoin Core 只會將 getheaders 發送給一個節點。在 IBD 之後,它將在連接時將其發送給所有人。
  2. 15分鐘。之後,如果沒有收到任何內容,它將斷開對等方的連接。
  3. 由於在超時對等方斷開連接後,這為“請求對等方的標頭”打開了插槽,以便轉到另一個。

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