Gift history
Please access after login.


Wait a moment...

【NEM技術勉強会】Symbolメインネットノードのアップグレード手順書例【ibone73】

980
4
2021-04-01 13:58:24
0.00 mXYM
(0)

まだ立ち上がったばかりのSymbolは,頻繁にアップデートが配布されます.アップデートはsymbol-bootstrapとして配布されますが,これまでに,1.0.0 -> 1.0.1 -> 1.0.2 -> 1.0.3とバージョンが3つ上がっています.これまでのアップグレード経験から分かった安全なアップデートをするための要点は3つあります.

  1. targetディレクトリのバックアップ
  2. ノードアドレスの設定と反映の確認
  3. カスタムプリセットの設定と反映の確認

基本的なアップデートの注意点やポイントについては,nem forumの説明にありますが,詳細な手順が示されているわけではなく,また,ノードの運用者によって少しずつ設定の内容は変わります.実際の設定がきちんと反映されているかの確認方法についても特に書かれていません.そこで,一つの例として,私が今回symbol-bootstrap 1.0.2から 1.0.3にアップグレードを行った際の手順書を公開して,みなさんのお役に立てていただこうと思いました.

1. sudo systemctl stop symbol-platform
2. sudo npm install -g symbol-bootstrap
3. cp -r symbol symbol-1.0.2-backup
4. cd symbol
5. symbol-bootstrap config -p mainnet -a dual --upgrade -c mypreset.yml
6. Check the target/addreses.yml (are the addresses set properly?)
        name: node
        friendlyName: ibone73
        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 = 10
            delegatePrioritizationPolicy = Importance
            beneficiaryAddress = ***************************************
        config-node.properties
            minFeeMultiplier = 10
            transactionSelectionStrategy = oldest
            host = symbol.shizuilab.com
            friendlyName = ibone73
8. symbol-bootstrap compose
9. symbol-bootstrap run
        Check the logs and see the blocks can catch up without critical errors. Then, ctrl-C.
10. sudo systemctl start symbol-platform

では,それぞれのステップについて解説していきます.

  1. ibone73はsystemdを使ったデーモンの自動起動を使用していますので,まずそれを停止してノードを止めます.
  2. ibone73は,npmをユーザー権限で-gオプション付きで実行するとエラーになるので,sudoを使って管理者権限でおこないます.
  3. symbolディレクトリ全体をバックアップします.これはtargetディレクトリだけでなくカスタムプリセットやログファイルも一緒にバックアップするためです.
  4. symbolのディレクトリに入ります.カスタムプリセットファイル(mypreset.yml), ログファイル(logs.log)とtargetディレクトリがあります.今回はこれらはいじりません.
  5. ここで,symbol-bootstrap startコマンドを使っていきなりアップグレードから実行までやることもできますが,ノードを動かす前に設定がきちんと引き継がれていることを確認したいので,まずsymbol-bootstrap configで設定部分のみ実行します.
  6. targetディレクトリに入り,addresses.ymlの内容が変更されたりしていないか,前のaddresses.ymlの内容と突き合わせてチェックします.ここでaddresses.ymlが書き換わっていたらカスタムプリセットファイルの内容や文法が合っているかをチェックします.
  7. target/nodes/node/server-config/resourcesディレクトリにある設定ファイルの中身を確認します.カスタムプリセットファイルの設定や数値と一致しているか確認します.齟齬が見つかったらこれらの設定ファイルの設定を直接変更してはいけません.カスタムプリセットファイルの書式が間違っている可能性があるので,そちらを修正します.
  8. symbol-bootstrap composeで,dockerファイル類を構築します.
  9. symbol-bootstrap run で,実行します.あえて-dでデーモン起動することをせずに,ログを見ながらrest-gateway, api, dbなどがエラーで終了したりしていないか確認します.できれば,ノードが最新ブロックに追いついて,新しいブロックが承認されるまでログを流しておくと良いです.ノードが正常に動いていることが確認できたら,一旦control-Cで停止させます.
  10. systemdを起動させます.

これらはあくまで一例です.特に気を使ったのは,6と7の設定の確認です.そのため,symbol-bootstrap startでアップグレードと実行を一気に進めるのではなく,config > compose > runと進めることで,実行前にカスタムプリセットの設定が反映できているかを確認しながらやりました.

 

最後に,Webブラウザを使って自分のノードに問い合わせをおこない,設定が反映されてちゃんと動いているか,委任ハーベストがはずれていないかなどを再確認します.

 

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

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

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

 

これらに異常がなければ,ノードは正常にアップグレードされています.Symbol node listで自分のノードがちゃんとリストされ,ブロック高が他とそろっているかも確認しておきましょう.

 

それではノードオーナーの皆様:良き,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,