コンテンツにスキップ

ノードアップデート

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

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

バージョン対応表

  • 各依存関係もバージョンアップしてますのでよくお読みになって進めてください
OS Node CLI GHC Cabal CNCLI
ubuntu 24.04.* 10.7.1 10.16.0.0 9.6.7 3.12.1.0 6.7.0

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

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

留意点

  • 作業実施前にブロック生成スケジュールを確認してください。
  • 今回のアップデートではDB更新があるため、ブロック生成が2時間以上無いことを確認してください。
  • 複数行のコードをコードボックスのコピーボタンを使用してコマンドラインに貼り付ける場合は、最後の行が自動実行されないため確認の上Enterを押してコードを実行してください。
  • OSバージョンアップを完了していること
    Ubuntu22.04から24.04へ移行
主な変更点と新機能および検証結果

cardano-node

10.7.1 マイナーアップデート

  • 10.7.0で確認されたパフォーマンス問題を修正し、Plutus・Consensus・トレーシングの改善を含むマイナーアップデート
  • PraosModeを有効

10.6.4 Plutusインタープリタに対する多数の修正と改善リリース

  • ソースビルドの場合 blst v0.3.14使用必須
  • PraosModeを有効

10.5.3 バグ修正緊急リリース

  • cardano-crypto-classライブラリ参照先修正
  • ソースビルドの場合 blst v0.3.14使用必須
  • PraosModeのみ有効

10.5.2 バグ修正緊急リリース

10.3.x, 10.4.x or 10.5.xをご利用中の場合は速やかに10.5.2へアップグレードしてください

1)ハッシュサイズに関する問題
2)ネットワークスタック内の ピア選択の不具合
を修正しています。

特定の条件下では、ネットワークの Periodic Churn(定期的な入れ替え) の仕組みが正しく機能せず、十分な数の「Warm ピア」を降格できない状態になるバグが発見されました。 その結果、長期的に見て アクティブピアのサンプリング(選定)が十分多様化しないことが懸念されます。

SPOはこのリリースへのアップグレードが推奨されます。

  • PraosMode推奨

10.5.1

  • Windowsのソケットに関する不具合の修正
  • DNSルックアップエラーのキャッシュ時間の短縮
  • PeerSharing設定動作の改良
  • --non-producer-node の代わりに --start-as-non-producer-node を使うようにコマンドラインオプションが変更(旧オプションは非推奨に)

10.5.0

  • Ouroboros Genesis の最適化
  • GHC 8.10 のサポート削除

10.4.1

  • UTxO-HD統合
    現時点ではプール運営のノードではディスクバックエンドは非推奨のため、当マニュアルではインメモリバックエンドセットアップで構築されています
    UTxO-HDの概要についてはこちらをご参照ください
  • config.json内 LedgerDB新しいキーを設定

cardano-cli v10.16.0.0

  • BLS鍵に関する機能が追加されたアップデート。
  • BLS鍵の生成・ハッシュ化、およびProof of Possession(所有証明)の生成に対応。

検証結果

■検証環境 PreProd-Testnet / cardano-node 10.7.1 / cardano-cli 10.16.0.0 / SJG-TOOL 4.1.2

検証項目 結果
ソースコードビルド
ブロック生成
リソース監視
報酬出金
ウォレット送金
KES更新
ガバナンス投票

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

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

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

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

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

1-2. 依存関係バージョン確認

cabalバージョン確認

cabal --version

cabal-install version 3.12.1.0

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

各アプリのバージョン(戻り値)が異なる場合
cabal 3.8.1.0以下の場合

cabal 3.8.1.0以下の場合のみ実行 cabalバージョンアップ

ghcup upgrade
ghcup install cabal 3.12.1.0
ghcup set cabal 3.12.1.0

cabalバージョン確認

cabal --version

