- 2021/08/23 bootstrap v1.0.7 で手順確認。
- 2021/03/17 メインネットがローンチ。bootstrap v1.0.0 が公開されたのでメインネットノードとしての構築手順を確認。
最新技術情報
NEM Symbol のテストノード参加者がまだまだ足りないらしい。
で、さくらインターネットのVPSサービスでテストノード構築記事があったらいいなと思いました。
ので、他のブログを参考に、さくらのVPSで、NEM Symbol のテストネットノードを起動させてみました。
さくらインターネットでは、2週間のお試し期間があるので、気軽に構築してみましょう。
そしてできるのであればメインネットローンチ後の常時運用へとコマを進めましょう。
公式ページ(一次情報はよく読むこと)
https://docs.symbolplatform.com/ja/guides/network/using-symbol-bootstrap.html
公式ページの推奨スペック
https://docs.symbolplatform.com/ja/guides/network/running-a-test-net-node.html
さくらでのプラン
https://secure.sakura.ad.jp/order/vps/
- CPU: 8cores
- メモリ: 16GB
- ディスク: SSD 1600GB
あたりを選択してみました。
クレカで決済後のOSインストール時には
- スタートアップスクリプトを利用しない、を選択。
- パケットフィルタ ポート22番を削除(お好みで)。7900番と3000番は解放。
- 公開鍵の登録は、登録しないを選択。
ID: ubuntu
PW: 長めで記号入りのパスワードを用意
サーバー起動後
$ sudo su -
[sudo] password for ubuntu:
最新化
# apt update -y
# apt upgrade -y
Node.js をインストール(バージョンは 12 以上)
# apt install -y curl
# curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
# apt install -y nodejs
# node -v
v14.17.5
npmを最新版にアップデート
# npm install -g npm@latest
# npm -v
7.21.0
Symbol Bootstrap をインストール
リリース情報を確認
https://github.com/nemtech/symbol-bootstrap/releases
# npm install -g symbol-bootstrap@1.0.7 # バージョンを指定する場合
# npm install -g symbol-bootstrap@alpha # 最新のalphaバージョンを入れたい場合
# symbol-bootstrap -v
symbol-bootstrap/1.0.7 linux-x64 node-v14.17.5
docker のインストール
# apt install -y apt-transport-https ca-certificates gnupg-agent software-properties-common
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
# apt-key fingerprint 0EBFCD88
# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# apt install -y docker-ce docker-ce-cli containerd.io
# docker -v
Docker version 20.10.8, build 3967b7d
docker-compose のインストール
最新バージョンを確認(バージョン値を書き換えてください)
# curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
# docker-compose -v
docker-compose version 1.29.2, build 5becea4c
v0.3.2 からエラーが出るようになりました。
docker を root ユーザーではなく一般ユーザーで操作できるようにします。
ubuntu ユーザーを docker グループに入れ、を docker サービスを再起動します。
# usermod -aG docker ubuntu
# systemctl restart docker.service
# exit
$ exit
再度、ログインします。
設定ファイルの生成
なお同期したブロックチェーンのデータがtarget配下に保存される。
$ cd ~/
$ mkdir -p ~/symbol-bootstrap/target
$ cd ~/symbol-bootstrap
設定ファイルの作成(やらなくてもOK。ランダム文字列になり、ノードリストのNameに表示されます)
テストネット https://symbolnodes.org/nodes_testnet/
メインネット https://symbolnodes.org/nodes/
$ vi my-preset.yml
----
nodes:
-
host: <あなたのホスト名>
friendlyName: <好きな文字列>
maxUnlockedAccounts: 10 # ←委託可能数、スペック次第
beneficiaryAddress: <ハーベスト手数料の送付先ウォレットアドレス>
----
建てたいノードタイプによってコマンドが変わります。
https://docs.symbolplatform.com/ja/guides/network/running-a-symbol-node.html
$ symbol-bootstrap config -p mainnet -a dual # メインネットの場合
$ symbol-bootstrap config -p testnet -a dual # テストネットの場合
$ symbol-bootstrap config -p testnet -a dual -c my-preset.yml # 個別設定を読み込ませる場合
秘密鍵を扱うファイル操作するときのためのをパスワードを設定します。
? Enter password to use to encrypt and decrypt custom presets, addresses.yml, and preset. yml files. When providing a password, private keys will be encrypted. Keep this password in a secure place!
friendlyName 等が、自分のプリセット設定が読み込まれているか確認します。
$ less target/nodes/node/server-config/resources/config-node.properties
生成された秘密鍵、公開アドレス等を確認します。
なお、秘密鍵が伏字になっていますので、確認したい場合は手順を他記事を検索で探してください。
$ less target/addresses.yml
コンテナの起動と停止
$ symbol-bootstrap start --detached # 一回目だけ
$ symbol-bootstrap stop # 停止
$ symbol-bootstrap run --detached # 二回目から
コンテナの起動状態を確認します。
$ symbol-bootstrap healthCheck
APIゲートウェイの疎通をまずはローカルで確認します。
$ curl http://localhost:3000/node/info
{"version":16777216,"publicKey":"94E0D813F2EAB23557472C7181E86D57F99D3DFFDB62D5C5705BCB9EA3A39E8E","networkGenerationHashSeed":"57F7DA205008026C776CB6AED843393F04CD458E0AA2D9F1D5F31A402072B2D6","roles":3,"port":7900,"networkIdentifier":104,"host":"","friendlyName":"94E0D81","nodePublicKey":"DA35A040FAF90A7BF6C6109317AD8F95B377A30A2AF0363F6702D1CDF04C915C"}
以下のコマンドを何回か叩いて、チェーン高 (height) が高くなっていけばブロックチェーンの同期はOK
$ curl http://localhost:3000/chain/info
{"height":"741","scoreHigh":"0","scoreLow":"9934755933726872","latestFinalizedBlock":{"finalizationEpoch":1,"finalizationPoint":1,"height":"1","hash":"BEED005B82B22FC32DA6FDF4DFEB7C11BA6A8C5C504EB7B9CCF91B9B2A09E020"}}
↓
{"scoreHigh":"0","scoreLow":"7341013067143532","height":"361","latestFinalizedBlock":{"finalizationEpoch":1,"finalizationPoint":1,"height":"1","hash":"C87844DF76236C690D37266F298B7A5A19A9B588913F8A6FD34138B92EF5FD88"}}
ローカルでアクセス可能なら、VPSで払い出されたIPアドレスでも叩いてみましょう。
$ curl http://{払い出されたIPアドレス}:3000/chain/info
{"scoreHigh":"0","scoreLow":"167633496728810663","height":"10837","latestFinalizedBlock":{"finalizationEpoch":9,"finalizationPoint":45,"height":"5760","hash":"44CA32FC58B565A9C39156C7E28F979EB8B80F933A82D6B4454CFF5583BFD548"}}
大丈夫なようですね。
ノードも建てたし次はハーベストだ、と思ったあなたは NEM Symbol テストノード構築で GoTo 大家 編 に進んでください。
参考URL
Symbol node 構築に関する雑感
https://note.com/ooba8686/m/m6c64b6857010/hashtag/291660
【ローンチ直前版】Symbolテストネットノードで自前でハーベスティング
https://nemlog.nem.social/blog/57098
Symbolテストネットノードを建ててみた (v0.10.x Hippo on Ubuntu Server 18.04)
https://nemlog.nem.social/blog/49345