コンテンツへスキップ

Nethermind(実行クライアント)

Nethermindは.NETで構築されたイーサリアムの実行クライアントです。

初期設定

  1. バイナリのインストールに必要なパッケージをインストールする。
sudo apt install -y unzip curl libsnappy-dev libc6-dev libc6
  1. Nethermindの公式GitHubを開き、最新リリースをダウンロードする。
cd ~

curl -LO https://github.com/NethermindEth/nethermind/releases/download/1.XX.0/nethermind-1.XX.0-XXXXXXXX-linux-x64.zip
  1. 解凍して/usr/local/binにコピーし、不要になったファイルを削除する。
unzip nethermind-1.XX.0-XXXXXXXX-linux-x64.zip -d nethermind

sudo cp -a nethermind /usr/local/bin/nethermind

rm nethermind-1.XX.X-XXXXXXXX-linux-x64.zip

rm -r nethermind
  1. Nethermind実行用のユーザーnethermindを作成し、ディレクトリ権限を与える。
sudo useradd --no-create-home --shell /bin/false nethermind

sudo mkdir -p /var/lib/nethermind

sudo chown -R nethermind:nethermind /var/lib/nethermind
  1. サーバー起動時にNethermindが自動的に開始されるためのserviceファイルを作成する。
sudo nano /etc/systemd/system/nethermind.service
  1. 以下を入力し、保存する。(Ctrl + O で保存、Ctrl + X で閉じる)
[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.Runner \
  --config mainnet \
  --datadir /var/lib/nethermind \
  --Sync.SnapSync true \
  --Sync.AncientBodiesBarrier 11052984 \
  --Sync.AncientReceiptsBarrier 11052984 \
  --JsonRpc.JwtSecretFile /var/lib/jwtsecret/jwt.hex

[Install]
WantedBy=default.target

--Sync.SnapSync trueで高速同期が可能なsnap syncを有効化しています。

--sync.AncientBodiesBarrier--sync.AncientReceiptsBarrierで最低限どのブロックまで同期するか指定しています。11052984はビーコンチェーンが開始したブロックです。

--Network.ActivePeersMaxCount 25を追加すると、通信先のノード数を減らして通信量を抑えることができます。標準は100です。

--Pruning.CacheMb 4096 --Pruning.PersistenceInterval 16384を追加すると、メモリの使用量を上げることでSSDに書き込まれるチェーンデータの増加速度を抑えることができます。標準は1024と8192です。

  1. daemonをリロードし、Nethermindがちゃんと動くか確認する。今後上記のserviceファイルに変更を加えることがあれば、毎回daemonをリロードして変更を適応するようにしてください。
    active (running)と緑で表示されれば OK、Q で閉じる)
sudo systemctl daemon-reload

sudo systemctl start nethermind

sudo systemctl status nethermind
  1. サーバー起動時にNethermindが自動的に開始されるようにする。
sudo systemctl enable nethermind
  1. ログで同期状態を確認する。(Ctrl + Cで閉じる)
sudo journalctl -fu nethermind

※ビーコンノードが設定されていないと同期は開始しません。

※パソコンのスペックによりますが、全てのデータがダウンロードされ、同期が完了するまで12時間程度かかります。ログにOld HeadersOld Receiptsが表示されなくなれば同期完了です。

アップデート方法

  1. サーバーのバージョンと公式GitHubのバージョンを確認し、アップデートの必要があるか確認する。
/usr/local/bin/nethermind/Nethermind.Runner --version
  1. 最新リリースをダウンロードする。
cd ~

curl -LO https://github.com/NethermindEth/nethermind/releases/download/1.XX.0/nethermind-1.XX.0-XXXXXXXX-linux-x64.zip

unzip nethermind-1.XX.0-XXXXXXXX-linux-x64.zip -d nethermind
  1. 実行中のNethermindを止め、古いバージョンを削除し、最新のバージョンを/usr/local/binにコピーする。
sudo systemctl stop nethermind

sudo rm -r /usr/local/bin/nethermind

sudo cp -a nethermind /usr/local/bin/nethermind

rm nethermind-1.XX.X-XXXXXXXX-linux-x64.zip

rm -r nethermind
  1. バージョンがアップデートされていることを確認し、Nethermindを再起動する。
/usr/local/bin/nethermind/Nethermind.Runner --version

sudo systemctl start nethermind
  1. Nethermindが正常に動いていることを確認する。
sudo journalctl -fu nethermind