イーサリアム - ETH

Lighthouseを使ったイーサリアムバリデータのセットアップ手順:Ubuntu環境での完全ガイド

本記事にはアフィリエイト広告(PR)を含む場合があります。

※本記事にはアフィリエイト広告(A8.net)を含みます。記載の内容は2026年8月時点で公開情報を確認した一般的な解説です。
イーサリアムバリデータのセットアップにあたって、実際のコンセンサスクライアントの設定方法は多くの方が最初に詰まるポイントです。本記事では、コンセンサスクライアントとして「Lighthouse」、実行クライアントとして「Nethermind」を組み合わせた構成をUbuntu 22.04 LTS環境で設定する手順を解説します。

LighthouseはRustで実装されており、高パフォーマンスと低メモリ消費量が特徴です。Nethermindは.NETで実装された実行クライアントで、メモリ効率と設定の柔軟性に優れています。この組み合わせはクライアント多様性の観点からも推奨される選択肢の一つです。

本記事はUbuntu Serverの基本操作ができる方を対象としており、コマンドラインの基本的な操作に慣れていることを前提としています。

1. Ubuntu 22.04 LTSの初期セットアップ

1-1. システムの更新とユーザー設定

まず、システムパッケージを最新の状態に更新します。以下のコマンドを実行してください。

sudo apt update && sudo apt upgrade -y

次に、バリデータ専用のシステムユーザーを作成することをお勧めします。専用ユーザーを作成することでセキュリティを高められます。

sudo useradd --no-create-home --shell /bin/false ethereum

必要な依存パッケージをインストールします。

sudo apt install -y curl wget unzip jq git

1-2. ファイアウォールの設定

UFW(Uncomplicated Firewall)を使用してファイアウォールを設定します。まずUFWを有効化し、SSHアクセスを許可してから、必要なポートを開放します。

sudo ufw allow 22/tcp comment 'SSH'
sudo ufw allow 30303/tcp comment 'Nethermind P2P TCP'
sudo ufw allow 30303/udp comment 'Nethermind P2P UDP'
sudo ufw allow 9000/tcp comment 'Lighthouse P2P TCP'
sudo ufw allow 9000/udp comment 'Lighthouse P2P UDP'
sudo ufw enable

8545(JSONRPC)と8551(Engine API)は外部からアクセスできないよう開放しないことが重要です。

報酬が年間いくらになるかは ステーキング報酬は年間いくら? で計算できます(複利にも対応)。

必要なサーバースペックは Botサーバーの必要スペック診断 で確認できます。

ノードを立てる前に、必要な容量を確認してください

ビットコインのブロックチェーンは2026年8月時点で約762GBあり、月におよそ7GBずつ増え続けています。剪定(pruned)モードなら数GBまで削れますが、過去の取引を自分で検証したい場合は全量が要ります。手元のノートPCで始めると、初回同期の途中でディスクが足りなくなったり、スリープや再起動でやり直しになったりします。ディスク容量に余裕があって電源と回線が落ちない環境なら、放置したまま同期を完了させられます。動かしたいノードの要件と、各プランのディスク容量を先に見比べてください。

ディスク容量とプランを確認する →PR・XServer VPS(エックスサーバー株式会社)。容量の数値は2026年8月時点の公開データに基づく概算です。料金やスペックは変更されることがあるため、最新の内容は公式サイトでご確認ください。

国内で暗号資産を買うなら、まず口座が要ります

日本円の入出金に対応した国内の登録業者なら、購入から送金まで一つの口座で完結します。口座開設と維持の費用はかからず、取扱銘柄や手数料体系は公式サイトで確認できます。

口座開設の手順を見る(無料) →PR・GMOコイン(GMOコイン株式会社)。手数料や取扱銘柄は変更されることがあるため、最新の内容は公式サイトでご確認ください。暗号資産は価格変動が大きく、投資判断はご自身の責任でお願いします。

仕組みまで踏み込むなら、章立てされた1冊が早いことがあります

この記事は要点を絞って書いていますが、暗号技術やコンセンサスの前提から順に追いたい場合は、体系立った書籍のほうが理解が早く済みます。この分野は版によって扱う範囲が変わるので、目次と発行年を確認してから選んでください。

Amazonで関連書籍を見る →PR・Amazonアソシエイト。価格や在庫は変動します。

2. Nethermind(実行クライアント)のインストール

2-1. Nethermindのダウンロードとインストール

Nethermindの最新リリースをGitHubからダウンロードします。バージョン番号は公式リポジトリで最新版を確認してください。

