ステークプールを更新する方法

🚀 このマニュアルに関する問い合わせ先

このマニュアルは役に立ちましたか? 不明な点がある場合は、下記までご連絡下さい。

・コミュニティ:Cardano SPO Japanese Guild

・Twitter:@btbfpark

・Twitter:@X_StakePool_XSP

2021年4月18日時点でこのガイドは v.1.26.2に対応しています。 😁

このマニュアルは、X Stake PoolオペレータのBTBFCoinCashewより許可を得て、日本語翻訳しております。

cardano-nodeは常に更新されており、バージョンがアップデートされるたびにプールサーバでも作業が必要です。 Official Cardano-Node Github Repo をフォローし最新情報を取得しましょう。

0. 1.26.2緊急アップデート

このバージョンはブロックプロデューサーノードでの不具合を改善するものとなり、BPノードを優先的にバージョンアップしてください。 (リレーノードには適用しなくても問題ないです)

0-2.ソースコードをダウンロードする

cd $HOME/git
rm -rf cardano-node-old/
git clone https://github.com/input-output-hk/cardano-node.git cardano-node2
cd cardano-node2/

0-3.ソースコードからビルドする

cabal update
rm -rf $HOME/git/cardano-node2/dist-newstyle/build/x86_64-linux/ghc-8.10.2
rm -rf $HOME/git/cardano-node2/dist-newstyle/build/x86_64-linux/ghc-8.10.4
git fetch --all --recurse-submodules --tags
git checkout tags/1.26.2
cabal configure -O0 -w ghc-8.10.4
echo -e "package cardano-crypto-praos\n flags: -external-libsodium-vrf" > cabal.project.local
cabal build cardano-node cardano-cli

Warning: Requested index-state 2021-03-15T00:00:00Z is newer than 'hackage.haskell.org'! Falling back to older state (2021-03-14T23:47:09Z). Resolving dependencies...

ここで止まっているかのように見えますが、時間がかかるのでそのままお待ちください。

ビルド完了までに15分~40分ほどかかります。 Linking /home/btbf/git/cardano-node2/dist-newstyle/build/x86_64-linux/ghc-8.10.4/cardano-cli-1.26.2/t/cardano-cli-test/build/cardano-cli-test/cardano-cli-test ... が最後のメッセージならビルド成功

0-4.バージョン確認

$(find $HOME/git/cardano-node2/dist-newstyle/build -type f -name "cardano-cli") version
$(find $HOME/git/cardano-node2/dist-newstyle/build -type f -name "cardano-node") version

0-5.ノードをストップする

sudo systemctl stop cardano-node

0-6.バイナリーファイルをシステムフォルダーへコピーする

sudo cp $(find $HOME/git/cardano-node2/dist-newstyle/build -type f -name "cardano-cli") /usr/local/bin/cardano-cli
sudo cp $(find $HOME/git/cardano-node2/dist-newstyle/build -type f -name "cardano-node") /usr/local/bin/cardano-node

0-7.システムに反映されたノードバージョンを確認する

cardano-node version
cardano-cli version

0-8.ノードを起動する

sudo systemctl start cardano-node
tmux a -t cnode

前バージョンで使用していたバイナリフォルダをリネームし、バックアップとして保持します。最新バージョンを構築したフォルダをcardano-nodeとして使用します。

cd $HOME/git
mv cardano-node/ cardano-node-old/
mv cardano-node2/ cardano-node/

0-9.ブロックログ関連サービスを再起動する(BPサーバーのみ)

sudo systemctl reload-or-restart cnode-cncli-sync.service
tmux a -t cncli

「100.00% synced」になるまで待ちます。 100%になったら、Ctrl+bを押した後に d を押し元の画面に戻ります (バックグラウンド実行に切り替え)

sudo systemctl reload-or-restart cnode-cncli-validate.service
sudo systemctl reload-or-restart cnode-cncli-leaderlog.service
sudo systemctl reload-or-restart cnode-logmonitor.service
sudo systemctl reload-or-restart autoleaderlog

以上、ここで終了です。

📡 1. 1.25.1からのノードバージョンアップデート手順

全ての更新を終えるまで約3時間~4時間ほどかかる場合があります。 時間に余裕があるときに実施してください。

1.25.1から1.26.1へのバージョンアップはDB更新が発生します。 この更新には60分~120分以上かかる場合があります。その間ノードは停止状態となりブロック生成が出来なくなります。 スロットリーダースケジュールを確認し、次のブロック生成予定までに十分時間があるタイミングで実施してください。 特にBP更新時やリレーノード1台のみで運用しているプールはご注意ください。

1-1.GHCとCabalをアップデートする

curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh

Press ENTER to proceed or ctrl-c to abort. Note that this script can be re-run at any given time.

⇒Enter

Press ENTER to proceed or ctrl-c to abort. Installation may take a while

⇒Enter

Answer with YES or NO and press ENTER

⇒noと入力しEnter

Detected bash shell on your system... If you want ghcup to automatically add the required PATH variable to "/home/xxxx/.bashrc" answer with YES, otherwise with NO and press ENTER.

