イーサリアムのマージ(The Merge)から32ETHをステーキングしているETHバリデータは運用方法が大幅に変更が加えられており、各バリデータは自己の知識を元に対応をする必要があります。
一方で非エンジニアや投資家には要求が非常に高いため、エラー(ERROR)やWARNなどが表示されて、Beacon Nodeが起動できなかったりアテステーション(Attestation)やブロックプロポーズができないなどのエラーが表示されることがあるでしょう。
本稿ではよくあるエラー例を元に、その原因について解説し対処法を一覧でわかりやすく解説を行います。
- 1 WARNとERROR
- 2 ERROR powchain
- 2.1 「Could not check configuration values between execution and consensus client error=got an unexpected error in JSON-RPC response: Post “http://localhost:8551”: context canceled」
- 2.2 JSON-RPC関連のエラー対処法
- 3 ERROR main
- 4 「could not read JWT secret file for authenticating execution API: open C:\prysm\JWT\jwt.he: The system cannot find the file specified.」
- 4.1 JWTトークン関連エラーの対処法
- 4.2 「Could not check execution client configuration. You are probably connecting to your execution client on the wrong port. For the Ethereum merge, you will need to connect to your execution client on port 8551 rather than 8545.」
- 4.3 Wrong Portと表示される場合の対処法
- 5 「the method engine_exchangeTransitionConfigurationV1 does not exist/is not available」
- 5.1 「Failed to create the protocol stack: mkdir C:\Program Files\Geth\geth: Access is denied.」
- 5.2 アクセス拒否の対処法
- 5.3 「Could not connect to execution endpoint error=could not verify execution chain ID as your connection is not authenticated. If connecting to your execution client via HTTP, you will need to set up JWT authentication.」
- 5.4 チェーンIDの検証エラーの対処法
- 6 「Unable to process past deposit contract logs, perhaps your execution client is not fully synced error=no contract code at given address」
- 7 ERROR validator
- 7.1 「Could not request attestation to sign at slot error=rpc error: code = Unavailable desc = the node is currently optimistic and cannot serve validators 」
- 7.2 Optimistic Syncとは?
- 8 墨汁うまいに質問する
本稿は2022年9月15日に行われたイーサリアムの超大型アップデート”マージ(The Merge)”に非エンジニアのバリデータが対応するためのマニュアルのエラー対処版となっています。
実際の起動や各種設定についてはリサーチレポート「【マージ対応】イーサリアムステーキングのバリデータ運用 BeaconNodeとETH1エンジンの起動方法」にてわかりやすく解説していますので、そちらを先に参照してください。
WARNとERROR
イーサリアムノードでの同期を行う際、同期情報として主に
1.INFO
2.WARN
3.ERROR
の3つの情報が表示されます。
1のINFOは主にブロック情報やPeerとの接続、ブロック高(スロット高)などの一般的な除法が英語で表記されているもので、問題はありません。またWARNも致命的なエラーなどではなく、メインネットやテストネットへの接続など”必要であるが同期に著しく問題がないもの”などがわかりやすくめにつく形で表記されているものが大半です。
一方でERRORが表示されている場合は
・そもそものBeacon Nodeが起動ができない
・アテステーションができない
・スロットを同期できない
などの影響を受けるため、ERRORが表示される場合はその大本の原因を解決する必要があるのです。
ERROR powchain
まずPrysmなどのBeacon Node側で見られるpowchain関連のエラー例から見てみましょう。
「Could not check configuration values between execution and consensus client error=got an unexpected error in JSON-RPC response: Post “http://localhost:8551”: context canceled」
イーサリアムのマージ(The Merge)後はEL(実行レイヤー)とCL(コンセンサスレイヤー)の2つでイーサリアムを構成しているため、エラーでもどちらのチェーンが問題かを把握しやすくなっています。
例えば
ERROR powchain: Could not check configuration values between execution and consensus client error=got an unexpected error in JSON-RPC response: Post “http://localhost:8551”: context canceled
という典型的なエラーでは「ERROR powchain」とあるようにGethなどのETH1エンジン側のノードにエラーがあるということを示しています。
JSON-RPC関連のエラー対処法
ここでの警告文では
「ELとCL間の設定値が確認できない」
とあり、JSON-RPCのレスポンスに予期せぬエラーがあり、Beacon Node起動時に指定した”http://localhost:8551”に問題があると表記されているのです。このエラーの理由としてEL側