Gift history
Please access after login.


Wait a moment...

Symbolノード構築手順 3 (symbol-bootstrapのノード実行/ハーベスト開始まで)

411
0
2021-04-05 22:25:59
0.00 mXYM
(0)

さて、いよいよノード構築手順の、ノード実行までですね。

Symbolノード構築手順 1 (OSインストールからSSHログイン設定まで)

Symbolノード構築手順 2 (symbol-bootstrapのインストール完了まで)

 

こんな基本的なところから書き始めるショボショボマンが、

こんな記事を書いていていいのでしょうか? ま、まぁ自分の備忘録だから……(免罪符)。

 

さて。それでは続きです。

ここまで、上記のリンクの通りであれば、

OSインストールと、ログインのセキュリティ関係を終えており、

Docker, DockerCompose, symbol-bootstrapのインストールを終え、

ノード環境を配置するnode-homeディレクトリまで用意してある。

 

そしてノード実行用ユーザで実行している。root(ubuntu)ではないです。

という前提で行きます。

ハーベストはしますか?

 

さて、これからの手順についてなのですが、

僕は1万XYMを使ったアドレスを用意し、こちらで自ノードにおけるハーベストを実行します。

 

自ノードでハーベストするには、

  1. 自分のノードに紐づけたアドレスに1万XYM以上持たせてハーベストする方法
  2. 自分自身のノードに委任する方法(ウォレットを使用して誰かのノードに委任ハーベストする方法)

の2通りが可能かな? と思います。

 

まぁぶっちゃけどっちでもいい

まぁ1の場合は誰がノードを運用しているか? どれだけXYMをそこに預けているか?

が見えてしまうと思うので、

2.の自分のノードに委任するのも悪くないかな、と思います。

ただし、ノードは委任枠が(設定で)決められるので、そのうちの1枠がとられてしまう、ということがあります。

※自分で運用するノードであれば設定が変えられるので、1枠ぐらい正味どうでもいいですね。

今のところメモリ負荷も低いし。

 

1.の方式はどうしてもアドレスの秘密鍵を使用する部分がでてしまうので、ドキドキするかもしれません。

ウォレット以外に秘密鍵を絶対に使いたくないな、というのであれば2の方式がいいかもしれませんね。

僕はまぁ、きっと大丈夫っしょ、と思ってやるので、1でやります。ドキドキはしますが。

 

長くなりましたが、

自ノードのメインアドレスとして1万XYMのアドレスを使用して、自身のメインアドレスでハーベストに参加する、

という形でいきます。なので、その方式で記載します。

はじめてのノードの設定

Symbolノードを構築するにあたって、基本的な設定が必要になります。

初っ端からいるか? っていう話もありますが……。

なお、ここでは前提条件となる1万XYMのアドレス以外は、何もない状態として話を始めます。

 

具体的にどれだけの委任ハーベスターを受け入れるか? といったことが設定できます。

https://docs.symbolplatform.com/ja/guides/network/configuring-node-properties.html

 

そんないろいろがあるようですが、

僕が適当に設定しているものだけしか本記事では登場しません。

気になることがあったら上の内容を見てみてください。

 

さて、

node-homeにて、

$ vi mypreset.yml

でファイルを作ります。

 

大体、以下のようなものを記載してください。

nodes:
    - friendlyName: SixisNodeLittle Max30 Age
      host: xxx.xxx.xxx.xxx  
      maxUnlockedAccounts: 30
      delegatePrioritizationPolicy: Age

 

各項目をざっくり書くと、、、

friendlyName: は通知するノード名です。
名前や伝えたいことを記載するといいでしょう。
枠数、優先順などを書いてもいいかもしれません。効果のほどは、知りません。。。。

日本語に対応しているかは知らないですが、メリットが少ないと思うので英字のほうがいいですね。


host: はIPアドレスなどを設定します。
ここでは登場しないですが、独自ドメインなどを使用する場合もここに記載するようになります。

まだ独自ドメイン設定は登場していないので、さくらのVPSで借りた場合、SSH接続で使用しているIPアドレスを使用してください。


maxUnlockedAccounts: は委任ハーベスターの受入数です。まぁ適当にやってください。

項目自体を省略した場合は10だったかな? 状況次第の部分のあるので、適当に。


