SPO JAPAN GUILD
ステークプール運用

ノードアップデート

このガイドは ノードバージョン11.0.1に対応しています。

最終更新日:2026年5月5日

バージョン対応表

各依存関係もバージョンアップしてますのでよくお読みになって進めてください

OSNodeCLIGHCCabalCNCLI
ubuntu 24.04.*11.0.111.0.0.09.6.73.12.1.06.7.0

■アップデートパターンDB再構築有無

バージョンDB再構築有無設定ファイル更新有無トポロジーファイル更新有無
10.7.1 → 11.0.1なし更新ありなし

留意点

  • 作業実施前にブロック生成スケジュールを確認してください。
  • 複数行のコードをコードボックスのコピーボタンを使用してコマンドラインに貼り付ける場合は、最後の行が自動実行されないため確認の上Enterを押してコードを実行してください。
  • OSバージョンアップを完了していること
    Ubuntu22.04から24.04へ移行

1. 依存環境アップデート

現在のノードバージョンを変数に代入

current_node=$(cardano-node version | grep cardano-node)
echo $current_node

システムのアップデートと依存関係のインストール

sudo apt update && sudo apt upgrade -y
sudo apt install bc curl htop nano needrestart protobuf-compiler rsync ufw zstd automake build-essential pkg-config libffi-dev libgmp-dev libssl-dev libncurses-dev libsystemd-dev zlib1g-dev make g++ tmux git jq wget libtool autoconf liblmdb-dev liburing-dev libsnappy-dev -y

依存関係バージョン確認

cabalバージョン確認

cabal --version
期待される表示例:
cabal-install version 3.12.1.0
compiled using version 3.12.1.0 of the Cabal library 

GHCバージョン確認

ghc --version
期待される表示例:
The Glorious Glasgow Haskell Compilation System, version 9.6.7

libsodiumコミット確認

cd $HOME/git/libsodium
git branch --contains | grep -m1 HEAD | cut -c 21-28
期待される表示例:
dbb48cce

secp256k1バージョン確認

cd $HOME/git/secp256k1
git branch --contains | grep -m1 HEAD | cut -c 21-27
期待される表示例:
acf5c55

Blstバージョン確認
インストール済みバージョン

cat /usr/local/lib/pkgconfig/libblst.pc | grep Version
期待される表示例:
Version: 0.3.14

各アプリのバージョン(戻り値)が上記と異なる場合は、該当する項目を開いて対応してください。

CNCLIバージョン確認(BPのみ)

CNCLIバージョン確認

cncli --version
期待される表示例:
cncli v6.7.0 <8162cfb> (x86_64-unknown-linux-gnu)

2. ノードアップデート

バイナリファイルインストール方法の違いについて

  • ビルド済みバイナリ・・・IntersectMBOリポジトリソースコードからビルドされたバイナリファイルをダウンロードします。ビルド不要のためビルド時間を短縮できます。

  • ソースコードからビルド・・・ご自身のサーバーでソースコードからビルドしてバイナリファイルを作成します。検証目的やソースコードからビルドしたい場合に利用できます。ビルドに30分前後かかります。Raspberry Piを使用してプールを構築する場合は、ARM用バイナリを使用する必要があります。

バイナリダウンロード

旧バイナリの削除

rm -rf $HOME/git/cardano-node-old/

バイナリファイルのダウンロード

mkdir $HOME/git/cardano-node2
cd $HOME/git/cardano-node2
wget -q https://github.com/IntersectMBO/cardano-node/releases/download/11.0.1/cardano-node-11.0.1-linux-amd64.tar.gz

解凍

tar zxvf cardano-node-11.0.1-linux-amd64.tar.gz ./bin/cardano-node ./bin/cardano-cli ./bin/snapshot-converter

バージョンの確認

$(find $HOME/git/cardano-node2 -type f -name "cardano-node") version
$(find $HOME/git/cardano-node2 -type f -name "cardano-cli") version
期待される表示例:
cardano-node 11.0.1 - linux-x86_64 - ghc-9.6  
git rev 97036a66bcf8c89f687ae57a048eecc0389977ef

cardano-cli 11.0.0.0 - linux-x86_64 - ghc-9.6  
git rev 97036a66bcf8c89f687ae57a048eecc0389977ef

ノードの停止

sudo systemctl stop cardano-node

バイナリインストール

バイナリーファイルをシステムフォルダーへコピー

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

システムに反映されたノードバージョンの確認

cardano-node version
cardano-cli version
期待される表示例:
cardano-node 11.0.1 - linux-x86_64 - ghc-9.6
git rev 97036a66bcf8c89f687ae57a048eecc0389977ef

cardano-cli 11.0.0.0 - linux-x86_64 - ghc-9.6
git rev 97036a66bcf8c89f687ae57a048eecc0389977ef