cd /tmp
wget https://github.com/NethermindEth/nethermind/releases/latest/download/nethermind-linux-x64.zip
sudo unzip nethermind-linux-x64.zip -d /usr/local/bin/nethermind
sudo chmod +x /usr/local/bin/nethermind/nethermind

データディレクトリを作成し、適切な権限を設定します。

sudo mkdir -p /var/lib/nethermind
sudo chown ethereum:ethereum /var/lib/nethermind

2-2. JWT秘密鍵の生成

実行クライアントとコンセンサスクライアント間の通信(Engine API)にはJWT認証が必要です。共有のJWT秘密鍵を生成します。

sudo mkdir -p /var/lib/ethereum
openssl rand -hex 32 | sudo tee /var/lib/ethereum/jwtsecret > /dev/null
sudo chmod 640 /var/lib/ethereum/jwtsecret
sudo chown ethereum:ethereum /var/lib/ethereum/jwtsecret

3. Nethermindのsystemdサービス設定

3-1. systemdユニットファイルの作成

Nethermindを自動起動するためのsystemdサービスを設定します。以下の内容でサービスファイルを作成します。

sudo nano /etc/systemd/system/nethermind.service

ファイルに以下の内容を記載します。

[Unit]
Description=Nethermind Execution Client
After=network-online.target
Wants=network-online.target

[Service]
User=ethereum
Group=ethereum
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/nethermind/nethermind   --config mainnet   --datadir /var/lib/nethermind   --JsonRpc.Enabled true   --JsonRpc.Host 127.0.0.1   --JsonRpc.Port 8545   --JsonRpc.JwtSecretFile /var/lib/ethereum/jwtsecret   --JsonRpc.EngineHost 127.0.0.1   --JsonRpc.EnginePort 8551

[Install]
WantedBy=multi-user.target

3-2. サービスの起動と同期状況の確認

サービスを有効化して起動します。

sudo systemctl daemon-reload
sudo systemctl enable nethermind
sudo systemctl start nethermind

ログを確認して正常に起動しているか確認します。

sudo journalctl -fu nethermind

初回起動時はブロックチェーンデータの同期に数時間〜数日かかります。同期が完了するまでコンセンサスクライアントの設定を進めながら待機します。

4. Lighthouse(コンセンサスクライアント)のインストール

4-1. Lighthouseのダウンロードとインストール

Lighthouseの最新リリースをGitHubからダウンロードします。

cd /tmp
wget https://github.com/sigp/lighthouse/releases/latest/download/lighthouse-v5.x.x-x86_64-unknown-linux-gnu.tar.gz
tar xvf lighthouse-*.tar.gz
sudo mv lighthouse /usr/local/bin/
sudo chmod +x /usr/local/bin/lighthouse

バージョンを確認します。

lighthouse --version

ビーコンノードのデータディレクトリを作成します。

sudo mkdir -p /var/lib/lighthouse/beacon
sudo chown -R ethereum:ethereum /var/lib/lighthouse

4-2. Lighthouseビーコンノードのsystemdサービス設定

ビーコンノード用のsystemdサービスを設定します。

sudo nano /etc/systemd/system/lighthousebeacon.service

ファイルに以下の内容を記載します。

[Unit]
Description=Lighthouse Beacon Node
After=network-online.target nethermind.service
Wants=network-online.target

[Service]
User=ethereum
Group=ethereum
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/lighthouse beacon_node   --network mainnet   --datadir /var/lib/lighthouse/beacon   --execution-endpoint http://127.0.0.1:8551   --execution-jwt /var/lib/ethereum/jwtsecret   --checkpoint-sync-url https://mainnet.checkpoint.sigp.io   --http

[Install]
WantedBy=multi-user.target

--checkpoint-sync-url を指定することで、ジェネシスからではなく最近のチェックポイントから高速同期が可能です。

5. バリデータクライアントの設定

5-1. バリデータキーのインポート

事前に生成しておいたバリデータキーストアファイルをインポートします。keystoreファイルをマシンに転送してから以下のコマンドを実行します。

sudo -u ethereum lighthouse account validator import   --network mainnet   --datadir /var/lib/lighthouse   --directory /path/to/your/keystores

コマンド実行中にキーストアのパスワード入力が求められます。staking-deposit-cli実行時に設定したパスワードを入力してください。

5-2. バリデータクライアントのsystemdサービス設定

バリデータクライアント用のsystemdサービスを設定します。

sudo nano /etc/systemd/system/lighthousevalidator.service

ファイルに以下の内容を記載します。

