Gift history
Please access after login.


Wait a moment...

【NEM技術勉強会】Symbolメインネットノード引っ越し手順書例【ibone73→74】

821
0
2021-04-04 12:53:12
0.00 mXYM
(0)

前回、symbol-bootstrapを使ったアップグレード手順書例が意外と好評でしたので、今回はローカルノードからVPSへの引っ越しの手順書例を公開します。大学の研究用ネットワークでパブリックチェーンのノード(mainnetやtestnet)を建てると、いろいろと規約上の問題が生じることが分かり、引っ越しをすることにしました。自分のための記録ですが、よろしければみなさんのお役にも立ててもらおうという趣旨です。

 

今回使用したのはリトアニアのVPSサービスである、Time4VPSです。利用の仕方はこちらのサイトにまとめられています。実はリトアニアという国は、NEMを使ったCBDCだけでなく、「命のパスポート」で岐阜ともつながりが深い国なのです。

 

メモリ16GB、ストーレジ160GBのプランで、オプションは特に付けてません。月額17.99ユーロで、かなりお安い部類に入ります。OSはUbuntu Linux 18.04LTSを使いました。nodejs, docker, docker-compose, ufw等のインストールや設定、ドメイン名の移行などは、他所にお任せします。これらを予めきちっと済ませてから移行を始めるとスムーズに行きます。逆に、これらの設定がうまくできるかが、ノード運用の醍醐味でもあり、難しいところでもあります。NEMTUSの勉強会などを受講して、最新の知識を蓄えておくことが大事です(宣伝)。

 

まず、これまで稼働していたサーバーの、移行したい情報を、mypreset.ymlに書き込みます。このファイルは、あとで作成するsymbolディレクトリに移動して使います。

maxUnlockedAccounts: 20
delegatePrioritizationPolicy: Age
unfinalizedBlocksDuration: 10m
beneficiaryAddress: ************************************

nodes:
    -
        friendlyName: ibone74
        host: symbol.shizuilab.com
        minFeeMultiplier: 10
        transactionSelectionStrategy: oldest

        mainPrivateKey: ************************************
        transportPrivateKey: ************************************
        remotePrivateKey: ************************************
        vrfPrivateKey: ************************************

 

大切なのはノードアカウントの鍵(mainPrivateKey, transportPrivateKey, remotePrivateKey, vrfPrivateKey)の部分です(2021/6/7現在の設定に修正済み)。暗号化したものでもいけますが、今回は公式文書に従って、生の秘密鍵を使いました。このアカウントはマルチシグ化してあるため、万が一情報が漏れても大丈夫という判断です。これらの鍵情報は暗号化されてtargetフォルダ内に保存されますから、移行作業が終わった時点で、mypreset.ymlからは消しておくと良いでしょう。

 

1. sudo npm install -g symbol-bootstrap
2. symbol-bootstrap -v
        symbol-bootstrap/1.0.3 linux-x64 node-v14.16.0
3. mkdir symbol
4. cd symbol (mv ../mypreset.yml ./)
5. symbol-bootstrap config -p mainnet -a dual -c mypreset.yml
6. Check the target/addreses.yml (are the addresses set properly?)
        name: node
        friendlyName: ibone74
        roles: 'Peer,Api'
        main:
            privateKey: >-
                ENCRYPTED:***************************************
            publicKey: ***************************************
            address: ***************************************
        transport:
            privateKey: >-
                ENCRYPTED:***************************************
            publicKey: ***************************************
            address: ***************************************
        remote:
            privateKey: >-
                ENCRYPTED:***************************************
            publicKey: ***************************************
            address: ***************************************
        vrf:
            privateKey: >-
                ENCRYPTED:***************************************
            publicKey: ***************************************
            address: ***************************************

7. Check the target/nodes/node/server-config/resources
        config-finalization.properties
		    unfinalizedBlocksDuration = 10m
        config-harvesting.properties 
            maxUnlockedAccounts = 20
            delegatePrioritizationPolicy = Age
            beneficiaryAddress = ***************************************
        config-node.properties
            minFeeMultiplier = 10
            transactionSelectionStrategy = oldest
            host = symbol.shizuilab.com
            friendlyName = ibone74
8. symbol-bootstrap compose
9. symbol-bootstrap run -d
        Use 'docker logs -f nodes' to check the progress of the node. Wait for the synchronization starts.