cabal-install version 3.12.1.0   
compiled using version 3.12.1.0 of the Cabal library
GHC 9.6.7以外の場合 (9.6.7より新しい場合を含む)
ghcup upgrade
ghcup install ghc 9.6.7
ghcup set ghc 9.6.7

ghcバージョン確認

ghc --version

The Glorious Glasgow Haskell Compilation System, version 9.6.7
libsodiumコミット値が違う場合
cd ~/git/libsodium
git fetch --all --prune
git checkout dbb48cc
./autogen.sh
./configure
make
make check
sudo make install

makeコマンド実行後半に出現する warning は無視して大丈夫です。

secp256k1コミット値が違うまたは戻り値が無い場合
cd $HOME/git/secp256k1/
git fetch --all --prune --recurse-submodules --tags
git checkout acf5c55
./autogen.sh
./configure --prefix=/usr --enable-module-schnorrsig --enable-experimental
make
make check
戻り値確認
Testsuite summary for libsecp256k1 0.3.2
============================================================================
# TOTAL: 3
# PASS:  3
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================

PASS:3であることを確認する

インストールコマンドを必ず実行する

sudo make install

Blst 0.3.13以下または「No such file or directory」の場合
cd $HOME/git/blst
git fetch --all --prune --recurse-submodules --tags
git checkout tags/v0.3.14
./build.sh
cd $HOME/git
git clone https://github.com/supranational/blst
cd blst
git checkout v0.3.14
./build.sh

設定ファイル作成

このボックスはすべてコピーして実行してください
cat > libblst.pc << EOF
prefix=/usr/local
exec_prefix=\${prefix}
libdir=\${exec_prefix}/lib
includedir=\${prefix}/include

Name: libblst
Description: Multilingual BLS12-381 signature library
URL: https://github.com/supranational/blst
Version: 0.3.14
Cflags: -I\${includedir}
Libs: -L\${libdir} -lblst
EOF

設定ファイルコピー

このボックスは1行ずつコピーして実行してください

sudo cp libblst.pc /usr/local/lib/pkgconfig/
sudo cp bindings/blst_aux.h bindings/blst.h bindings/blst.hpp  /usr/local/include/
sudo cp libblst.a /usr/local/lib
sudo chmod u=rw,go=r /usr/local/{lib/{libblst.a,pkgconfig/libblst.pc},include/{blst.{h,hpp},blst_aux.h}}

バージョン確認

cat /usr/local/lib/pkgconfig/libblst.pc | grep Version

Version 0.3.14

1-3. CNCLIバージョン確認(BPのみ)

CNCLIバージョン確認

cncli --version

cncli 6.7.0

cncli v6.6.0以下だった場合(クリックして開く)

CNCLIのアップデート

cd $HOME
cncli_release="$(curl -s https://api.github.com/repos/cardano-community/cncli/releases/latest | jq -r '.tag_name' | sed -e "s/^.\{1\}//")"
curl -sLJ https://github.com/cardano-community/cncli/releases/download/v${cncli_release}/cncli-${cncli_release}-ubuntu22-x86_64-unknown-linux-musl.tar.gz -o $HOME/cncli-${cncli_release}-x86_64-unknown-linux-musl.tar.gz
tar xzvf $HOME/cncli-${cncli_release}-x86_64-unknown-linux-musl.tar.gz -C $HOME/.cargo/bin/
rm $HOME/cncli-${cncli_release}-x86_64-unknown-linux-musl.tar.gz

バージョン確認

cncli --version

cncli v6.7.0

2. ノードアップデート

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

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

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

2-1. バイナリダウンロード

旧バイナリの削除

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/10.7.1/cardano-node-10.7.1-linux-amd64.tar.gz

解凍

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

バージョンの確認

$(find $HOME/git/cardano-node2 -type f -name "cardano-cli") version  
$(find $HOME/git/cardano-node2 -type f -name "cardano-node") version  
以下の戻り値を確認します。
cardano-cli 10.16.0.0 - linux-x86_64 - ghc-9.6  
git rev 045bc187a36ef0cbd236db902b85dd8f202fb059