[Unit]
Description=Lighthouse Validator Client
After=network-online.target lighthousebeacon.service
Wants=network-online.target

[Service]
User=ethereum
Group=ethereum
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/lighthouse validator_client   --network mainnet   --datadir /var/lib/lighthouse   --beacon-nodes http://127.0.0.1:5052   --graffiti "your-graffiti"

[Install]
WantedBy=multi-user.target

--graffiti はブロック提案時にブロックに記録される任意のテキストです(最大32バイト)。

6. サービスの起動と動作確認

6-1. すべてのサービスを起動する順序

サービスは実行クライアント → ビーコンノード → バリデータクライアントの順に起動することが推奨されます。

sudo systemctl daemon-reload
sudo systemctl enable lighthousebeacon lighthousevalidator
sudo systemctl start lighthousebeacon
sudo systemctl start lighthousevalidator

各サービスのステータスを確認します。

sudo systemctl status nethermind lighthousebeacon lighthousevalidator

6-2. ログの確認と同期状況の把握

各サービスのログをリアルタイムで確認するには journalctl -fu コマンドを使います。

sudo journalctl -fu lighthousebeacon
sudo journalctl -fu lighthousevalidator

ビーコンノードのログに INFO Synced と表示され、スロットが最新のものに追いついたらビーコンノードの同期完了です。バリデータクライアントのログに INFO Successfully published attestation が表示されるとアテステーションが成功しています。

7. トラブルシューティングとメンテナンス

7-1. よくある問題と対処法

バリデータ設定でよく遭遇する問題と対処法を紹介します。

「エンジンAPI接続エラー」が発生する場合は、JWT秘密鍵のパスが正しいか、Nethermindが起動して8551ポートでリッスンしているかを確認します。ポートが開いているかどうかは ss -tlnp | grep 8551 で確認できます。

「同期が進まない」場合は、ピア数が十分か確認します。ファイアウォールでP2Pポートが正しく開放されているか、ルーターのポート転送設定が必要でないかを確認してください。

7-2. 定期的なメンテナンス作業

クライアントのバージョンアップは重要なメンテナンス作業です。イーサリアムネットワークのアップグレード(ハードフォーク)に合わせてクライアントを更新しないと、チェーンから外れてしまう可能性があります。

GitHubのリリースページを定期的に確認し、重要なアップデートがリリースされた場合は速やかに適用することが推奨されます。なお、クライアントのアップデート時にはサービスを一時停止する必要があるため、アップデート作業は計画的に行うことが重要です。

まとめ

LighthouseとNethermindを組み合わせたバリデータノードのセットアップは、適切な手順に従えば比較的スムーズに実現できます。特にJWT認証の設定、ファイアウォールの適切な設定、そしてsystemdによる自動起動設定が重要なポイントです。

初回設定後は、ログを定期的に確認し、アテステーションの成功率を監視することでバリデータの健全な運用を維持してください。

よくある質問

Q1. 同期にどのくらい時間がかかりますか?

チェックポイント同期(--checkpoint-sync-url 指定)を使用すると、ビーコンノードの同期は数分〜数十分で完了します。実行クライアント(Nethermind)のスナップ同期は数時間〜数日かかる場合があります。ストレージの速度とネットワーク帯域幅によって大きく変わります。

Q2. バリデータクライアントをアップデートする際に注意することはありますか?

バリデータクライアントをアップデートする際は、必ずサービスを停止してからバイナリを置き換え、再起動する手順を踏んでください。複数のバリデータクライアントを同時に起動しないよう細心の注意が必要です。二重起動はダブルボーティングによるスラッシングリスクに直結します。

Q3. Graffitiはどのように設定すればよいですか?

Graffitiは --graffiti オプションで任意のテキストを設定できます。最大32バイトのテキストが記録されます。日本語を使用する場合は文字コードによってバイト数が増えるため、短い文字列に留めることをお勧めします。空のままでも運用上の問題はありません。

※本記事は情報提供を目的としており、投資を推奨するものではありません。暗号資産への投資は元本割れのリスクがあります。投資判断はご自身の責任で行ってください。

この記事について

執筆・編集:Bitcoin Analyze 編集部

金融庁・国税庁および各事業者の公式資料にあたり、基準日と定義を固定したうえで記事を作成しています。価格予測や利益保証は扱いません。事業者の条件は変更されるため、最終的な判断は公式情報をご確認ください。

主な参照先

Bitcoin Analyze 編集部

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。

Amazonのアソシエイトとして、Bitcoin Analyzeは適格販売により収入を得ています。