<<<以下の手順を実行するに際しては、あくまでも自己責任でお願いします>>>
<<<発生した不具合や損害に対し、当方は一切の責任を負いません>>>
#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 Engine
内VMインスタンス
を選択。
対象の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
で表示される、main
のaddress
とprivateKey
を書き留める。
書き留めたら
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