cardano-node 10.7.1 - linux-x86_64 - ghc-9.6  
git rev 045bc187a36ef0cbd236db902b85dd8f202fb059

ノードの停止

sudo systemctl stop cardano-node

2-2. バイナリインストール

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

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

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

cardano-cli version
cardano-node version

以下の戻り値を確認します。

cardano-cli 10.16.0.0 - linux-x86_64 - ghc-9.6  
git rev 045bc187a36ef0cbd236db902b85dd8f202fb059

cardano-node 10.7.1 - linux-x86_64 - ghc-9.6  
git rev 045bc187a36ef0cbd236db902b85dd8f202fb059

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

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

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/10.7.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-cli) version  
$(./scripts/bin-path.sh cardano-node) version  

以下の戻り値を確認します。

cardano-cli 10.16.0.0 - linux-x86_64 - ghc-9.6  
git rev 045bc187a36ef0cbd236db902b85dd8f202fb059

cardano-node 10.7.1 - linux-x86_64 - ghc-9.6  
git rev 045bc187a36ef0cbd236db902b85dd8f202fb059

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

exit

ノードの停止

sudo systemctl stop cardano-node

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

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

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

cardano-cli version
cardano-node version

以下の戻り値を確認します。

cardano-cli 10.16.0.0 - linux-x86_64 - ghc-9.6  
git rev 045bc187a36ef0cbd236db902b85dd8f202fb059

cardano-node 10.7.1 - linux-x86_64 - ghc-9.6  
git rev 045bc187a36ef0cbd236db902b85dd8f202fb059

10.3.1以下からアップデートする場合はこちらも実施(クリックして開く)

snapshot-converterのダウンロード

cd $HOME/git/cardano-node2
wget -q https://github.com/IntersectMBO/cardano-node/releases/download/10.7.1/cardano-node-10.7.1-linux-amd64.tar.gz
解凍
tar zxvf cardano-node-10.7.1-linux-amd64.tar.gz ./bin/snapshot-converter

2-3. 設定ファイル更新

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

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/10.7.1/${NODE_CONFIG}-config.json -O ${NODE_CONFIG}-config.json
wget -q https://spojapanguild.net/node_config/10.7.1/${NODE_CONFIG}-checkpoints.json -O ${NODE_CONFIG}-checkpoints.json

10.1.4~からアップデートする場合はこちらも実施(クリックして開く)

BPのみ

起動スクリプト更新

