
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

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 observer, lisk scan
デリゲートアカウント(共同管理)
Twitter:liskcommulab
Discord:CommuLab#0097
Lisk Explorer:lisk observer, lisk scan
管理
ノード:Mainnet / Testnet
Lisk Service:Mainnet / Testnet
デリゲートサイト:Lisk CommuLab
個人やデリゲート宛ての寄付ありがとうございます!
ノード管理や開発資金に充てさせて頂いています😊