Nethermindは.NETで構築されたイーサリアムの実行クライアントです。
初期設定
- バイナリのインストールに必要なパッケージをインストールする。
sudo apt install -y unzip curl libsnappy-dev libc6-dev libc6
- Nethermindの公式GitHubを開き、最新リリースをダウンロードする。
cd ~
curl -LO https://github.com/NethermindEth/nethermind/releases/download/1.XX.0/nethermind-1.XX.0-XXXXXXXX-linux-x64.zip
- 解凍して
/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
- 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
- サーバー起動時にNethermindが自動的に開始されるためのserviceファイルを作成する。
sudo nano /etc/systemd/system/nethermind.service
- 以下を入力し、保存する。(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 \
--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です。
- daemonをリロードし、Nethermindがちゃんと動くか確認する。今後上記のserviceファイルに変更を加えることがあれば、毎回daemonをリロードして変更を適応するようにしてください。
(active (running)
と緑で表示されれば OK、Q で閉じる)
sudo systemctl daemon-reload
sudo systemctl start nethermind
sudo systemctl status nethermind
- サーバー起動時にNethermindが自動的に開始されるようにする。
sudo systemctl enable nethermind
- ログで同期状態を確認する。(Ctrl + Cで閉じる)
sudo journalctl -fu nethermind
※ビーコンノードが設定されていないと同期は開始しません。
※パソコンのスペックによりますが、全てのデータがダウンロードされ、同期が完了するまで12時間程度かかります。ログにOld Headers
やOld Receipts
が表示されなくなれば同期完了です。
アップデート方法
- サーバーのバージョンと公式GitHubのバージョンを確認し、アップデートの必要があるか確認する。
/usr/local/bin/nethermind/nethermind --version
- 最新リリースをダウンロードする。
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
- 実行中の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
- バージョンがアップデートされていることを確認し、Nethermindを再起動する。
/usr/local/bin/nethermind/nethermind --version
sudo systemctl start nethermind
- Nethermindが正常に動いていることを確認する。
sudo journalctl -fu nethermind