delegatePrioritizationPolicy: は受け入れる委任ハーベスターの優先順位を設定します。

委任ハーベスターがmaxUnlockedAccountsを超えた場合に、「どういった条件の人が残るか」の設定ですね。

省略した場合はインポータンス値順、Ageが古い人順です。
これで古い人順のはず……? あっているはず……?

 

はい、ではこんな感じで記載したら、まずこれでビルドしてしまいましょう。

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

 

-p でmainnetかtestnetか決めます。

-a でpeerかdualか、

-c で設定ファイル……プリセットファイルを指定します。

 

実行するとこんな感じのものが表示されると思います。

 

ロゴが出ているところに素敵な感じがしますね。

で、上記の黄文字(Enter password to~~~~)が出ているところで停止すると思います。

これは入力待ちとなっています。

 

内部でSymbolのアドレスを生成するのですが、

秘密鍵が含まれるため、内容を暗号化するためのパスワードになります。

任意のパスワードを入力して、Enterを押してください。

なお、このパスワードももちろん大事なので、忘れないよう、、、どこかにメモっておいてください。

 

さて、完了すると、同じディレクトリにtargetというディレクトリが生成されていると思います。

targetディレクトリに移動し、内容を確認してみてください。

$ cd target
$ ls

以下のような形になっていると思います。

 

ノードで使用する大事なアドレスがaddresses.ymlに入っています。

こちらを開いてみましょう。

vi addresses.yml

以下のような内容になっています。

ところどころprivateKeyの内容がENCRYPTEDとなっていると思います。

こちらが先ほどのパスワードで暗号化した内容です。

 

 

適当に塗りつぶしてありますが、

ざっくりと大きなくくりでいえば

main:

transport:

remote:

vrf:

となっています。

 

このあたりのキーはおそらく変動させないほうがいいため、

固定化したいです。

(main以外は)自分でわざわざ作る必要がないため、カスタムプリセットには組み込まないでおいたものでした。

 

そのために内容をプリセットファイルに組み込むのですが、暗号化されているため内容がわかりません。

なので、復号が必要になります。

 

以下のコマンドを入力してください。

$ symbol-bootstrap decrypt --source addresses.yml --destination plain-addresses.yml

パスワードが求められるので、暗号化に使用したパスワードを入力してください。

 

するとplain-addresses.ymlというファイルが同じディレクトリに生成されると思います。

 

その内容を確認します。

$ vi plain-addresses.yml

内容が無事復号されていると思います。

 

こちらの各秘密鍵をコピーしておいてください。

 

なお、先ほどの通り、mainのアドレスについては使用しません。

僕は1万XYMを用意したアドレスを用いるため、差し替える予定のためです。

 

もしアドレスを他に用意しない場合やここで生み出されたアドレスを使用する場合、

ここのアドレスを使用しても支障はないかと思います。

どちらにせよ、秘密鍵は手元においておいてください。

 

メインとなる秘密鍵はウォレットにインポートし、バックアップをしておいてください。

プリントアウトもしておくことを推奨します。

メイン以外も大事ですが、まぁ、ウォレットにいれなくていいです。下手に使ってはいけないアドレスなので……。

プリセットに組み込みますし、気になるようでしたら印刷しておいてもいいかもしれません。

 

さて、それではまたプリセットに戻ります。

 

なお、ここからPublicKey(公開鍵)、PrivateKey(秘密鍵)の話がぽろぽろでますが、

くれぐれも間違えないでください。

エラーチェックされるかもしれませんが、何らかの理由ですり抜けることも考えられるので。。。

 

プリセットに対し、以下の項目名と値を追加していきます。

 

beneficiaryAddress: 報酬の送信先アドレス。ハーベスト成功時、ここのアドレスに報酬額の一部が入ります。
mainPublicKey: メイン公開鍵
(公開鍵です。1万XYMを使用したハーベストをするアドレスの「公開鍵」を指定してください。
ハーベスト予定がない場合は、先ほど生成されたmainの公開鍵でもよいかと思います。)
transportPrivateKey: (意味をよくわかっていませんが)transportの秘密鍵です。
plain-addresses.ymlのtransport内、privateKeyの内容を設定します。
remotePrivateKey: (意味をよくわかっていませんが)remoteの秘密鍵です。
plain-addresses.ymlのremote内、privateKeyの内容を設定します。
vrfPrivateKey: (意味をよくわかっていませんが)vrfの秘密鍵です。
plain-addresses.ymlのvrf内、privateKeyの内容を設定します。

 