⇒yesと入力しEnter

source ~/.bashrc
ghcup upgrade
ghcup install ghc 8.10.4
ghcup set ghc 8.10.4
ghc --version
# 8.10.4と表示されればOK
ghcup install cabal 3.4.0.0
ghcup set cabal 3.4.0.0
cabal --version
# 3.4.0.0と表示されればOK

バイナリーファイルは必ずソースコードからビルドするようにし、整合性をチェックしてください。 また、IOGは現在ARMアーキテクチャ用のバイナリファイルを提供していません。Raspberry Piを使用してプールを構築する場合は、ARM用コンパイラでコンパイルする必要があります。

1-2.ソースコードをダウンロードする

cd $HOME/git
rm -rf cardano-node-old/
git clone https://github.com/input-output-hk/cardano-node.git cardano-node2
cd cardano-node2/

1-3.ソースコードからビルドする

cabal update
rm -rf $HOME/git/cardano-node2/dist-newstyle/build/x86_64-linux/ghc-8.10.2
rm -rf $HOME/git/cardano-node2/dist-newstyle/build/x86_64-linux/ghc-8.10.4
git fetch --all --recurse-submodules --tags
git checkout tags/1.26.1
cabal configure -O0 -w ghc-8.10.4

Warning: Requested index-state 2021-03-15T00:00:00Z is newer than 'hackage.haskell.org'! Falling back to older state (2021-03-14T23:47:09Z). Resolving dependencies...

ここで止まっているかのように見えますが、時間がかかるのでそのままお待ちください。

echo -e "package cardano-crypto-praos\n flags: -external-libsodium-vrf" > cabal.project.local
cabal build cardano-node cardano-cli

ビルド完了までに15分~40分ほどかかります。 Linking /home/xxxx/git/cardano-node2/dist-newstyle/build/x86_64-linux/ghc-8.10.4/cardano-cli-1.26.1/t/cardano-cli-test/build/cardano-cli-test/cardano-cli-test ... が最後のメッセージならビルド成功

1-4.バージョン確認

$(find $HOME/git/cardano-node2/dist-newstyle/build -type f -name "cardano-cli") version
$(find $HOME/git/cardano-node2/dist-newstyle/build -type f -name "cardano-node") version

1-5.ノードをストップする

sudo systemctl stop cardano-node

1-6.バイナリーファイルをシステムフォルダーへコピーする

sudo cp $(find $HOME/git/cardano-node2/dist-newstyle/build -type f -name "cardano-cli") /usr/local/bin/cardano-cli
sudo cp $(find $HOME/git/cardano-node2/dist-newstyle/build -type f -name "cardano-node") /usr/local/bin/cardano-node

1-7.システムに反映されたノードバージョンを確認する

cardano-node version
cardano-cli version

1-8.ノードを起動する

sudo systemctl start cardano-node
tmux a -t cnode

DB更新が完了するまで、約60分~120分かかります。 更新が完了すると、自動的にノードが起動します。

2.各ツールを導入している場合は以下の内容を実施ください

リレーノード/ブロックプロデューサーノードごとに作業内容が異なりますので、タブで切り替えてください。

リレーノード
ブロックプロデューサーノード
リレーノード

2-1-1 topologyUpdater.shを更新する

cd $NODE_HOME
sed -i topologyUpdater.sh \
-e "s/jq -r .blockNo/jq -r .block/g"

2-1-2 gLiveViewを更新する

cd ${NODE_HOME}/scripts
curl -s -o gLiveView.sh https://raw.githubusercontent.com/cardano-community/guild-operators/master/scripts/cnode-helper-scripts/gLiveView.sh
curl -s -o env https://raw.githubusercontent.com/cardano-community/guild-operators/master/scripts/cnode-helper-scripts/env
chmod 755 gLiveView.sh
sed -i env \
-e "s/\#CONFIG=\"\${CNODE_HOME}\/files\/config.json\"/CONFIG=\"\${NODE_HOME}\/mainnet-config.json\"/g" \
-e "s/\#SOCKET=\"\${CNODE_HOME}\/sockets\/node0.socket\"/SOCKET=\"\${NODE_HOME}\/db\/socket\"/g"

リレーノードのポート番号を変更している場合は、"nano env" でファイルを開きポート番号を変更してください。

2-1-3 gLiveViewを起動する

./gLiveView.sh

ノードが同期しているか確認する

リレーノードにおける "TraceMempool:true" について、現バージョンでCPUのパフォーマンスは改善されたようですが、どうしてもメモリ消費が増加傾向にあるため、しばらくfalseで様子見といたします。新たな情報が出ましたらアナウンスさせていただきます。

ブロックプロデューサーノード

2-2-1.gLiveViewとcncli.shファイルを更新する

cd $NODE_HOME/scripts
curl -s -o gLiveView.sh https://raw.githubusercontent.com/cardano-community/guild-operators/master/scripts/cnode-helper-scripts/gLiveView.sh
curl -s -o env https://raw.githubusercontent.com/cardano-community/guild-operators/master/scripts/cnode-helper-scripts/env
wget -N https://raw.githubusercontent.com/cardano-community/guild-operators/master/scripts/cnode-helper-scripts/cncli.sh
chmod 755 gLiveView.sh

