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

最新ノードをソースコードからビルドするには、数分~数時間かかる場合があります。その間プールを停止させるとブロック生成のチャンスが失われ、委任者に迷惑がかかります。プール停止時間を最小限に抑えた方法でアップデートするよう心がけましょう。

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

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

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

・Twitter:@btbfpark

・Twitter:@X_StakePool_XSP

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

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

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

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

現在の $HOME/git/cardano-node ディレクトリに更新する場合は、ディレクトリ全体を新しい場所へコピーしてバックアップを作成します。(ロールバックする際に必要となります)

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-1.新しいバイナリーファイルをコンパイルする

古いバイナリーを削除し、最新のバイナリーを再構築します。次のコマンドを実行して、最新のバイナリをプルしてビルドします。必要に応じて、チェックアウト tag または branch を変更して下さい。

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

コンピュータの処理能力によっては、ビルドプロセスに数分から数時間かかる場合があります。 ビルド中の表示で、以下が表示されてから次に進むまで、結構時間かかります。 'hackage.haskell.org'! Falling back to older state (2021-01-09T22:55:53Z). Resolving dependencies...

cardano-clicardano-node が希望のバージョンに更新されたことを確認して下さい。

$(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-2.mainnet-config.jsonのアップデート

  • 既存のファイルをバックアップします。

    cd $NODE_HOME
    cp mainnet-config.json mainnet-config-bk.json
  • 最新のmainnet-config.jsonをダウンロードします。

    NODE_BUILD_NUM=$(curl https://hydra.iohk.io/job/Cardano/iohk-nix/cardano-deployment/latest-finished/download/1/index.html | grep -e "build" | sed 's/.*build\/\([0-9]*\)\/download.*/\1/g')
    wget -N https://hydra.iohk.io/build/${NODE_BUILD_NUM}/download/1/${NODE_CONFIG}-config.json

    値を変更します。

  • TraceBlockFetchDecisionsを「true」に変更します。

    sed -i ${NODE_CONFIG}-config.json \
    -e "s/TraceBlockFetchDecisions\": false/TraceBlockFetchDecisions\": true/g"
    sed -i ${NODE_CONFIG}-config.json -e "s/127.0.0.1/0.0.0.0/g"

1-3.ログファイルを作成するように設定する

nano mainnet-config.json
  • defaultScribesを下記のように書き換える

    "defaultScribes": [
    [
    "FileSK",
    "logs/node.json"
    ],
    [
    "StdoutSK",
    "stdout"
    ]
    ],
  • setupScribesを下記のように書き換える

    "setupScribes": [
    {
    "scFormat": "ScJson",
    "scKind": "FileSK",
    "scName": "logs/node.json"
    },
    {
    "scFormat": "ScText",
    "scKind": "StdoutSK",
    "scName": "stdout",
    "scRotation": null
    }
    ]

    Ctrl+Oでファイルを保存し、Ctrl+Xで閉じる

バイナリーファイルを更新する前に、ノードを停止して下さい。

sudo systemctl stop cardano-node

cardano-clicardano-node ファイルをbinディレクトリにコピーします。

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

バージョンを確認します。

cardano-node version
cardano-cli version

ノードを再起動して、更新されたバイナリーを使用します。

sudo systemctl start cardano-node

●ブロックログを導入している場合は、各種サービスを再起動してください

sudo systemctl reload-or-restart cnode-cncli-sync.service
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

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

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

1-4. Grafana各種パネル設定値を修正する

各種パネルの「Edit」で設定画面を開き、以下パラメーターに変更する (以下はコマンドラインで実行するコマンドではありませんのでご注意ください)

パネル名

パラメーター

Epoch

cardano_node_metrics_epoch_int

slot

cardano_node_metrics_slotInEpoch_int

Block Height

cardano_node_metrics_blockNum_int

Peers

cardano_node_metrics_connectedPeers_int

Chain Density

cardano_node_metrics_density_real

Current period

cardano_node_metrics_currentKESPeriod_int

Expiry period

cardano_node_metrics_operationalCertificateExpiryKESPeriod_int

Remaining

cardano_node_metrics_remainingKESPeriods_int

1-5. gLiveViewをアップデートする

cd $NODE_HOME/scripts
./gLiveView.sh

アップデートメッセージを処理する

The static content from env file does not match with guild-operators repository, do you want to download the updated file? [y|n]
と表示されたら "y" を押下
-------------------
A new version of Guild LiveView is available
Installed Version : v1.18.0
Available Version : v1.19.2
Press 'u' to update to latest version, or any other key to continue
と表示されたら "u" を押下

gLiveViewを再起動する

./gLiveView.sh

🤯 2. 問題が発生した場合

🛣 4.1 更新を忘れていた場合

ノードの更新を忘れ、ノードが古いチェーンで止まっている場合

データベースをリセットし 最新の genesis, config, topology json filesを取得して下さい。

cd $NODE_HOME
rm -rf db

📂 4.2 バックアップから前バージョンへロールバックする

最新バージョンに問題がある場合は、以前のバージョンへ戻しましょう。

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

ブロックプロデューサーノード
リレーノード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