LoginSignup
0

More than 5 years have passed since last update.

EthereumのRopstenネットワークにて、Parityでnodeの同期が進まなくなった時の対処方法

Last updated at Posted at 2019-02-25

症状

EthereumのnodeをParityで立ててRopstenネットワークに接続してしばらく運用していたところ、いつの間にか新しいブロックが同期されなくなってしまっていた。
Parityのバージョンを最新にして再同期してみてもダメ。
Parityのログを追っていると(ログの見方はこちらを参照 https://wiki.parity.io/FAQ#what-does-paritys-command-line-output-mean )

以下ログのように

2018-04-30 16:10:13 Syncing #5532478 9ce2…0499 69.28 blk/s 235.7 tx/s 15 Mgas/s 0+ 17 Qed #5032470 25/25 peers 5 MiB chain 128 MiB db 2 MiB queue 3 MiB sync RPC: 0 conn, 0 req/s, 0 µs

※ログは例なので加工してあります。。

「Syncing #5532478」に対して、ネットワークのhighest block numberが「#5032470」
自身のnodeの持っているブロックに対してネットワークの持ってるブロックのほうが小さい状態となっていて、自身のnodeの同期が一向に進まない。
データを消して0から同期しなおしても同じ症状。

接続するnodeの同期が進んでいない状態?正しい最新のブロックを持ったnodeに接続できてないのか?と、色々とググってオプション等を確認していくと、「--reserved-peers」オプションで、接続するnodeを指定してやると良さげとのこと。
※「--bootnodes」オプションもあったが、こちらで試しても僕の環境ではうまくいかなかった。

で、どのnodeに接続すればいいんだ?と調べてると、公式にこっそり
https://github.com/ethereum/ropsten
こんなリポジトリがあって、指定されているnodeを指定してやればいいらしい。

対応方法

「--reserved-only」オプションで「--reserved-peers」で指定したnode以外には接続しないようにする

# 保存されているnodeのデータを削除
parity db kill --chain ropsten

# 接続先nodeの情報をテキストファイルに保存
echo -e "enode://6332792c4a00e3e4ee0926ed89e0d27ef985424d97b6a45bf0f23e51f0dcb5e66b875777506458aea7af6f9e4ffb69f43f3778ee73c81ed9d34c51c4b16b0b0f@52.232.243.152:30303\nenode://94c15d1b9e2fe7ce56e458b9a3b672ef11894ddedd0c6f247e0f1d3487f52b66208fb4aeb8179fce6e3a749ea93ed147c37976d67af557508d199d9594c35f09@192.81.208.223:30303" >> ropstenpeers.txt

# 接続先nodeをreserved-peersで指定してparity起動
parity --chain ropsten --reserved-peers ropstenpeers.txt --reserved-only

同期を最初からやり直すことになり、2nodeとしか接続しないので同期には時間がかかってしまうが、正しく同期されるようになった。
以後、parityを再起動する際には「--reserved-peers」「--reserved-only」オプションがなくとも正しく同期され続けた。

原因

よくわからない、、
ropstenにつないでるpublic nodeが少なくて、たまたまつなぎに行ったnodeが正しく最新化されていなかっただけなのか?とも思ったが、何度再起動してもうまくいかなかったので原因は別なのか、、、

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0