2-2-2.設定ファイルを編集する

envファイルを編集します

nano env

ファイル内上部にある設定値を変更します。 先頭の # を外し、ご自身の環境に合わせCNODE_HOME=のuser_nameやファイル名、ポート番号を設定します。 下記以外の#がついている項目はそのままで良いです。

CCLI="/usr/local/bin/cardano-cli"
CNODE_HOME=/home/user_name/cardano-my-node
CNODE_PORT=6000
CONFIG="${CNODE_HOME}/mainnet-config.json"
SOCKET="${CNODE_HOME}/db/socket"
BLOCKLOG_TZ="Asia/Tokyo"

cncli.shファイルを編集します。

nano cncli.sh

ファイル内の設定値を変更します。 先頭の # を外し、ご自身の環境に合わせてプールIDやファイル名を設定します。

POOL_ID="xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
POOL_VRF_SKEY="${CNODE_HOME}/vrf.skey"
POOL_VRF_VKEY="${CNODE_HOME}/vrf.vkey"

2-2-3.gLiveViewを起動する

./gLiveView.sh

ノードが同期しているか確認する。

2-2-4.CNCLIをバージョンアップする

rustup update
cd $HOME/git/cncli
git fetch --all --prune
git checkout v2.0.0
cargo install --path . --force
cncli --version

2-2-5.ブロックログ関連サービスを再起動する

sudo systemctl reload-or-restart cnode-cncli-sync.service
tmux a -t cncli

「100.00% synced」になるまで待ちます。 100%になったら、Ctrl+bを押した後に d を押し元の画面に戻ります (バックグラウンド実行に切り替え)

sudo systemctl reload-or-restart cnode-cncli-validate.service
sudo systemctl reload-or-restart cnode-cncli-leaderlog.service
sudo systemctl reload-or-restart cnode-logmonitor.service
sudo systemctl reload-or-restart autoleaderlog

2-2-6.params.jsonを更新する

cd $NODE_HOME
cardano-cli query protocol-parameters \
--mainnet \
--out-file params.json

最後に、前バージョンで使用していたバイナリフォルダをリネームし、バックアップとして保持します。最新バージョンを構築したフォルダをcardano-nodeとして使用します。

cd $HOME/git
mv cardano-node/ cardano-node-old/
mv cardano-node2/ cardano-node/

📂 3 前バージョンへロールバックする場合

最新バージョンに問題がある場合は、以前のバージョンへ戻す場合のみ実行してください。

バイナリを更新する前にノードを停止します。

ブロックプロデューサーノード
リレーノード1
systemd
ブロックプロデューサーノード
killall -s 2 cardano-node
リレーノード1
killall -s 2 cardano-node
systemd
sudo systemctl stop cardano-node

古いリポジトリを復元します。

cd $HOME/git
mv cardano-node/ cardano-node-rolled-back/
mv cardano-node-old/ cardano-node/

バイナリーファイルを /usr/local/binにコピーします。

sudo cp $(find $HOME/git/cardano-node/dist-newstyle/build -type f -name "cardano-cli") /usr/local/bin/cardano-cli
sudo cp $(find $HOME/git/cardano-node/dist-newstyle/build -type f -name "cardano-node") /usr/local/bin/cardano-node

バイナリーが希望するバージョンであることを確認します。

/usr/local/bin/cardano-cli version
/usr/local/bin/cardano-node version

次にノードを再起動して同期が開始しているか確認して下さい。

ブロックプロデューサーノード
リレードード1
systemd
ブロックプロデューサーノード
cd $NODE_HOME
./startBlockProducingNode.sh
リレードード1
cd $NODE_HOME
./startRelayNode1.sh
systemd
sudo systemctl start cardano-node

🤖 4.3 上手く行かない場合は、ソースコードから再構築

次のマニュアル カルダノステークプール構築手順1~3を実行する。

👏 5. 寄付とクレジット表記

このマニュアル制作に携わった全ての方に、感謝申し上げます。 快く翻訳を承諾して頂いた、CoinCashewには敬意を表します。 この活動をサポートして頂ける方は、是非寄付をよろしくお願い致します。

CoinCashew ADAアドレス

addr1qxhazv2dp8yvqwyxxlt7n7ufwhw582uqtcn9llqak736ptfyf8d2zwjceymcq6l5gxht0nx9zwazvtvnn22sl84tgkyq7guw7q

X StakePoolへの寄付

カルダノ分散化、日本コミュニティ発展の為に日本語化させて頂きました。私達をサポート頂ける方は当プールへ委任頂けますと幸いです。

  • Ticker:XSP

    Pool ID↓

788898a81174665316af96880459dcca053f7825abb1b0db9a433630
  • ADAアドレス

addr1q85kms3xw788pzxcr8g8d4umxjcr57w55k2gawnpwzklu97sc26z2lhct48alhew43ry674692u2eynccsyt9qexxsesjzz8qp