見出し画像

lisk-core を v3.0.4 にアップデートする方法

お久しぶりです。
ゴールデンウィークが終わり仕事したくない万博おじです。

さて、今回はNode.js v16に対応したlisk-core v3.0.4がリリースされたので、lisk-coreをアップデートする方法を書いていきます。
新規にlisk-coreを設定する場合は公式ドキュメントをご覧ください。

ℹ️今回からCommuLabのマガジンにもアップします。

前提

  • lisk-core v3.0.3以前をインストールしている

  • NVMでNode.jsのバージョン管理をしている

  • PM2を使用してlisk-coreを実行している

1.PM2の確認

1-1.稼働中のアプリを確認

PM2で現在稼働しているアプリを以下のコマンドで確認します。

pm2 list
万博おじの例(lisk-core以外もいろいろ稼働しているので目隠しを。。)

1-2.pm2-logrotateの設定内容確認

pm2-logrotateを使用している場合は、以下のコマンドで設定内容を確認します。

pm2 get pm2-logrotate

2.Node.js v16.15.0のインストールの事前準備

2-1.v16.15.0がインストール可能か確認

以下のコマンドでv16.15.0 (Latest LTS: Gallium) が表示されればOKです。

nvm ls-remote

2-2.NVMをアップデート

v16.15.0が表示されなかった場合、NVMが古い可能性があるので以下のコマンドでアップデートします。

cd ~/.nvm
git fetch
git pull origin master
source ~/.nvm/nvm.sh
nvm -v

ℹ️時点のNVMの最新バージョンは0.39.1
ℹ️gitコマンドでエラーとなった場合はgitをインストールしてください。

2-3.使用中のNode.jsのバージョンを確認

以下のコマンドで使用中のNode.jsのバージョンを確認します。

nvm current

(万博おじはv12.22.3でした。)

2-4.NVMのdefaultのバージョンを設定

アプリごとにNode.jsのバージョンを切り替えたい場合は以下のコマンドでdefault設定しておくことをおすすめします。

nvm alias default <version>

ℹ️v12.22.3をdefaultにする場合、<version>に v12.22.3を指定
ℹ️最新のNode.jsのバージョンをdefaultにする場合、<version>に node と指定

3.Node.js v16.15.0のインストール

3-1.globalインストールしたパッケージを確認

以下のコマンドでglobalインストールしたパッケージを確認します。

npm list --global --depth=0

ℹ️lisk-core, pm2, npm 以外に表示された場合、v16.15.0インストール後に必要に応じてglobalインストールしてください
ℹ️現在使用しているバージョンのglobalインストールしたパッケージを引き継ぐこともできますが、特に理由がなければインストールしなおすことをおすすめします

3-2.Node.js v16.15.0をインストール

以下のコマンドでv16.15.0をインストールします。

nvm install v16.15.0

4.lisk-coreのインストール

4-1.Node.jsのバージョンをv16.15.0に設定

以下のコマンドで現在使用しているNode.jsのバージョンを確認します。

nvm current

v16.15.0ではない場合、以下のコマンドを実行します。

nvm use v16.15.0

4-2.lisk-coreをインストール

以下のコマンドでインストールします。

npm i -g lisk-core

ℹ️Binary セットアップでlisk-coreを稼働させている人は公式ドキュメント参照

4-3.元々使用していたNode.jsのバージョンに戻す

以下のコマンドでバージョンを戻します。

nvm use <version>

ℹ️<version>にはlisk-coreのインストール前にnvm currentで確認したバージョンを指定(万博おじの場合はv12.22.3)

5.lisk-coreの鋳造状況の確認

ℹ️鋳造していない場合はこの確認は不要です。

5-1.次の鋳造時間をlisk-service APIで確認

lisk-service APIで次の鋳造時間を確認します。

メインネットの場合:https://mainnet-service.lisk.com/api/v2/forgers
テストネットの場合:https://testnet-service.lisk.com/api/v2/forgers
※自身のデリゲート名を検索して nextForgingTime を確認

nextForgingTime を確認後、以下のコマンドを実行します。

date -d @<nextForgingTime>

ℹ️<nextForgingTime>はlisk-service APIで取得した nextForgingTime
⚠️ブロック生成ミスを最小限にするため次の鋳造時間まであと10分程度であれば鋳造が終わるまで待ちましょう
ℹ️鋳造が終わったかは再度lisk-service APIで確認しましょう

