Clique
Geth 同步超時
地獄,我正在努力讓 PoA 網路在多台伺服器上執行節點。我已經減少了嘗試獲得 2 個密封器網路的問題,因為它甚至沒有啟動超過 2 個節點。有 2 個節點,它啟動了,然後我殺死了一個節點,它卡住了。
我刪除了一個節點的 geth 目錄,並嘗試從頭開始同步,但我一直得到這個:
DEBUG[09-26|09:31:37.939] Ethereum message handling failed id=077ea0d162f14b7a conn=dyndial err=EOF DEBUG[09-26|09:31:37.939] Removing Ethereum peer peer=077ea0d162f14b7a DEBUG[09-26|09:31:37.939] Removing p2p peer id=077ea0d162f14b7a conn=dyndial duration=39.835s peers=0 req=false err="read tcp 103.230.15.133:37982->13.124.90.14:30382: i/o timeout" DEBUG[09-26|09:31:37.940] Block body download terminated err="block body download canceled (requested)" DEBUG[09-26|09:31:37.940] Transaction receipt download terminated err="receipt download canceled (requested)" DEBUG[09-26|09:31:37.940] Skeleton fill terminated err="block header download canceled (requested)" DEBUG[09-26|09:31:37.940] Skeleton chain invalid peer=077ea0d162f14b7a err="block header download canceled (requested)" DEBUG[09-26|09:31:37.940] Header download terminated peer=077ea0d162f14b7a DEBUG[09-26|09:31:37.940] Synchronisation terminated elapsed=30.241010243s WARN [09-26|09:31:37.940] Synchronisation failed, retrying err="block body download canceled (requested)" DEBUG[09-26|09:31:38.101] Adding p2p peer name=Geth/v1.8.15-stable-... addr=13.124.90.14:30382 peers=1 DEBUG[09-26|09:31:38.101] Ethereum peer connected id=077ea0d162f14b7a conn=dyndial name=Geth/v1.8.15-stable-89451f7c/linux-amd64/go1.10 DEBUG[09-26|09:31:41.702] Found seed node in database id=485df49d29823cfb addr=103.230.15.133:30380 age=427201h31m41.702795396s
基本上,
err="read tcp 103.230.15.133:37982->13.124.90.14:30382: i/o timeout"
每次,在刪除 geth 數據庫之前或之後。由於它是在我終止網路以在螢幕實例中重新啟動它時開始的,所以這顯然不是機器之間的真正連接問題(我可以從一個到另一個的 ssh 沒有任何問題)。
似乎 geth 只是錯誤,並沒有提供它擁有的塊。請問有什麼幫助嗎?
是的,甜蜜的自我回答。似乎 bootnodes 和 sealer 節點完全不同且不兼容。為了引導系統,我嘗試在引導節點列表中添加其他對等點。它的作用是節點將嘗試發送那些將無法響應的 PING/v4 請求,並導致對等方被丟棄,然後立即重新添加它。
結論:只有 –bootnodes 選項中的引導節點。