イーサリアムのマージ(The Merge)からは32ETHをステーキングしているバリデータの運用方法が変わり、Beacon Node及びETH1エンジンの起動と接続方法も変わります。2022年9月15日以降はノード自体もコンセンサスレイヤーのETH2(PrysmやLighthouseなど)と実行レイヤー(GethやNethermindなど)両方が必要となり、Infuraが使えなくなるとイーサリアムファンデーションは発表しているのです。
本稿ではさらに難易度が上がったバリデータ運用についてコマンドや英語がわからない非エンジニアの投資家向けにわかりやすく実例を元に解説を行います。
- 1 The Mergeで変わるイーサリアムの構造
- 2 イーサリアム2.0(The Merge)の仕組み一覧
- 3 マージ後のETH2バリデータ要求スペック
- 4 Geth同期に2TBのSSDが必要か?
- 5 事前準備
- 5.1 ETH1エンジンのエンドポイントGeth
- 5.2 ETH2クライアントのインストール
- 6 JWTトークンの生成
- 6.1 ETH2クライアントを介してJWT生成
- 6.2 保管フォルダを作成
- 7 GethをETH1エンジンエンドポイントとして起動する
- 7.1 同期するブロックデータの保存先を指定する
- 7.2 JWTトークンの指定
- 7.3 ETH1エンジン起動
- 7.4 使用したコマンド一覧
- 8 ETHマージ後のBeacon Node起動方法
- 8.1 ETH1エンジンのエンドポイント指定
- 8.2 JWTトークンの指定
- 8.3 使用したコマンド一覧
- 9 墨汁うまいに質問する
The Mergeで変わるイーサリアムの構造
2022年9月16日を予定しているイーサリアムのマージ(The Merge)ではイーサリアムの構造が大きく変更され、マイニングを必要とするEthashからCasper FFGのプルーフ・オブ・ステーク(以下PoSとする)へ移行します。
このマージによって
イーサリアム1.0 → 実行レイヤー(ETH1エンジン)
イーサリアム2.0 → コンセンサスレイヤー
へと変更されます。
このマージによるイーサリアム構造の変更に伴い、ローンチパッドを介してデポジットコントラクトへ32ETHをステーキングしているバリデータは運用方式の変更対応を求められているのです。
墨汁マガジンVol.600「The Mergeとは?図解で理解するイーサリアムのETH1とETH2統合 Pt.1 今後の重要実装EIP-3675」
イーサリアム2.0(The Merge)の仕組み一覧
リサーチレポート「真のイーサリアムキラーは”イーサリアム2.0(セレニティ)”」
墨汁マガジンVol.259「イーサリアム2.0 ステーキングペナルティ Partial Slashingとは?」
墨汁マガジンVol.257「イーサリアム2.0 バリデータのペナルティ”Inactivity Leak”でスラッシュされる条件」
墨汁マガジンVol.343「イーサリアム2.0(ETH2)でバリデータがスラッシュ(ペナルティ)されたらどうなるのか?」
墨汁マガジンVol.398「ETH2バリデータのプロポーザーとアテスター フォークチョイスルールによる合意形成の仕組み」
墨汁マガジンVol.399「イーサリアム2.0コミッティ(Committee)とは?ETH2ブロックプロポーザーへのDDoS攻撃問題」
墨汁マガジンVol.600「The Mergeとは?図解で理解するイーサリアムのETH1とETH2統合 Pt.1 今後の重要実装EIP-3675」
墨汁マガジンVol.601「図解で理解するイーサリアムのETH1とETH2統合”The Merge”Pt.2 ETH1エンジンとは?」
墨汁マガジンVol.615「The Merge後のイーサリアム2.0とL2の完成形を図解で理解する」
墨汁マガジンVol.741「【図解】イーサリアムで支払われる手数料はThe Merge後どうなるのか?バリデータ報酬の変動と取り扱い」
墨汁マガジンVol.748「イーサリアム2.0のFee Recipientとは?マージ後にバリデータ報酬を受取るための設定方法」
マージ後のETH2バリデータ要求スペック
墨汁マガジンVol.750「マージに向けてイーサリアムバリデータが知らなければいけないこと」で解説したように、ETH1エンジンのエンドポイントとしてInfuraを使用できなくなるとイーサリアムファンデーションは説明しており、Gethなどのノードを別途建てる必要があるということになります。
この場合ETH2バリデータPC要求スペックはBeacon Chain(ビーコンチェーン)ローンチ時の2020年と異なり、
CPU:4コア 2.8GHz以上
メモリ:16GB以上
ストレージ:SSDで2TB以上
となっています。
これはGethやNethermindといったETH1エンジンの同期が必要であるためであり、ETH2のBeacon Chainだけであれば2022年9月のThe Merge前で100GB前後で済んでいたわけですが、Gethの同期分と今後を考慮してこの数字になっているということです。
Gethの同期をするということを考慮するとメモリは16GBは必要ないとしても最低でも8GB以上は必要であり、CPUもCore i5くらいはある方がいいでしょう。
Geth同期に2TBのSSDが必要か?
2022年9月現在のGethのフルノードに必要なSSDの容量はEtherscanによると”909GB”となっています。これはGethのノードデータのプルーン(不要なデータを切り取ること)が2022年1月に行われても8ヶ月で400GB増えていることを考慮するとSSD容量が1TBでは2022年11月には同期できなくなるということを示しています。
Snap同期でも700GB~は必要であるため、長期のイーサリアムステーキングを考慮すると2TBが妥当であると言えるでしょう。
出典:Etherscan – イーサリアムのGethフルノードの容量
事前準備
ではここからはマージからのイーサリアムバリデータの運用と設定変更についてみていきましょう。
ETH1エンジンのエンドポイントGeth
まず最初にETH1エンジンのエンドポイントとしてGeth(ゲス)を同期するため、Gethのダウンロードを行います。
ETH1エンジンとしてはGethを含む4クライアントの選択肢があります。
Geth:https://github.com/ethereum/go-ethereum/releases
Nethermind:https://github.com/NethermindEth/nethermind/releases
ここでは最も使用されているGethをベースに解説を行いますが、独自にクライアントを選択したい場合は上記リンクを参照してください。
Gethのインストール方法についてはリサーチレポート「イーサリアムGethの使い方マニュアル、同期モードやテストネットへの参加方法 Keystoreを安全に作成する」を参照してください。
ETH2クライアントのインストール
またコンセンサスレイヤーとしてのETH2クライアントをインストールしておく必要があります。ここではPrysmを例に行いますが、他のETH2クライアントを利用したい場合は下記を参照してください。
Prysm(プリズム):https://github.com/prysmaticlabs/prysm/releases
Lighthouse(ライトハウス):https://github.com/ConsenSys/teku/releases
Teku(テク):https://github.com/ConsenSys/teku/releases
Nimbus(ニンバス):https://github.com/status-im/nimbus-eth2/releases
Prysmのインストール手順とバリデータアカウントの設定についてはリサーチレポート「【非エンジニア向け】イーサリアム2.0ステーキング後のBeaconNodeとバリデータノード起動のやり方完全マニュアル」を参照してください。
JWTトークンの生成
イーサリアムのマージ後にはコンセンサスレイヤーのETH2(ここではPrysm)と実行レイヤーのETH1エンジン(ここではGeth)をHTTP接続する必要があり、JWTトークンによる認証をしなければいけません。
JWTトークンとは”JSON Web Token”の略称であり、ETH1とETH2クライアント間での安全な通信を確立するために使用する仕様へとThe Mergeから変更が行われたのです。そのためJWTトークンを生成するのにベストな方法として
「