PORT=`grep "PORT=" $NODE_HOME/startBlockProducingNode.sh`
b_PORT=${PORT#"PORT="}
echo "BPポートは ${b_PORT} です"

BPのポート番号が表示されることを確認します。

このボックスはすべてコピーして実行してください
cat > $NODE_HOME/startBlockProducingNode.sh << EOF 
#!/bin/bash
DIRECTORY=$NODE_HOME
PORT=${b_PORT}
HOSTADDR=0.0.0.0
TOPOLOGY=\${DIRECTORY}/${NODE_CONFIG}-topology.json
DB_PATH=\${DIRECTORY}/db
SOCKET_PATH=\${DIRECTORY}/db/socket
CONFIG=\${DIRECTORY}/${NODE_CONFIG}-config.json
KES=\${DIRECTORY}/kes.skey
VRF=\${DIRECTORY}/vrf.skey
CERT=\${DIRECTORY}/node.cert
/usr/local/bin/cardano-node +RTS -N --disable-delayed-os-memory-return -I0.1 -Iw300 -A32m -n4m -F1.5 -H2500M -RTS run --topology \${TOPOLOGY} --database-path \${DB_PATH} --socket-path \${SOCKET_PATH} --host-addr \${HOSTADDR} --port \${PORT} --config \${CONFIG} --shelley-kes-key \${KES} --shelley-vrf-key \${VRF} --shelley-operational-certificate \${CERT}
EOF

全ノード

DB更新

Mithrilインストール

cd $HOME/git
mithril_release="$(curl -s https://api.github.com/repos/input-output-hk/mithril/releases/latest | jq -r '.tag_name')"
wget https://github.com/input-output-hk/mithril/releases/download/${mithril_release}/mithril-${mithril_release}-linux-x64.tar.gz -O mithril.tar.gz

設定

tar zxvf mithril.tar.gz mithril-client
sudo cp mithril-client /usr/local/bin/mithril-client

パーミッション設定

sudo chmod +x /usr/local/bin/mithril-client

DLファイル削除

rm mithril.tar.gz mithril-client

バージョン確認

mithril-client -V

Mithril Githubのリリースノート内にあるmithril-client-cliのバージョンをご確認ください。

スナップショット復元

作業用TMUX起動

tmux new -s mithril

変数セット

export AGGREGATOR_ENDPOINT=https://aggregator.release-mainnet.api.mithril.network/aggregator
export GENESIS_VERIFICATION_KEY=$(wget -q -O - https://raw.githubusercontent.com/input-output-hk/mithril/main/mithril-infra/configuration/release-mainnet/genesis.vkey)
export ANCILLARY_VERIFICATION_KEY=$(wget -q -O - https://raw.githubusercontent.com/input-output-hk/mithril/main/mithril-infra/configuration/release-mainnet/ancillary.vkey)
export SNAPSHOT_DIGEST=latest

旧dbをバックアップしたい方はこちら

空き容量に関しての注意事項

DBをバックアップする場合、サーバーディスクの空き容量をご確認ください。 安定稼働のためには250GB以上の空き容量が必要です。

df -h /usr | awk '{print $4}'
Availが250GB以上あることを確認してください。

リネーム

mv $NODE_HOME/db/ $NODE_HOME/backup/db9/

ノードバージョンアップ後の作業

稼働に問題がないことが確認でき次第削除することをお勧めします。

rm -rf $NODE_HOME/backup/db9/

既存DBの削除

rm -rf $NODE_HOME/db

最新スナップショットDL

mithril-client cardano-db download \
  --download-dir $NODE_HOME \
  --include-ancillary \
  $SNAPSHOT_DIGEST

スナップショットダウンロード~解凍まで自動的に行われます。1/7~7/7が終了するまで待ちましょう。

DBスナップショットDL/解凍完了メッセージ

7/7 - Verifying the cardano db signature…
Cardano database snapshot '*' archives have been successfully unpacked. Immutable files have been successfully verified with Mithril.

tmux作業ウィンドウを終了します。

exit

2-4. DB更新

Mithrilインストール

cd $HOME/git
mithril_release="$(curl -s https://api.github.com/repos/input-output-hk/mithril/releases/latest | jq -r '.tag_name')"
wget https://github.com/input-output-hk/mithril/releases/download/${mithril_release}/mithril-${mithril_release}-linux-x64.tar.gz -O mithril.tar.gz

設定

tar zxvf mithril.tar.gz mithril-client
sudo cp mithril-client /usr/local/bin/mithril-client

パーミッション設定

sudo chmod +x /usr/local/bin/mithril-client

DLファイル削除

rm mithril.tar.gz mithril-client

バージョン確認

mithril-client -V

Mithril Githubのリリースノート内にあるmithril-client-cliのバージョンをご確認ください。

スナップショット復元

作業用TMUX起動

tmux new -s mithril

変数セット

export AGGREGATOR_ENDPOINT=https://aggregator.release-mainnet.api.mithril.network/aggregator
export GENESIS_VERIFICATION_KEY=$(wget -q -O - https://raw.githubusercontent.com/input-output-hk/mithril/main/mithril-infra/configuration/release-mainnet/genesis.vkey)
export ANCILLARY_VERIFICATION_KEY=$(wget -q -O - https://raw.githubusercontent.com/input-output-hk/mithril/main/mithril-infra/configuration/release-mainnet/ancillary.vkey)
export SNAPSHOT_DIGEST=latest

既存DBの削除

rm -rf $NODE_HOME/db

最新スナップショットDL

mithril-client cardano-db download \
  --download-dir $NODE_HOME \
  --include-ancillary \
  $SNAPSHOT_DIGEST

スナップショットダウンロード~解凍まで自動的に行われます。1/5~7/7が終了するまで待ちましょう。

DBスナップショットDL/解凍完了メッセージ

7/7 - Verifying the cardano db signature…
Cardano database snapshot '*' archives have been successfully unpacked. Immutable files have been successfully verified with Mithril.

tmux作業ウィンドウを終了します。

exit

2-5. サーバー再起動

作業フォルダリネーム

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

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

サーバーの再起動

sudo reboot

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

sudo journalctl --unit=cardano-node --follow

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

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

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

3. 依存関係作業

3-1. リレー/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

3-2. BPサービス確認

ブロック生成ステータス通知またはSPO Block Notifyを未導入(更新)していない方

5. サービスファイル作成・登録を再実行してください。(エイリアス設定は不要です)

SPOBlockNotify移行手順から新規導入または更新を実施してください。

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

  • cnclilog
  • leaderlog
  • validate
  • logmonitor
  • blocknotify(SPO Block Notifyを導入している場合)
cnclilogでMissing eta_v for block xxxxxx エラーが出る場合の対処法

cncliを再同期してください。

sudo systemctl stop cnode-cncli-sync.service
rm $NODE_HOME/guild-db/cncli/*
sudo systemctl restart cnode-cncli-sync.service
cnclilog
100% sync'dになるまでお待ち下さい。

3-3. 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
graph LR
    A[リレーサーバー] -->|cardano-cli| B[ローカルのホストマシン];

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

graph LR
    A[ローカルのホストマシン] -->|cardano-cli| B[エアギャップ];

ディレクトリ作成

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 10.16.0.0 - linux-x86_64 - ghc-9.6  
git rev 045bc187a36ef0cbd236db902b85dd8f202fb059

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

必要ライブラリ取得

cp /usr/local/lib/libsodium.so.23.3.0 $HOME/libsodium.so.23.3.0
cp /lib/libsecp256k1.so.2.0.2 $HOME/libsecp256k1.so.2.0.2

確認

ll $HOME/cardano-cli $HOME/libsodium.so.23.3.0 $HOME/libsecp256k1.so.2.0.2

戻り値確認

cardano-cli
libsecp256k1.so.2.0.2
libsodium.so.23.3.0

ファイル転送

USBを用いてcardano-clilibsodium.so.23.3.0libsecp256k1.so.2.0.2をエアギャップの$HOME/git/cardano-node2に移動します。

graph LR
    A[リレーサーバー] -->|cardano-cli / libsodium.so.23.3.0 / libsecp256k1.so.2.0.2| B[エアギャップ];

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

ディレクトリ作成

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ディレクトリにlibsodium.so.23.3.0libsecp256k1.so.2.0.2を配置
sudo cp $HOME/git/cardano-node2/libsodium.so.23.3.0 /usr/local/lib/
sudo cp $HOME/git/cardano-node2/libsecp256k1.so.2.0.2 /usr/local/lib/

権限設定

sudo chown root:root /usr/local/lib/libsodium.so.23.3.0
sudo chown root:root /usr/local/lib/libsecp256k1.so.2.0.2
sudo chmod 755 /usr/local/lib/libsodium.so.23.3.0
sudo chmod 755 /usr/local/lib/libsecp256k1.so.2.0.2

シンボリックリンク作成

cd /usr/local/lib

libsodium

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

libsecp256k1

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

リンカーの更新

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

依存関係確認

ldd /usr/local/bin/cardano-cli

戻り値確認

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 10.16.0.0 - linux-x86_64 - ghc-9.6  
git rev 045bc187a36ef0cbd236db902b85dd8f202fb059