アドレス等を張り付ける際は、「先頭5文字ぐらい」「末尾5文字ぐらい」が一致しているか見ておくといいです。
コピペミスが減らせるかもしれません。

 

さらには先頭に

privateKeySecurityMode: PROMPT_MAIN

を記載します。

これを設定しておくと、mainの秘密鍵をプリセットに記載しなくて済むようになります。

よって、プリセットに記載するのは公開鍵のみとしています。

 

そんなわけで、こんな感じのものが出来上がりました。

こいつが大事な相棒ですね。

 

できあがったプリセットは保存しておいてください。

 

なお、作り上げたプリセットをローカルに持ってくる方法ですが、

$ pwd

を実行して現在のパスを確認します。

 

/home/~~~/node-homeとでました。

 

からの、Teratermのメニューからファイル -> SSH SCP...を選択。

 

 

下側のFromにpwdの結果+プリセットファイル名、

Toにはパソコンの保存先を指定します。

 

その後、Receiveを押すことで、ファイルが取得できると思います。

こちらは大事に取っておいてください。

 

さて。

targetをぶっ殺します。target以下のファイルが消えるので注意してください。

アドレスを生成したので、現状のものは不要です。ハハハ。

 

node-homeにいる状態で、

$ symbol-bootstrap clean

を実行します。

これでtargetフォルダは消えたと思います。サヨウナラ。

 

 

それでは気を取り直して、

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

を実行してください。

 

 

再度、パスワードの入力が求められます。

任意のパスワードを入力してください。

前回同じメッセージでパスワードを入力したと思いますが、使いまわしで問題ありません。

ただ繰り返しとなりますが、何を入力したかはメモってなくさないようにして下さい。更新するときなどは毎度、使用します。

 

正常であれば以下のようなメッセージが表示されます。

 

こちらはプリセットにprivateKeySecurityMode: PROMPT_MAINと記載したため、表示されます。

 

? Enter the 64 HEX private key of~~~~

メインで指定したアドレスのprivateKey(秘密鍵)が求められます。

おそらくウォレットに設定していると思うので、コピーして貼り付けてください。

コピーすると危険でもあるのですが……。どれが一番なんでしょうね。

 

問題なければConfiguration generatedとなります。これで設定が適用されました。

 

無事、targetフォルダがでていますね?

そうでなければ、プリセットファイルの内容にエラーがあるかもしれません。

念のため、大事な大事なハーベスト項目の確認にも行ってみます。

 

$ vi ./target/nodes/node/server-config/resources/config-harvesting.properties

 

 

こんな感じに出ていたらまぁ、OKでしょうか。

maxUnlockedAccounts、delegatePrioritizationPolicy、beneficiaryAddressが設定されていればよいかと思います。

 

さて、次にdocker-compose.ymlというファイルを生成します。

 

$ symbol-bootstrap compose

を実行します。

 

 

相変わらずパスワードを求められるので、入力します。

 

The docker-compose.yml file created ~~~

とでていれば生成されます。

 

ではいよいよ、

やっと、

ノードの実行ですね。

 

$ symbol-bootstrap run -d

を実行します。

ただしこの際、初回実行となり、同期の問題から少々時間がかかります。

 

 

しばらくぷるぷるし続けて……

 

 

どーん! どーん! どーん! どーん!!

 

で、おしまいになりました。

貧弱スペックのサーバで行いましたが、1分かからなかったかな? そんなもんでした。

 

ちゃんと起動しているか、状態を確認します。

 

$ symbol-bootstrap healthCheck

 

 

無事、ランニングになっています! おめでとうございます! ありがとうございます!!

 

http://IPアドレス:3000/chain/info
http://IPアドレス:3000/node/health
とか表示してみると、何か出ると思います。


僕のノードの場合、以下のような感じです。
http://node.sixis.xyz:3000/node/health

 

 

こんな感じですね。

 

これでノードの実行までは行えました。

 

 

いずれ、

https://symbolnodes.org/nodes/
に掲載されると思うので、掲載されたらニヤニヤしておきましょう。

 

なお、ドメインの設定については次回の記事で行う予定です。

