必要な Java のインストール
sudo apt install openjdk-11-jre-headless
NIS1 クライアントの準備
自分でビルド
ビルドすることに特に意味はないと思います。変態向け。
ビルド済をダウンロード
NIS1 クライアントのビルド済みバージョンをダウンロードするには、以下のリンクを参照して最新のバージョンを確認します。
2024/11/11 時点の最新はv0.6.101
。
curl -OL https://bob.nem.ninja/nis-0.6.101.tgz
展開します。
tar -xzvf nis-0.6.101.tgz
rm nis-0.6.101.tgz
展開されたpackage
ディレクトリを任意の場所に配置します。
NIS1 の設定
配置想定場所
/opt
に配置する事を想定しています。
sudo mv package /opt/nis1
cd /opt/nis1
コンフィグファイルの作成と編集
config-user.properties
を新規に作成して編集します。
vi nis/config-user.properties
-
nem.folder
: ブロックデータ保存ディレクトリ(デフォルトは~/nem
) -
nem.host
: ドメインを取っていない場合は IP アドレス -
nis.bootName
: ノードの名前(お好きな名前をどうぞ) -
nis.unlockedLimit
: ハーベストを受け入れる人数の上限値(デフォルトは 4、10 程度がよい) -
nis.ipDetectionMode
: ホストにドメインを設定している場合に IP アドレスになるのを防止
# ブロックデータ保存ディレクトリ
nem.folder = /opt/nis1
# ホスト名
nem.host = xxxx.xxxxxxxx.com
# ブート名(ノードの名前です)
nis.bootName = MyNode
# ハーベストを受け入れる人数の上限値
nis.unlockedLimit = 10
# HOSTがIPにならないようにする
nis.ipDetectionMode = Disabled
NIS1 ノードの起動確認
一旦、確認のため起動します。
起動
sh nix.runNis.sh
ポート開放
sudo ufw allow 7890
sudo ufw allow 7778
確認
ノードの状態を確認。
curl -s http://127.0.0.1:7890/heartbeat | jq
ノードの基本情報を確認
curl -s http://127.0.0.1:7890/node/info | jq
ブロック高を確認
curl -s http://127.0.0.1:7890/chain/height | jq
停止
curl -s http://127.0.0.1:7890/shutdown
サービス化(デーモン化)
sudo vi /etc/systemd/system/nis1.service
[Unit]
Description=NIS1 Client
After=network.target
[Service]
ExecStart=/usr/bin/java -Xms4G -Xmx8G -XX:+UseG1GC -cp ".:./*:../libs/*" org.nem.deploy.CommonStarter
ExecStop=/usr/bin/curl -s http://127.0.0.1:7890/shutdown
Restart=on-failure
RestartSec=2
User=harvestasya
Group=harvestasya
StandardOutput=journal
StandardError=journal
WorkingDirectory=/opt/nis1/nis
SuccessExitStatus=143
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
-Xms4G
と-Xmx8G
はマシンスペックに合わせて変更してください。マシンメモリ容量の 1/3 ~ 1/2 くらいが良いかなと思います。
サービスをリロード
ユニットファイルを編集した後、systemd に変更をリロードする必要があります。
sudo systemctl daemon-reload
サービスを有効化
サービスを有効化して、システム起動時に自動的に起動するように設定します。
sudo systemctl enable nis1
サービスを開始
サービスを開始します。
sudo systemctl start nis1
サービスを停止
サービスを停止します。メンテ等で止める場合に使用します。
sudo systemctl stop nis1
ログの確認
nis1 サービスのみを参照します。最新から参照できるよう-r
オプションを付けます。
sudo journalctl -u nis1 -r
リアルタイムで確認したい場合は-f
オプションを付けます。
sudo journalctl -u nis1 -f
さらに色を付けたい場合は、-o cat
オプションを付けます。これにより、ログが色付きで表示され、読みやすくなります。
sudo journalctl -u nis1 -f -o cat
関連記事