ソースコードダウンロード

現在のノードバージョンを変数に代入

current_node=$(cardano-node version | grep cardano-node)
echo $current_node

TMUXセッションを展開

tmux new -s build

アップデート作業中にSSHが中断した場合は、tmux a -t buildで再開できます。

以前ビルドしたディレクトリの削除

rm -rf $HOME/git/cardano-node-old/

ソースコードのダウンロード

cd $HOME/git
git clone https://github.com/IntersectMBO/cardano-node.git cardano-node2
cd cardano-node2/

2-2.ソースコードからビルド

cabal clean
cabal update
git fetch --all --recurse-submodules --tags
git checkout tags/11.0.1
cabal configure --with-compiler=ghc-9.6.7
cabal build all cardano-cli

ヒント

  • ビルド完了までに数十分ほどかかります。
  • SSH接続が途中で切断された場合、再度接続してtmux a -t buildで再開してください。
  • ビルド中にデタッチ(Ctrl+B D)してバックグラウンド処理へ切り替えられます。

バージョン確認

$(./scripts/bin-path.sh cardano-node) version
$(./scripts/bin-path.sh cardano-cli) version
期待される表示例:
cardano-node 11.0.1 - linux-x86_64 - ghc-9.6  
git rev 97036a66bcf8c89f687ae57a048eecc0389977ef

cardano-cli 11.0.0.0 - linux-x86_64 - ghc-9.6  
git rev 97036a66bcf8c89f687ae57a048eecc0389977ef

ビルド用TMUXセッションを終了します。

exit

ノードの停止

sudo systemctl stop cardano-node

バイナリーファイルをシステムフォルダーへコピー

cd $HOME/git/cardano-node2
sudo cp $(./scripts/bin-path.sh cardano-node) /usr/local/bin/cardano-node
sudo cp $(./scripts/bin-path.sh cardano-cli) /usr/local/bin/cardano-cli

システムに反映されたノードバージョンの確認

cardano-node version
cardano-cli version
期待される表示例:
cardano-node 11.0.1 - linux-x86_64 - ghc-9.6
git rev 97036a66bcf8c89f687ae57a048eecc0389977ef

cardano-cli 11.0.0.0 - linux-x86_64 - ghc-9.6
git rev 97036a66bcf8c89f687ae57a048eecc0389977ef

設定ファイル更新

既存ファイルのバックアップ

mkdir -p $NODE_HOME/backup
cp $NODE_HOME/${NODE_CONFIG}-config.json $NODE_HOME/backup/${NODE_CONFIG}-config.json

設定ファイルダウンロード

BPとリレー共通:

cd $NODE_HOME
wget -q https://spojapanguild.net/node_config/11.0.1/${NODE_CONFIG}-config.json -O ${NODE_CONFIG}-config.json

wget -q https://spojapanguild.net/node_config/11.0.1/${NODE_CONFIG}-checkpoints.json -O ${NODE_CONFIG}-checkpoints.json

サーバー再起動

作業フォルダリネーム

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

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

サーバーの再起動

sudo reboot

SSH接続後、ノード同期状況の確認

journalctl -u cardano-node -f

ノードログメッセージ確認

以下のメッセージがログに含まれている場合に同期状況を判断できます。

メッセージステータス
Chain extended, new tip: xxxxxxxx at slot xxxxxxチェーン同期成功
GenesisReadFileErrorジェネシスファイルエラー
InvalidYaml設定ファイルエラー
Invalid option起動オプションエラー
Invalid argument起動コマンドエラー
Address in useノード起動ポートが競合しています

3. 依存関係作業

リレー/BP共通

gLiveView更新

sed -i $NODE_HOME/scripts/env \
  -e '1,73s!UPDATE_CHECK="N"!UPDATE_CHECK="Y"!' \
  -e '1,73s!#PROM_HOST=127.0.0.1!PROM_HOST=127.0.0.1!' \
  -e '1,73s!#PROM_PORT=12798!PROM_PORT=12798!'

gliveの起動

glive

更新メッセージが表示されたらyesを入力してenter

期待される表示例:
env script update(s) detected, do you want to download the latest version? (yes/no): yes

gLiveView.sh更新完了のメッセージが表示されたら再度enter

期待される表示例:
gLiveView.sh update successfully applied!  
press any key to proceed ..

更新フラグの切り替え

sed -i $NODE_HOME/scripts/env \
  -e '1,73s!UPDATE_CHECK="Y"!UPDATE_CHECK="N"!'

gliveバージョン確認

glive
期待される表示例:
Koios gLiveView v1.32.0

BPサービス確認

BPノードが完全に同期した後、サービス起動状態を確認します。

  • cnclilog
  • leaderlog
  • validate
  • logmonitor
  • blocknotify(SPO Block Notifyを導入している場合)

