LoginSignup
20
13

More than 1 year has passed since last update.

[Symbol] XYM未保有でもノード構築で収穫祭

Last updated at Posted at 2021-04-12

概要

  • 0XYMでもSymbolノード構築・運用でハーベスティング報酬(手数料)を貰うための構築手順を残します。
  • 本記事は、ubuntu 20.04、symbol-bootstrap v1.0.3で確認しています。
  • 委任してもいいよという方は「symbol-node.takagi-tech.com」まで
  • 投げXYMは「NDLS6GYOIPHATATNAVVOUNJXBD6X4BXU6IRBHIY」まで

事前準備

まずは最新の公式情報に目を通しましょう。

サイト 備考
https://symbolnodes.org/ 全ての情報源
http://explorer.symbolblockchain.io/ アカウントやトランザクションの確認に便利
https://docs.symbolplatform.com/ja/ 公式ドキュメント
https://github.com/nemtech/symbol-bootstrap symbol-bootstrapのgithub

サーバの準備

今回はAWSでサーバを構築します。推奨スペックは、
「CPU: 8core、メモリ: 32GB、容量: 750GB、Diskスピード: 1500 IOPS SSD
とのことなので、EC2インスタンスは
t3a.2xlarge (CPU: 8core, メモリ: 32GiB, EBS[gp2]: 768GiB)」
にしました。
AMI:ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-20210223
SecurityGroup:TCP3000,7900port0.0.0.0/0で公開(お好みでssh用なども追加してください)
これで推奨スペック基準のubuntuサーバを用意できました。

環境構築

symbol-bootstrapを動作させるには、「Node, Docker, Docker Compose」がインストールされている必要があります。
下記手順でインストールしました。

既存パッケージ最新化

# sudo su -
# apt update -y
# apt upgrade -y

引き続きrootユーザのままで、
Nodeのインストール

# curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
# apt install -y nodejs
# node -v
v14.16.1

npmを最新版にアップデート

# npm install -g npm@latest
# npm -v
7.9.0

symbol-bootstrapのインストール
(4/12時点の最新バージョンはv1.0.3)

# npm install -g symbol-bootstrap@1.0.3
# symbol-bootstrap -v
symbol-bootstrap/1.0.3 linux-x64 node-v14.16.1

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.5, build 55c4c88

docker composeのインストール

# curl -L https://github.com/docker/compose/releases/download/1.27.4/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.27.4, build 40524192

dockerをrootユーザーではなく一般ユーザーで操作できるようにします。
ubuntuユーザーをdockerグループに入れ、dockerサービスを再起動します。
ここまでがrootユーザでの作業です。

# usermod -g docker ubuntu
# /bin/systemctl restart docker.service
# exit
$ exit

symbol-bootstrapの導入・起動

ここからは一般ユーザ(ubuntuユーザ)で行います。
まず、データが保存されていくディレクトリの作成と、設定ファイルの作成を行います。

$ cd ~/
$ mkdir -p ~/symbol-bootstrap/target
$ cd ~/symbol-bootstrap
$ vi my-preset.yml
-----
nodes:
        - friendlyName: Ninja Hi-performance Symbol-Node
          maxUnlockedAccounts: 64
          beneficiaryAddress: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-----

推奨スペックとはいえ、現状そこそこリッチな環境なので、「maxUnlockedAccounts10(default) -> 64」へ引き上げます。
手数料が送られる、beneficiaryAddressは自分のウォレットアドレスを間違えないように入力します。
このウォレットアドレスの残高は0XYMでも問題ありません。
(ここが本記事の趣旨である0XYMでハーベスティングのキモです)

上記の設定で初期化します。
(下記コマンド実行時に、秘密鍵を扱うファイル操作用パスワードも設定します。)

$ symbol-bootstrap config -p mainnet -a dual -c my-preset.yml

念のため、設定通りになっているかを確認します。

$ less target/nodes/node/server-config/resources/config-node.properties
-----
[localnode]
host =
friendlyName = Ninja Hi-performance symbol node
version = 1.0.0.0
roles = Peer,Api
-----

大丈夫なことが確認できたので、起動します。

$ symbol-bootstrap start --detached

起動確認

$ symbol-bootstrap healthCheck
                         _             _         _                    _         _
  ___  _   _  _ __ ___  | |__    ___  | |       | |__    ___    ___  | |_  ___ | |_  _ __  __ _  _ __
 / __|| | | || '_ ` _ \ | '_ \  / _ \ | | _____ | '_ \  / _ \  / _ \ | __|/ __|| __|| '__|/ _` || '_ \
 \__ \| |_| || | | | | || |_) || (_) || ||_____|| |_) || (_) || (_) || |_ \__ \| |_ | |  | (_| || |_) |
 |___/ \__, ||_| |_| |_||_.__/  \___/ |_|       |_.__/  \___/  \___/  \__||___/ \__||_|   \__,_|| .__/
       |___/                                                                                    |_|
2021-04-12T13:44:42.140Z info     Container db is running
2021-04-12T13:44:42.141Z info     Container node is running
2021-04-12T13:44:42.146Z info     Container broker is running
2021-04-12T13:44:42.146Z info     Container rest-gateway is running
2021-04-12T13:44:42.149Z info     Container node port 7900 -> 7900 is open
2021-04-12T13:44:42.149Z info     Container rest-gateway port 3000 -> 3000 is open
2021-04-12T13:44:42.157Z info     Testing http://localhost:3000/node/health
2021-04-12T13:44:42.173Z info     Rest http://localhost:3000/node/health is up and running...
2021-04-12T13:44:42.174Z info     Network is running!

初回はブロックチェーンの同期に時間が掛かりますが、しばらく経つとNode Listから自分のノードが確認できるようになります。
(下記NodeはVoting設定も追加しています)
image.png

あとは委任とハーベスティングされるのをゆっくり待つのみです。
みなさまも良い収穫ライフを!!!

次回記事

参考情報

20
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
13