21
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

nemAdvent Calendar 2021

Day 5

Symbol ノード構築で GoTo 大家(入門編)- 2021.12

Last updated at Posted at 2021-12-04

IMG20211204081001.jpg

2023-11-21 こちらの記事は古くなっております。Symbol コミュニティの記事が最新です。

まえがき

皆様お元気でらっしゃいますでしょうか、コロナ禍がおさまりつつあるこの年末、あぁ年末、もう年末。あっという間に一年が経ちまして。そういえば昨年の今頃、Symbolノード構築手順を書きました。そしてかなりのアクセス数になっておりました。

Screenshot_20211203.png

やはりハーベスト報酬とノード報酬で、それなりの利益が出る(可能性がある)というのは大事なことだと思いますね。そして報酬は100年続きます。

この一年を振り返ってみますと、2021年3月にSymbolメインネットがローンチされZaifにSymbolが上場、10月には突如bitbankにも上場されました。また、11月にはコアデブとNGL等との関係が整理され、よりコミュニティ重視へと路線転換を表明、その同意を得るハードフォーク(キプロス)があり、キービジュアルの刷新が図られサイバーパンクな宇宙海賊風に。コアデブの、特にハチェット姉さん(@0x6861746366574)がエンドユーザーとのコミュニケーションを積極的に取るようになり情報発信および情報開示の推進が見られました。昨年と比べると情報発信をするユーザーが段違いに増え、Symbol界隈がとてもにぎやかになってきております。実際情報を追いきれません:joy:

xem2xym.png

現在のところ1400台強のノードが稼働しており、Symbolチェーンをベースとしたデータが絶対消えないNFT-Driveサービスが登場、クラウドファウンディング的なQUESTサービスなど、個人にエンパワーメントするサービスが続々と登場しています。そして米国:flag_us:Valkyrie財団が新たに信託に加わり、今後スイス:flag_ch:に「Fushicho(不死鳥)財団」の設立、米国デラウェア州:flag_us:に暗号通貨NGO「Symbolシンジケート」の設立、また「リンガフランカ」という組織の設立などが予定されています。いやはや加速してます、してます。

さて今後の期待が高まったところで、昨年書いたノード構築記事を読み返しますといささか古くなっておりまして。メインネットローンチ前後の情報収集中の記事だったため、ノード構築手順と委任ハーベスト手順が入り混じっており、混乱を呼ぶものとなっております。ということで、本記事では一旦ノード構築に焦点を絞り、改めて手順を整理したいと思います。ツールのSymbol Block Explorer(testnet)蛇口WEBアプリ等のURLも変わってたりしますので。

ということで以下は本題の、Symbolノード構築に興味を持った初心者が テストネット でノード構築するところまでの手順です。ちょうどタイミングよくというか昨日リセットされたようですね。

ノード構築に自信がついたらメインネットへ参加しましょう!

Symbol テストネットノード構築

