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"に変更
![無題2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/582454/eb52979d-2c9f-958d-fa6d-ca1f2de73179.png)


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"に変更
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/582454/a5ad235b-2dfe-7432-0d2a-23e2ae304b4f.png)


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

ｺﾋﾟﾍﾟする際の注意
![無題1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/582454/ed017e09-c760-defd-fb84-fd81da68f423.png)