1で書いた通り、僕はムームードメインを使用しているので、

ムームードメインについて記載するつもりです。

ノード建てたんだぜ! っていう宣伝をする場合は、ドメイン設定を行ってからのほうが良いかと思います。

 

お疲れさまでした。

 

といっても、まだやることはあるのですが。。。。

 

メインアカウントのハーベストの設定も必要になります。

念のため、インポータンス値がついてから行ったほうがいいかな? と想像していますが……。

 

また、委任ハーベストを行う場合はウォレットからガチャガチャやりましたが、
ノードのメインに指定したアドレスで「委任ハーベスト」を行わないでください。
これから委任でないハーベストを行うのに、委任してしまったらよくわからないことになります。

 

さて、Symbol Blockchain Explorerでメインのアドレスを表示してみましょう。
http://explorer.symbolblockchain.io/accounts/~~~
※~~~にアドレスを入れると一発で表示されます。

 

Supplemental Keysがすべて、N/Aになっているかと思います。

 

これがハーベストをしていない状態ですね。

委任ハーベストを行っているアカウントの場合、ここがすべて埋まる形になっているかなと思います。

 

自ノードでのハーベスト設定を行った場合、
この中のLINKEDとVRFだけが埋まります。
※たぶん、それで合っているはず……。

 

方法としては簡単で、

$ symbol-bootstrap link

を実行してください。

これで完了します。

 

※ 停止する場合は $ symbol-bootstrap link --unlinkとしてください。

 

この際、設定を行った時のパスワードを聞かれるので入力してください。

 

? Do you want to announce 2 transaction for node的な質問にはYを。(そのままEnterでよいです)
最後にmainの秘密鍵を聞かれるので、入力してください。

 

その後、承認を待ちます。いつか、いつか承認されるはず……。

 

 

OK牧場!!!

 

承認されると、Symbol blockchain explorerから見た際に、

Supplemental Keysが以下のようになります。

 

 

ただし、ウォレットのハーベスティングから見ると、

ハーベスト状況を見ても無効となっているのが不安を駆り立てますね……。

※もし違ったらごめんなさい、教えてください。。。

 

さて、今回は以上です。

人によってはここまでしかやらないかもしれません。

僕はもうちょっとだけ、続くんじゃよ。

 

 

Writer
湘南のポエマーを目指しているおじさん。 「実行力のあるやつはプレイヤーだ。実行力がないから、ポエマーなのだ」 ポケットの中の少ないNEMと共に、未来を見つめたいと思っています。

Comment
Login required to post comment
Loading...
https://symbol-sakura-16.next-web-technology.com:3001,https://symbol.harvest-monitor.com:3001,https://hideyoshi-node.net:3001,https://harvest-01.symbol.farm:3001,https://criptian-xym-node.net:3001,https://35665.xym.stir-hosyu.com:3001,https://yuna.keshet.finance:3001,https://cryptocat-xym-node.com:3001,https://misaki-xym.com:3001,https://ik1-305-12844.vs.sakura.ne.jp:3001,https://17107.xym.stir-hosyu.com:3001,https://23639.xym.stir-hosyu.com:3001,https://sym-main-01.opening-line.jp:3001,https://sym-main-02.opening-line.jp:3001,https://sym-main-03.opening-line.jp:3001,https://sym-main-04.opening-line.jp:3001,https://sym-main-05.opening-line.jp:3001,https://sym-main-06.opening-line.jp:3001,https://sym-main-07.opening-line.jp:3001,https://sym-main-08.opening-line.jp:3001,https://sym-main-09.opening-line.jp:3001,https://sym-main-10.opening-line.jp:3001,https://symbol-node-01.kokichi.tokyo:3001,https://50038.xym.stir-hosyu.com:3001,https://27423.xym.stir-hosyu.com:3001,https://angel.vistiel-arch.jp:3001,https://xym.stakeme.tokyo:3001,https://00-symbol-node.yagiyoshi.com:3001,
6BED913FA20223F8,051FAEC15105C808,73019335A785A3AE,5289A9B0DBB7EB25,6B245EAF1302E444,2C4A4893229DD0A9,63509D495CAD7B80,481D74291A71FD1F,009388A38C91A8B2,4E94920841641B77,027C6AD49DE2C9F9,