Symbol Testnet node 構築備忘録


※注意 2020/10/29 現在の symbol-bootstrap での構築方法とは異なっています

これは

https://billing.time4vps.com

借りたサーバーで

テストネットノードを構築した際の 備忘録である

この構築にあたっては

mikun氏
https://twitter.com/mikunNEM

の協力無くしては

成し得ませんでした 今一度 感謝の意を表します

☕☕☕セキュリティー編☕☕☕☕☕☕☕☕☕☕☕

ここでは 例として
usernameを "pasomi"
sshdportを "20023"
として 作業を進めます

rootでログイン

新しいuser作成

adduser pasomi(任意の名前)

新しいuserにsudo権限付与

gpasswd -a pasomi sudo

sshポート変更とrootログイン禁止

vim /etc/ssh/sshd_config

"i"で編集を開始

接続Poetの変更
"#Port 22"を"Port 20023"(任意の数字)に変更
※先頭の"#"は消す事 "#"があると 反映しません

rootログインを禁止
"PermitRootLogin yes"を"PermitRootLogin no"に変更

ESC keyで編集を終了

":wq"で保存して終了
※間違った時は":q!"で保存せず終了

設定変更を反映させる

systemctl restart sshd

※rebootの方がいいかも

これより後は変更したsshポートでないとログイン不可
rootでのログインも不可

port20023でpasomiにログイン

☕☕☕dockerインストール編☕☕☕☕☕☕☕☕☕

(参考サイト https://qiita.com/youtangai/items/ff67ceff5497a0e0b1af)

dockerがインストールのシェルスクリプトを用意しているので,それを実行します

curl https://get.docker.com | sh

デフォルトだと,sudoなしではdockerを実行できません.
ユーザをdockerグループに追加すると,sudoなしでdockerコマンドを実行できるので追加します.

sudo usermod -aG docker pasomi

その後,ユーザ情報を更新するために再起動します.

sudo reboot

ターミナルが消える(再起動が掛かる)
ターミナル再起動

pasomiでログイン

dockerを起動し,常時起動するようにします

sudo systemctl start docker
sudo systemctl enable docker

dockerが正常にインストールできたか確認します

docker --version

ここでは"Docker version 19.03.5, build 633a0ea838"と出れば完了

☕☕☕docker-composeインストール編☕☕☕☕☕☕

(参考サイトhttps://qiita.com/youtangai/items/ff67ceff5497a0e0b1af)

↓でdocker-composeの最新のバージョンを確認しましょう(メモしてください)
https://github.com/docker/compose/releases

ここでは"1.25.4"と出る

docker-composeをインストール

sudo curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

("1.25.4"は確認したバージョンを入力する)

docker-composeコマンドを実行できるように,実行権限を与えます

sudo chmod +x /usr/local/bin/docker-compose

docker-composeが正常にインストールできたか確認します

docker-compose --version

ここでは"docker-compose version 1.25.4, build 8d51620a"と出る

☕☕☕bootstrapのダウンロード☕☕☕☕☕☕☕☕

Gitをインストール--------------
(参考サイト https://qiita.com/tommy_g/items/771ac45b89b02e8a5d64)

Gitをインストール

sudo apt-get install git

以下のコマンドを叩き、バージョンが表示されていればOK

git --version

以下のコマンドを叩き、初期設定を行う

git config --global user.name pasomi
git config --global user.email pasomi

☕☕☕ufw(FireWall)のインストールと設定☕☕☕☕☕

(参考サイト https://qiita.com/_takeuchi_/items/2a1ee9b53c6a863bf844)

ufwをインストール

sudo apt-get install ufw

SSHで使用しているポート以外を閉じる

sudo ufw allow 20023/tcp(前に設定したsshポート)

設定を反映させる

sudo ufw enable

FireWall設定の確認

sudo ufw status

※ 2020/09/21修正
/symbol-testnet-bootstrap/api-harvest-assembly/docker-compose.yaml に記述されている為
7900/7902/3000 のportは
ufw 設定で開ける必要はありません

bootstrapをインストール

git clone https://github.com/nemfoundation/symbol-testnet-bootstrap.git

bootstrap起動の為にディレクトリに移動

cd symbol-testnet-bootstrap/api-harvest-assembly

(又は"cd symbol-testnet-bootstrap/peer-assembly")

IPとフレンドリネームの設定ファイルを編集する

vim api-node/userconfig/resources/config-node.properties.template

[localnode]の下にある
"host ="を"host = 176.223.130.232"に変更(自分のIP)

"friendlyName = FRIENDLY_NAME"を "PASOMI! from @dusanjp"に変更

docker-composeを実行する

sudo docker-compose up --build --detach

dockerを停止する時は

sudo docker-compose down

☕☕☕更新の方法 例①☕☕☕☕☕☕☕☕☕☕☕

Bootstrapのアップデートがあった時は、

サーバにlogin後
"api-harvest-assembly"ディレクトリへ移動

cd symbol-testnet-bootstrap/api-harvest-assembly

Bootstrapを停止してから、

sudo docker-compose down

※ここでdockerのキャッシュを削除するといいかも

sudo docker system prune -a

"symbol-testnet-bootstrap"の直上のディレクトリまで移動

cd

"symbol-testnet-bootstrap"を全て削除して、※これ結構時間かかる場合あるからあわてないでね

sudo rm -rf symbol-testnet-bootstrap

新しいBootstrapをダウンロードして、やり直してみてください👍

git clone https://github.com/nemfoundation/symbol-testnet-bootstrap.git

"api-harvest-assembly"ディレクトリへ移動

cd symbol-testnet-bootstrap/api-harvest-assembly

IPとフレンドリネームの設定ファイルを編集する

vi api-node/userconfig/resources/config-node.properties.template

docker-composeを実行する

sudo docker-compose up --build --detach

☕☕☕更新の方法 例②☕☕☕☕☕☕☕☕☕☕☕

更新の確認 https://github.com/nemfoundation/symbol-testnet-bootstrapで確認

"api-harvest-assembly"ディレクトリへ移動

cd symbol-testnet-bootstrap/api-harvest-assembly

api-harvest-assemblyを停止

sudo docker-compose down

上のディレクトリ"symbol-testnet-bootstrap"へ移動

cd ../

bootstrapを更新

git pull

ディレクトリ"api-harvest-assembly"へ移動

cd api-harvest-assembly

api-harvest-assemblyを開始

sudo docker-compose up -d

☕☕☕☕☕☕☕☕☕☕☕☕☕☕☕☕☕☕☕☕

再立ち上げに失敗した時は

一旦 サーバーを再起動

sudo reboot

firewallを起動

sudo ufw enable

ディレクトリ移動

cd symbol-testnet-bootstrap/api-harvest-assembly

ブートストラップ起動

docker-compose up -d

これで行けます

こちらも参考にしてね
"Symbolのテストネットのノードを新しいノード構築ツールで立て直した際に発生したトラブルとその対処方法"
https://qiita.com/salaryman-toushi/items/1333c454d75f303460fe

https化については
ココを参考にすると良い
https://nemlog.nem.social/blog/31033

コピペする際の注意