5-2.鋳造状況を確認

鋳造が終わったら以下のコマンドで鋳造状況を確認します。

lisk-core forging:status

⚠️ここで表示される内容は必ず控えておきましょう

6.Node.js v16.15.0でlisk-coreを実行

6-1.PM2で稼働中の機能を全停止

以下のコマンドで全停止します。

pm2 stop all
pm2 delete all

6-2.使用するNode.jsのバージョンをv16.15.0に変更

以下のコマンドでv16.15.0に変更します。

nvm use v16.15.0

6-3.PM2をインストール

以下のコマンドでPM2をインストールします。

npm i -g pm2
pm2 update

6-4.lisk-coreを起動

⚠️各自lisk-coreを起動するコマンドやスクリプトを起動してください

6-5.鋳造を有効化

鋳造している場合は以下のコマンドで鋳造を有効化します。

lisk-core forging:enable <address> --use-status-values

ℹ️<address>は鋳造状況を確認した際のaddressを指定
ℹ️表示されるheight, maxHeightPrevoted, maxHeightPreviouslyForgedが控えていた鋳造情報と一致していた場合、Yesを選択してください
⚠️鋳造設定をミスするとPOM(一定期間の鋳造禁止および投票者の資産ロック期間の延長)となるので十分注意してください

7.あと始末

⚠️lisk-coreを含め必要なアプリの稼働確認後に実施してください。

7-1.元々使用していたNode.jsのバージョンに戻す

以下のコマンドでバージョンを戻します。

nvm use <version>

ℹ️<version>にはlisk-coreのインストール前にnvm currentで確認したバージョンを指定(万博おじの場合はv12.22.3)

7-2.lisk-core, pm2を削除

以下のコマンドで削除します。

npm uninstall -g lisk-core pm2

ℹ️その他不要なものがあれば一緒に削除しましょう

7-3.使用するNode.jsのバージョンをv16.15.0に変更

以下のコマンドでv16.15.0に変更します。

nvm use v16.15.0

7-4.不要なNode.jsのバージョンを削除

不要なバージョンがある場合は以下のコマンドで削除します。

nvm uninstall <version>

ℹ️<version>には削除したいNode.jsのバージョンを指定

7-5.NVMのdefaultのバージョンを変更

削除したバージョンをdefaultにしていた場合は以下のコマンドで変更します。

nvm alias default <version>

ℹ️v16.15.0をdefaultにする場合、<version>に v16.15.0
ℹ️最新のnode.jsのバージョンをdefaultにする場合、<version>に node と指定

7-6.pm2-logrotateのインストール

pm2-logrotateはPM2で実行しているアプリのログ管理をする便利ツールです。
ログ管理を他でしていない場合は以下のコマンドでインストールをおすすめします。

pm2 install pm2-logrotate

参考:万博おじのlogrotateの設定は以下
pm2 set pm2-logrotate:max_size 500M
pm2 set pm2-logrotate:retain 5
pm2 set pm2-logrotate:compress false
pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss
pm2 set pm2-logrotate:workerInterval 30
pm2 set pm2-logrotate:rotateInterval 0 0 * * *
pm2 set pm2-logrotate:rotateModule true

おわりに

お疲れさまでした!
これでNode.js v16に対応したlisk-coreへアップデートが完了しました。
そもそもなんでNode.jsのバージョンが変わったかというと、lisk-core v3.0.3まで使用していたv12のサポートが間もなく切れるせいなんですねー。
必須のアップデートではないですが、サポート切れのバージョンで稼働させ続けるのもなんなので、どこかのタイミングでアップデートしてみてはいかがでしょうか?
ということで終わりです!

万博おじについて

Liskに関するツールなど開発したりノード管理したりしています。
何かあればTwitter等でご連絡ください。

個人アカウント
Twitter:ys_mdmg
GitHub:lisknonanika
Discord:ys_mdmg#5646
Lisk Explorer:lisk observerlisk scan

デリゲートアカウント(共同管理)
Twitter:liskcommulab
Discord:CommuLab#0097
Lisk Explorer:lisk observerlisk scan

管理
ノード:Mainnet / Testnet
Lisk Service:Mainnet / Testnet
デリゲートサイト:Lisk CommuLab

個人やデリゲート宛ての寄付ありがとうございます!
ノード管理や開発資金に充てさせて頂いています😊


この記事が気に入ったらサポートをしてみませんか?