Grafanaアラートの対象メトリクス変更

すでに対応済みの場合は、スキップしてください。

左ペインの「Alerting」→「Alert rules」→「ノード監視」→「BPリレー接続監視」のメトリクスを変更して保存します。
cardano_node_metrics_peers_connectedPeers_intから

cardano_node_metrics_peerSelection_ActivePeers

へと変更してください。

4. エアギャップアップデート

SFTP機能ソフト導入

R-loginの転送機能が遅いので、大容量ファイルをダウン・アップロードする場合は、SFTP接続可能なソフトを使用すると効率的です。(FileZilaなど)
ファイル転送にはSFTPソフト設定を行ってください。

sudo cp $(find $HOME/git/cardano-node -type f -name "cardano-cli") ~/cardano-cli
cardano-cli リレーサーバー ローカルのホストマシン

USBを用いてcardano-cliをエアギャップに移動します。

cardano-cli ローカルのホストマシン エアギャップ

ディレクトリ作成

mkdir -p $HOME/git/cardano-node2

$HOME/git/cardano-node2/ にcardano-cliを格納します。

cardano-cli バイナリの配置

sudo cp $(find $HOME/git/cardano-node2 -type f -name "cardano-cli") /usr/local/bin/cardano-cli
sudo chmod +x /usr/local/bin/cardano-cli

バージョンの確認

cardano-cli version

戻り値確認

期待される表示例:
cardano-cli 11.0.0.0 - linux-x86_64 - ghc-9.6  
git rev 97036a66bcf8c89f687ae57a048eecc0389977ef
cd $HOME/git/cardano-node
sudo cp $(./scripts/bin-path.sh cardano-cli) ~/cardano-cli

必要ライブラリ取得

SODIUM_PATH=$(ldconfig -p | grep "libsodium.so.23" | head -1 | awk '{print $NF}')
SECP_PATH=$(ldconfig -p | grep "libsecp256k1.so.2" | head -1 | awk '{print $NF}')

cp -L "$SODIUM_PATH" $HOME/libsodium.so.23
cp -L "$SECP_PATH" $HOME/libsecp256k1.so.2

確認

ll $HOME/cardano-cli $HOME/libsodium.so.23 $HOME/libsecp256k1.so.2

戻り値確認

期待される表示例:
cardano-cli
libsecp256k1.so.2
libsodium.so.23

ファイル転送

USBを用いてcardano-clilibsecp256k1.so.2libsodium.so.23をエアギャップの$HOME/git/cardano-node2に移動します。

cardano-cli / libsecp256k1.so.2 / libsodium.so.23 リレーサーバー エアギャップ

エアギャップで以下を実行します。

ディレクトリ作成

mkdir -p $HOME/git/cardano-node2

cardano-cliの配置

sudo cp $HOME/git/cardano-node2/cardano-cli /usr/local/bin/cardano-cli

権限付与

sudo chmod +x /usr/local/bin/cardano-cli

依存ライブラリ配置用ディレクトリ作成

sudo mkdir -p /usr/local/lib

libディレクトリにlibsecp256k1.so.2libsodium.so.23を配置

sudo cp $HOME/git/cardano-node2/libsecp256k1.so.2 /usr/local/lib/
sudo cp $HOME/git/cardano-node2/libsodium.so.23 /usr/local/lib/

権限設定

sudo chown root:root /usr/local/lib/libsecp256k1.so.2
sudo chown root:root /usr/local/lib/libsodium.so.23
sudo chmod 755 /usr/local/lib/libsecp256k1.so.2
sudo chmod 755 /usr/local/lib/libsodium.so.23

シンボリックリンク作成

cd /usr/local/lib

libsecp256k1

sudo ln -sf libsecp256k1.so.2 libsecp256k1.so

libsodium

sudo ln -sf libsodium.so.23 libsodium.so

リンカーの更新

echo '/usr/local/lib' | sudo tee /etc/ld.so.conf.d/local.conf
sudo ldconfig

依存関係確認

ldd /usr/local/bin/cardano-cli | grep -E "secp|sodium"

戻り値確認

期待される表示例:
libsodium.so.23 => /usr/local/lib/libsodium.so.23 (*****)
libsecp256k1.so.2 => /usr/local/lib/libsecp256k1.so.2 (*****)

cardano-cliの動作確認

cardano-cli version

戻り値確認

期待される表示例:
cardano-cli 11.0.0.0 - linux-x86_64 - ghc-9.6  
git rev 97036a66bcf8c89f687ae57a048eecc0389977ef

Last updated on

Cookieの使用について

当サイトでは、ドキュメントの効果測定と利用状況の把握のため、Google Analytics を使用しています。

同意すると、分析用 Cookie が有効になります。