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