ぶっつけ本番でバリデーター運用をするのはオススメしません。まずはテスト環境で一通りの流れを試して不明点を無くしてください。そして2週間ほどサーバーを起動させておき、ハードウェア構成やインターネット環境に異常がないことを確認してください。
本番環境とテスト環境の作業相違点は以下の通りです。Goerliテストネットは2023年でサービス終了するため、Holeskyテストネットを活用することをお勧めします。
- 手順4「イーサリアムの実行クライアントの同期」
- GethまたはNethermindのネットワークを
mainnet
ではなくgoerli
またはholesky
に指定する。
- GethまたはNethermindのネットワークを
[Unit]
Description=Go Ethereum
After=network.target
Wants=network.target
[Service]
User=goeth
Group=goeth
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/geth \
--datadir /var/lib/goethereum \
--holesky \
--authrpc.jwtsecret /var/lib/jwtsecret/jwt.hex
[Install]
WantedBy=default.target
[Unit]
Description=Nethermind
After=network.target
Wants=network.target
[Service]
User=nethermind
Group=nethermind
Type=simple
Restart=always
RestartSec=5
WorkingDirectory=/var/lib/nethermind
Environment="DOTNET_BUNDLE_EXTRACT_BASE_DIR=/var/lib/nethermind"
ExecStart=/usr/local/bin/nethermind/nethermind \
--config holesky \
--datadir /var/lib/nethermind \
--Sync.SnapSync true \
--Sync.AncientBodiesBarrier 11052984 \
--Sync.AncientReceiptsBarrier 11052984 \
--JsonRpc.JwtSecretFile /var/lib/jwtsecret/jwt.hex
[Install]
WantedBy=default.target
- 手順5「イーサリアムのコンセンサスクライアントの同期」
- ネットワークを
mainnet
ではなくgoerli
またはholesky
に指定する。 - Checkpoint-sync-urlもgoerliまたはholeskyのURLに変更する。
- ネットワークを
[Unit]
Description=Lighthouse Beacon Node
Wants=network-online.target
After=network-online.target
[Service]
User=lighthousebeacon
Group=lighthousebeacon
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/lighthouse bn \
--network holesky \
--datadir /var/lib/lighthouse \
--http \
--execution-endpoint http://localhost:8551 \
--checkpoint-sync-url https://holesky.beaconstate.info \
--execution-jwt /var/lib/jwtsecret/jwt.hex \
--builder http://localhost:18550
[Install]
WantedBy=multi-user.target
- 手順6「ETHのデポジットとウォレット作成」
- 鍵生成するときのコマンドは
mainnet
ではなくgoerli
またはholesky
を指定する。例:./deposit.sh new-mnemonic --chain holesky
- デポジットするサイトのURLはgoerli.launchpad.ethereum.orgまたはholesky.launchpad.ethereum.orgです。また、絶対に本番のETHを使用せずに、テスト環境のETH(無料)を使用してください。
- ウォレット作成時のコマンドは
mainnet
ではなくgoerli
またはholesky
を指定する。
- 鍵生成するときのコマンドは
lighthouse account validator import --network holesky --directory $HOME/eth2.0-deposit-cli/validator_keys --datadir /var/lib/lighthouse
- 手順7「バリデーターの設定」
- ネットワークを
mainnet
ではなくgoerli
またはholesky
に指定する。
- ネットワークを
[Unit]
Description=Lighthouse Validator
Wants=network-online.target
After=network-online.target
[Service]
User=lighthousevalidator
Group=lighthousevalidator
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/lighthouse vc \
--network holesky \
--datadir /var/lib/lighthouse \
--suggested-fee-recipient 0x000...000 \
--builder-proposals
[Install]
WantedBy=multi-user.target
- 手順8「バリデーター確認用アプリのインストール」
- 設定でNetworkを切り替えれます。Goerliに繋がっているビーコンチェーンの名称はPraterです。1つのアプリでMainnetとテスト環境の両方の通知を受け取ることができます。
- 手順10「(任意) MEV relayの設定」
- 正直、テスト環境ではMEVを試す必要はないと思います。試す場合はserviceファイルのExecStartオプションの
-mainnet
を-goerli
にする。MEV-boostはholeskyテストネットにまだ対応していないみたいです(2023年11月7日現在)。 - Relayのアドレスもテスト環境用のものにしてください。各Relayのドキュメントに記載されてます。例:Flashhbots
- 正直、テスト環境ではMEVを試す必要はないと思います。試す場合はserviceファイルのExecStartオプションの
[Unit]
Description=MEV-boost
Wants=network-online.target
After=network-online.target
[Service]
User=mev
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/mev-boost \
-goerli \
-relay-check \
-relays https://0xb1559beef7b5ba3127485bbbb090362d9f497ba64e177ee2c8e7db74746306efad687f2cf8574e38d70067d40ef136dc@relay-stag.ultrasound.money \
-min-bid 0.05
[Install]
WantedBy=multi-user.target
テスト環境(特にGoerli)では「Attestation Missed」という通知が頻繁に来ますが心配しないでください。ブロック生成をするバリデーターのせいで自分ではどうしようもないことが多いです。Attestation Effectivenessが80%以上であれば正常です。本番環境では98%以上が正常です。