MENU

Symbolノードの同期をやり直した話【symbol-bootstrap編】

こんにちは。今回は、Symbolノードがうまく同期できておらずハーベストできない状態になっていたため、
最初から同期し直したときの手順とハマりポイントを備忘録としてまとめました。


まずは、再同期の前にチェックすべきこと

ノードが正しく動いていないからといって、すぐに「同期し直し」を始めてしまうのは早計です。以下のポイントを確認してからでも遅くありません。

1. ログファイルの確認

ノードが何らかの理由で停止した場合、まず最初にやるべきはログの確認です。異常終了の原因やエラーメッセージの手がかりが得られるかもしれません。

tail target/nodes/node/logs/catapult-server.log -f

2. ロックファイルの有無を確認

よくある原因として、前回のノード停止時にロックファイル(recovery.lockが残ったままになっているケースがあります。

ls target/nodes/node/data/recovery.lock

このファイルが存在していたら、ノードが正常に起動しない可能性が高いです。安全に停止されていることを確認した上で、ファイルを削除して再起動を試してみてください。

rm target/nodes/node/data/recovery.lock

3. 証明書の期限チェックも忘れずに

同期や起動とは直接関係ないように見えますが、証明書の有効期限切れもノードが正常動作しない原因のひとつです。以下で確認できます:

symbol-bootstrap healthCheck

「renewCertificates」の記述が出た場合は、以下のように更新します:

symbol-bootstrap renewCertificates

30日以上残っている場合でも、強制的に更新したいときは次のコマンドを使用:

symbol-bootstrap renewCertificates --force

Symbolノードを再同期する手順

チェックを終え、再同期を行うと判断したら、以下の手順で作業を進めました。

1. targetフォルダのバックアップとリネーム

まずは現在のデータを残しておくため、targetフォルダを別名にリネームしてバックアップします。

mv target target20250401

2. configの再生成

my_preset.ymlを使って、ノード設定を再構成します。事前にaddresses.ymlの内容(特に秘密鍵)をmy_preset.ymlに正しく転記しておく必要があります。

symbol-bootstrap config -p mainnet -a dual -c my_preset.yml

3. コンテナの構成・起動

設定が完了したら、composeして起動します。

symbol-bootstrap compose
symbol-bootstrap start -d

4. ヘルスチェックで状態確認

symbol-bootstrap healthCheck

また、ノードの情報は以下のURLでブラウザからも確認できます:

https://[あなたのサーバーIPまたはドメイン]:3000/node/info

ここまでで、ノードの同期が最初からやり直されます。完全に追いつくまでに数日かかるため、しばらく放置して様子を見ます。

4. ブロックの同期状況の確認

放置していてもいいですが 同期の状況は以下のURLで確認できます。

https://[あなたのサーバーIPまたはドメイン]:3000/chain/info

上記のURLにアクセスすると以下のようなjsonが表示されるのでheightの項目で同期状況がわかります。

{"height":"2714982","scoreHigh":"17","scoreLow":"1539462292576715214","latestFinalizedBlock":{"finalizationEpoch":1794,"finalizationPoint":72,"height":"2581920","hash":"1924A77271290203E730C7807C94BF3E1E9D0068650D094FABD95EE79CBADAC6"}}




2025年4月現在同期にかかる時間

実際にやってみたところちょうど丸2日かかりました。5年分のデータは大きいですね
どこかの信頼できるところにsymbol-bootstrap用のスナップショットがあれば時短できるのですが 残念ながら見つからずでした。


起動に失敗したときの注意点(再掲)

  • ログを見る(catapult-server.log
  • recovery.lockが残っていないか確認
  • 証明書の有効期限切れもチェック

目次

証明書の更新(年1回)

証明書は1年ごとに更新が必要です。期限30日以内なら、ノードを停止せずに更新できます。

symbol-bootstrap renewCertificates

30日以上残っている場合でも、以下で強制更新できます:

symbol-bootstrap renewCertificates --force

有効期限は以下で確認できます:

symbol-bootstrap healthCheck
The node.crt.pem certificate for node node will expire on Mar 12 09:07:58 2023 GMT.

まとめ

Symbolノードの再同期は、以下のステップを意識すれば比較的スムーズに行えます:

  • 再同期前にログとロックファイルを確認する
  • my_preset.ymlの準備を確実に
  • 証明書の更新も忘れずに

何か問題が起きたとき、焦らずに一つずつ確認していくことが大切です。この記事がノード運用の参考になれば嬉しいです!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

こんにちは、「雑記.com」運営者の Taka です。
日常の中で感じたことや、誰かに伝えたくなったことを気ままに綴っています。
ジャンルはバラバラですが、「読んでよかった」と思える記事を目指して更新中。
ふとした時間に、のんびり読んでいただけたら嬉しいです。

目次