15
Help us understand the problem. What are the problem?

posted at

updated at

さくらのVPSでNEM Symbol のテストネットノード構築

  • 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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
15
Help us understand the problem. What are the problem?