Protocol

如何減少獲得最新區塊的時間?出站對等體的數量是否影響速度?

  • November 19, 2014

我在比特幣網路上執行一個完整的節點。有時,我發現獲得最新塊需要一段時間。

我查看了原始碼,發現每個節點最多可以連接到八個對等點。增加連接數,減少收到最新塊的時間是否有幫助?

直到最新版本 (v0.9.3),更多的對等點實際上通常意味著更慢的同步,因為我們實際上只從一個對等點獲取。

即將發布的版本 (v0.10.0) 具有完全重寫的塊獲取/驗證機制,它首先驗證標頭,然後從所有對等點並行獲取塊。結果應該是更快的同步。

是的,更多的對等節點可能會減少您接收最近開采的區塊所需的時間。

當新區塊被挖出時,礦工(或礦池)會向其所有對等方發送一條inv消息,宣布新區塊。這些對等點都向礦工發送一條getdata消息,請求區塊。礦工回復一條block消息,將塊發送給請求它的每個對等方。(這部分可以優化為不發送整個塊。)

然後對等點各自驗證該塊。一旦通過驗證,他們就會向inv所有對等方發送一條消息,宣布新區塊。任何尚未收到塊的對等方都發送getdata請求塊的消息。消息隨之block而來,循環重複,直到網路上的所有對等方都擁有該塊。(或者,在 SPV 客戶端的情況下,只是他們需要的塊的一部分。)

您擁有的對等點越多,當他通過inv消息發布初始公告時您與礦工連接的機會就越大,從而使您成為第一個通過getdata消息請求塊的人。

但是,如果您向其發送getdata消息的對等方在數據傳輸中陷入困境,則完成下載塊的時間可能比您從其他對等方開始下載的時間長,因此擁有更多連接並不能保證您將能夠更快地下載最近開采的區塊。簡而言之,其中涉及到運氣因素。

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