10. symbol-bootstrap healthCheck
  1. 最新のsymbol-bootstrapをインストールする。
  2. うまくインストールできたか、バージョンを確認。
  3. symbolディレクトリを作成。
  4. symbolディレクトリに移動。この時、上で作成したmypreset.ymlファイルをこのディレクトリ内に移す。もちろんここで新規に作成しても可。
  5. symbol-bootstrap configを使って、mypreset.ymlの内容に従って、新しいtargetディレクトリを生成する。
  6. target/addresses.ymlに記載されている公開鍵(publicKey)とアドレス(address)が、移行前のノードアカウントと一致しているかを確認する。暗号化された秘密鍵はもしかすると変化しているかもしれませんが、公開鍵とアドレスが合っていれば問題ありません。
  7. target/nodes/node/server-config/resourcesディレクトリ内のファイルの中身を見て、各種設定が反映されているかを確認する。この時これらのファイルの内容を変更してはならない(2021/6/7現在の設定に修正済み)。
  8. symbol-bootstrap composeでdocker関連ファイルを作成する。
  9. symbol-bootstrap run -dでノードをスタートする。docker logs -f nodeで実行中のログを見ることができる。ctrl-Cでログの連続表示を停止できます。
  10. ログを見て同期が開始したと思われたら、symbol-bootstrap healthCheckでエラーが出ていないことを確認する。

 

targetディレクトリ内は触らないほうが良いというアドバイスをDave Hodgsonさんからいただきましたので、harvesters.datはコピーしていません。まだ確実に委任ハーベスターの情報を引き継ぐ方法が分かっていないので、ノードの引っ越しの時には委任ハーベスターさんには避難してもらった方が良いと思っています。

 

最後に、Webブラウザを使って自分のノード(下記のリンクのsymbol.shizuilab.comのところを適宜自分のノードのドメイン名やIPアドレスに変更してください)に問い合わせをおこない、設定が反映されて正常に動いているかを確認します。

 

ブロック高のチェック:http://symbol.shizuilab.com:3000/chain/info

ノードの設定のチェック:http://symbol.shizuilab.com:3000/node/info

 

ノードアカウントにハーベスト用のXYMが入っていてリモートハーベストをしたい場合は、ちゃんとノードがリンクされているかどうかを確認しておくと良いでしょう。コマンドはsymbol-bootstrap linkです。

 

 

すでにブロックチェーン上でリンクされているので、新しいトランザクションの必要はないというメッセージが出ると思います。アカウントアドレス、リモートキー、VRFキーが合っているか確認しましょう。そして、自ノードがunlockedaccountsにリストされていることもWebブラウザでチェックできます。自分のRemote public key(上の画像で95610.....となっているもの)が、下記リンクで表示されるリストに入っていれば、正常にハーベストが開始されていると思います。

 

委任ハーベスターのチェック:http://symbol.shizuilab.com:3000/node/unlockedaccount

 

以上のように、ノードの移行は委任ハーベスターさんたちに予め避難してもらっておけば、アップグレードとほぼ同じ手順になります。一方、targetディレクトリごと引っ越そうとすると、環境の違いなどにも気を使わないとならないでしょうし、まだ不確定要素があるため、今後の課題としたいと思います。

 

ノードは、動的なメンテナンスによって、安定し、安全度も高くなっていきます。委任ハーベストしている方々にも、ノードの運用は要所要所でこのようなメンテナンスを繰り返すものであるということを知っていただき、いろいろ個性のあるノードを試してみるのもいいかなというくらいの気持ちで委任してくださると、運用する側も気が楽になります。ノードの移転・アップデートによって委任ハーベストがはずれる=ノードと運用者がチャレンジし成長しているということなのです。委任ハーベストが流動的であるほど、ノード間でインポータンスが動的な分散をすることにもなり、Symbolネットワーク全体の健康状態を良くし、攻撃への免疫力も上がると言うこともできます。

 

どうか、みなさんこれからも良きノードとともに良きSymbolライフを!

 

目指せ北海道

Writer
歯の神経の中にいる「歯髄(しずい)細胞」を再生医療に活用するための研究をしています。再生医療の実用化に足りないものは細胞のトレーサビリティだと気づき、Symbolのブロックチェーン技術を使って、細胞の流通や製造管理のための「ShizuiNet」を開発中。現在、実用化のための大学発ベンチャー起業を準備しています。しずいノード(symbol.shizuilab.com)を運用しており、委任ハーベスト収入は研究開発費として使わせていただきます。下記リンクからノード実績を御覧いただけます。

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,