事前準備

  • サーバー: VPSをレンタル or 自宅サーバー(より分散を:earth_asia: Node map
  • OS: Ubuntu 20.04

symbol-bootstrapのバージョン確認

公式ドキュメント

ハードウェア要件

本記事では dual node 設定で構築します。

  • CPU: 4 cores
  • RAM: 16GB
  • Disk size: 750 GB
  • Disk speed: 1500 IOPS SSD

開放するポート

  • 3000
  • 7900

サーバー起動後

以下、sudo su - できるユーザーでOSにログインできているとします。

symbol-bootstrap 稼働要件

Node.js インストール

公式サイト(公式ではnvmでインストールしろとありますが…)

$ sudo apt install -y curl
$ sudo curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
$ sudo apt install -y nodejs
$ node -v
v16.13.1

npm 最新化

$ sudo npm install -g npm@latest
$ npm -v
8.2.0

Dockerインストール

既存のパッケージのリストを更新します。

$ sudo apt update

いくつかの必要になるパッケージをインストールします。

$ sudo apt install apt-transport-https ca-certificates curl software-properties-common

Docker公式リポジトリを登録します。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

パッケージデータベースを更新します。

$ sudo apt update

リポジトリが、デフォルトのUbuntuではなくDockerリポジトリになっていることを確認します。

$ apt-cache policy docker-ce

Dockerをインストールします。

$ sudo apt install docker-ce

実行されていることを確認します。

$ sudo systemctl status docker

sudoなしでDockerコマンドを実行できるようにします。確認をします。

$ id -nG

グループに追加します。

$ sudo usermod -aG docker ${USER}

dockerグループに追加されたことを確認します。

$ id -nG

グループ追加を適用させるためにサーバーから一旦ログアウトおよび再度ログインするか、次のように入力します。

$ su - ${USER}

バージョン確認

$ docker -v
Docker version 20.10.11, build dea9396

Dockerのインストールが完了です。

Docker Compose インストール

バージョンを確認します。

要件にあるように2系ではなく1系をインストールします。

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

コマンド実行できるように権限を設定します

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

バージョン確認

$ docker-compose --version
docker-compose version 1.29.2, build 5becea4c

Symbol Bootstrap をインストール

リリース情報を確認

$ sudo npm install -g symbol-bootstrap@1.1.2-alpha-202112032036
$ sudo symbol-bootstrap -v
symbol-bootstrap/1.1.2-alpha-202112032036 linux-x64 node-v16.13.1

設定ファイルの生成

なお同期したブロックチェーンのデータがtarget配下に保存される。

$ cd ~/
$ mkdir -p ~/symbol-bootstrap/target
$ cd ~/symbol-bootstrap

設定ファイルの作成(やらなくてもOK。ノードリストのNameにランダム文字列が表示されます)

$ vi my-preset.yml
----
nodes:
    -
        host: <あなたのホスト名>
        friendlyName: <好きな文字列>
        maxUnlockedAccounts: <委託可能数>
        beneficiaryAddress: <ハーベスト手数料の送付先ウォレットアドレス>
----

建てたいノードタイプによってコマンドが変わります。

$ symbol-bootstrap config -p testnet -a dual    # テストネットの場合
$ symbol-bootstrap config -p testnet -a dual -c my-preset.yml    # 上記の個別設定を読み込ませる場合

$ symbol-bootstrap config -p mainnet -a dual    # メインネットの場合

privateKeyを扱うファイル操作するときのためのをパスワードを設定する必要があります。

? 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

生成されたpublicKey等を確認します。
なお、privateKeyが伏字になっていますので、確認したい場合は手順を他記事を探してみてください。

$ 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":16777985,"publicKey":"F6A35285E5AF7744C578524012B3FB1CBEEE23AFED3CB019C669BA6104D8D0DC","networkGenerationHashSeed":"3B5E1FA6445653C971A50687E75E6D09FB30481055E3990C84B25E9222DC1155","roles":3,"port":7900,"networkIdentifier":152,"host":"ik1-102-57776.vs.sakura.ne.jp","friendlyName":"CURUPO_TEST","nodePublicKey":"FC7BC8B5F56F483018F4EA70D4335ADFEE45BF08C1F8194757DFD1F0905B35C2"}

以下のコマンドを何回か叩いて、チェーン高 (height) が高くなっていけばブロックチェーンの同期はOK

$ curl http://localhost:3000/chain/info
{"scoreHigh":"0","scoreLow":"69786224148995062","height":"6841","latestFinalizedBlock":{"finalizationEpoch":3,"finalizationPoint":68,"height":"1440","hash":"BFC81A9E0680618ABDDDEA8D5566388959B0100A8CD13CF715107F655B873C9A"}}
  ↓
{"scoreHigh":"0","scoreLow":"87786224148912949","height":"8641","latestFinalizedBlock":{"finalizationEpoch":4,"finalizationPoint":68,"height":"2160","hash":"0ED79886586F1AD641B7F39A8BAC46CB0A1D6350C6A51012DD4EBE8EA613F7AD"}}

ローカルでアクセス可能なら、VPSで払い出されたIPまたは自宅サーバーに割り当ててある固定IPアドレスでも叩いてみましょう。

$ curl http://{IPアドレス}:3000/chain/info
{"scoreHigh":"0","scoreLow":"167633496728810663","height":"10837","latestFinalizedBlock":{"finalizationEpoch":9,"finalizationPoint":45,"height":"5760","hash":"44CA32FC58B565A9C39156C7E28F979EB8B80F933A82D6B4454CFF5583BFD548"}}

最後に テストネット のノードリストに追加されたか確認してみましょう。

大丈夫なようですね、これであなたもノード大家の仲間入りィィ!!:yum:

https化については以下の記事を参照ください。

ノードに対してウォレットから委任ハーベストするパートについては、別記事を早めに書きます(予定)。

ともあれノード構築で困ったらノード構築の神々が集うタヌソンSlack道場へ。
有益な情報を得られると思います。それでは!

21
8
2

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
21
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?