LoginSignup
2
1

More than 1 year has passed since last update.

GCP(Google Cloud Platform)でSymbolノードを構築する手順(Ubuntu)

Last updated at Posted at 2021-03-23

<<<以下の手順を実行するに際しては、あくまでも自己責任でお願いします>>>
<<<発生した不具合や損害に対し、当方は一切の責任を負いません>>>

1.GCP(Google Cloud Platform)上に新規プロジェクトを作成

<設定例>
プロジェクト名: <任意入力>(例:symbol-node
場所: 組織なし

2.GCE(Google Compute Engine) VMインスタンスを作成

作成したプロジェクト(例:symbol-node)を選択。
画面左上のナビゲーションメニューを表示させる三本線のボタンをクリックし、コンピューティング内のCompute Engine内のVMインスタンスをクリック。
「VMインスタンス」と表示されている箇所の近くの作成ボタンをクリック。

<設定例>
名前: <任意入力>(例:symbol-api-1
リージョン: asia-northeast1 (東京)
ゾーン: asia-northeast1-a
[マシンの構成]
マシンファミリー: 汎用
シリーズ: <任意選択>
マシンタイプ: <任意選択(API, Dual / Voting ノードの推奨スペック:CPU: 4コア / メモリ: 16GB / ディスク: 750GB)>
ブートディスク: Ubuntu 20.04
 LTSのラジオボタンにチェックを入れ、サイズ(GB)欄に任意の数字(例:400)を入力し、選択ボタンをクリック
ファイアウォール:
 Httpトラフィックを許可するにチェックを入れる
 Httpsトラフィックを許可するにチェックを入れる

 作成ボタンをクリックしてVMインスタンスを作成。インスタンス作成が完了し、インスタンス名の左横に緑色のチェックマークが表示されるのを確認。

3.ファイアーウォールルールの作成とVMインスタンスへの適用

Symbolノードはhttpノードでは、API接続用に3000番、ノード同士の通信用に7900番、APIブローカー用に7902番のポートを使用するため、これらのポートを開放する。GCPでは先に「ファイアーウォールルール」を作成し、それをVMインスタンスへ適用する手順になる。

 「ファイアウォールルール」内の、+マークのあるファイアウォールルールの作成を選択。

<<設定例>>
名前: symbol-http-allow
トラフィックの方向: 上り
一致したときのアクション: 許可
ターゲット: 指定されたターゲットタグをプルダウンで選択
ターゲットタグ: symbol-http-allow
ソースフィルタ: IP範囲
ソースIPの範囲: 0.0.0.0/0
プロトコルとポート: 指定したプロトコルとポートのラジオボタンにチェック
           tcpにチェック
           tcpの右横の入力欄に3000,7900,7902と入力

設定内容が入力できたら、作成ボタンをクリック。

4.ファイアウォールルールをGCE (Google Compute Engine)のVMインスタンスに適用

画面左上のナビゲーションメニューを表示させる三本線のボタンをクリックし、その中のコンピューティングの項目内のCompute EngineVMインスタンスを選択。
対象のVMインスタンスの名前を選択し、出てきた画面で、上の方にある編集をクリック。
ネットワークタグ項目に、先ほど作成したファイアーウォールルール(例:symbol-http-allow)を入力。一番下の保存ボタンをクリック。

5.IPアドレスの固定化

画面左上のナビゲーションメニューを表示させる三本線のボタンをクリックし、その中のネットワーキング内のVPCネットワーク内の外部IPアドレスを選択。
出てきた画面で外部IPアドレスのタイプをプルダウンでエフェメラルから静的に変更。
その際出てくるダイアログで、IPアドレスの予約設定の名前の入力が要求されるので、任意入力(symbol-api-1など)。

6.必要なソフトウェアのインストール

VMインスタンスの接続列(SSH)のプルダウンからブラウザウィンドウで開くを選択。

Root権限に切り替え

sudo su

Node.js / npm のインストール

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
apt-get install -y nodejs
npm install -g npm@latest

バージョンを確認

node -v

(画面表示→)v14.*.*

npm -v

(画面表示→)*.*.*

Symbol Bootstrapのインストール

npm install -g symbol-bootstrap@latest

バージョンを確認

symbol-bootstrap -v

(画面表示→)symbol-bootstrap/1.*.* linux-x64 node-v14.*.*

Docker / Docker Compose のインストール

Dockerは仮想環境コンテナを実行するためのソフトウェア。Dockerのインストール。

apt-get install -y apt-transport-https ca-certificates curl 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-get update -y && apt-get install -y docker-ce docker-ce-cli containerd.io

Docker-Composeは定義ファイルに従って、コンテナ群を起動するユーティリティソフトウェア。Docker-Composeのインストール。

curl -L https://github.com/docker/compose/releases/download/1.28.4/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

バージョン確認

docker -v

(画面表示→)Docker version *.*.*, build *******

docker-compose -v

(画面表示→)docker-compose version *.*.*, build *******

7.実行ユーザーをDockerグループに追加

sudo gpasswd -a <ユーザー名> docker

Root権限からの脱却

exit

Docker再起動

sudo /bin/systemctl restart docker.service

再ログイン

sudo su <ユーザー名>

Dockerグループに入れたかどうかの確認

docker info

8.symbol-bootstrap稼働に向けた準備作業

作業フォルダの作成と移動

cd #
mkdir platform && cd $_

カスタム設定ファイルの作成

symbol-bootstrap の設定するため、任意のYAMLファイル(ここでは「my-preset.yml」)を作成し、config実行の際に流し込む。

nano my-preset.yml
nodes:
    -
        friendlyName: <ノードの名称>
        maxUnlockedAccounts: <ハーベスト枠>
        beneficiaryAddress: <ハーベスト報酬の受益アドレス>
        host: <取得したドメイン>

設定しなくても動作はするが、設定できるものはしておくことを推奨。symbol-bootstrapのバージョン更新の際に便利。

9.symbol-bootstrapの実行

いよいよsymbol-bootstrapの実行。

symbol-bootstrap config -p mainnet -a dual -c my-preset.yml --upgrade
symbol-bootstrap compose --upgrade
symbol-bootstrap run -d

エラー等が出なければOK。最後に

symbol-bootstrap healthCheck

で無事稼働しているか確認。

(画面表示→)Network is running

と表示されればOK。

10.ハーベストノード化

まずノードのメインウォレットに作業用のXYMを入金するため、秘密鍵を入手。

symbol-bootstrap decrypt --source target/addresses.yml --destination add.yml
less add.yml

で表示される、mainaddressprivateKeyを書き留める。
書き留めたら

rm add.yml

で一時ファイル削除。

その後、Symbol Wallet等により、上記addressに1XYM以上送金。
次にSymbol Walletで上記privateKeyを用いた秘密鍵インポートによるアカウント作成し、上記addressから0XYM送金。
最後に、ノードがハーベスティングを行えるよう設定。

symbol-bootstrap link

以上で作業完了!

< 宣 伝 >

デリゲートハーベスティングには、是非とも以下のノードのご利用を❣

 0-0-0-high-performance.harvest-node.com
 0-0-1-high-performance.harvest-node.com

2
1
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
2
1