コンテンツにスキップ

ノードアップデートマニュアル

概要

このガイドは ノードバージョン9.2.1に対応しています。最終更新日:2024年10月1日

Node CLI GHC Cabal CNCLI
9.2.1 9.4.1.0 8.10.7 3.8.1.0 6.3.0
  • よくお読みになって進めてください
  • 複数行のコードをコードボックスのコピーボタンを使用してコマンドラインに貼り付ける場合は、最後の行が自動実行されないため確認の上Enterを押してコードを実行してください。

主な変更点と新機能

■cardano-node v9.2.0/v9.2.1

  • ガバナンス関連コマンドの改良
  • CLIクエリのバグ修正
  • PlutusV3バグ修正
  • 証明書検証のパフォーマンス向上

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

バージョン DB再構築有無 設定ファイル更新有無 トポロジーファイル更新有無
8.9.4以下→9.2.1 あり 更新あり 更新あり
9.0.0以上→9.2.1 なし 更新なし 更新なし
  • 作業前にブロック生成スケジュールを確認し余裕のある作業をお願いします

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

1-1. システムアップデート

システムアップデート

sudo apt update -y && sudo apt upgrade -y

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

cabalパス確認

which cabal

正常戻り値 /home/user/.ghcup/bin/cabal

cabalバージョン確認

cabal --version

正常戻り値 cabal-install version 3.8.1.0

GHCバージョン確認

ghc --version

正常戻り値 The Glorious Glasgow Haskell Compilation System, version 8.10.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.11

各アプリのバージョン(戻り値)が異なる場合
戻り値が[/home/user/.local/bin/cabal]の場合

戻り値が[/home/user/.local/bin/cabal]の場合のみ以下を実行

パスを追加する

echo PATH=$PATH:$HOME/.ghcup/bin >> $HOME/.bashrc
source $HOME/.bashrc

旧cabalリネーム

cd $HOME/.local/bin/
mv cabal cabal_bk

cabal 3.6.2.0以下の場合

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

ghcup upgrade
ghcup install cabal 3.8.1.0
ghcup set cabal 3.8.1.0
cabalバージョン確認
cabal --version

以下の戻り値ならOK
cabal-install version 3.8.1.0
compiled using version 3.8.1.0 of the Cabal library

GHC 8.10.4以下の場合

GHC 8.10.4以下の場合のみ実行

ghcup upgrade
ghcup install ghc 8.10.7
ghcup set ghc 8.10.7
ghc --version

GHCのバージョンは「8.10.7」であればOK

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.10以下または「No such file or directory」の場合
cd $HOME/git/blst
git fetch --all --prune --recurse-submodules --tags
git checkout tags/v0.3.11
./build.sh
cd $HOME/git
git clone https://github.com/supranational/blst
cd blst
git checkout v0.3.11
./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.11
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.11

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

CNCLIバージョン確認

cncli --version

以下の戻り値ならOK
cncli 6.3.0

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

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-gnu.tar.gz -o $HOME/cncli-${cncli_release}-x86_64-unknown-linux-gnu.tar.gz
tar xzvf $HOME/cncli-${cncli_release}-x86_64-unknown-linux-gnu.tar.gz -C $HOME/.cargo/bin/
rm $HOME/cncli-${cncli_release}-x86_64-unknown-linux-gnu.tar.gz

バージョン確認

cncli --version

cncli 6.3.0になったことを確認する

2.ノードアップデート

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

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

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

どちらも同じソースコードからビルドされたバイナリファイルなので安定性・安全面に差異はございません。お好みの方法でインストールして頂けます。

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

現在インストール中のノードバージョンを控える

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

旧バイナリを削除する

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

バイナリファイルをダウンロードする

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

解凍する

tar zxvf cardano-node-9.2.1-linux.tar.gz ./bin/cardano-node ./bin/cardano-cli

バージョン確認

$(find $HOME/git/cardano-node2 -type f -name "cardano-cli") version  
$(find $HOME/git/cardano-node2 -type f -name "cardano-node") version  
以下の戻り値を確認する

cardano-cli 9.4.1.0 - linux-x86_64 - ghc-8.10
git rev 5d3da8ac771ee5ed424d6c78473c11deabb7a1f3

cardano-node 9.2.1 - linux-x86_64 - ghc-8.10
git rev 5d3da8ac771ee5ed424d6c78473c11deabb7a1f3

ノードをストップする

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

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

現在インストール中のノードバージョンを控える

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/9.2.1
cabal configure --with-compiler=ghc-8.10.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 9.4.1.0 - linux-x86_64 - ghc-8.10
git rev 5d3da8ac771ee5ed424d6c78473c11deabb7a1f3

cardano-node 9.2.1 - linux-x86_64 - ghc-8.10
git rev 5d3da8ac771ee5ed424d6c78473c11deabb7a1f3

ビルド用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
cd $HOME/git/cardano-node2
sudo cp $(./scripts/bin-path.sh cardano-node) /usr/local/bin/cardano-node

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

cardano-cli version
cardano-node version

以下の戻り値を確認する

cardano-cli 9.4.1.0 - linux-x86_64 - ghc-8.10
git rev 5d3da8ac771ee5ed424d6c78473c11deabb7a1f3

cardano-node 9.2.1 - linux-x86_64 - ghc-8.10
git rev 5d3da8ac771ee5ed424d6c78473c11deabb7a1f3

ノードバージョン8.12.1以下からバージョンアップする場合はこちらも実施

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

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

新ファイルダウンロード

BPとリレーで実行するコマンドが異なるので、対象サーバーごとにタブを切り替えてください

cd $NODE_HOME
wget --no-use-server-timestamps -q https://book.play.dev.cardano.org/environments/${NODE_CONFIG}/conway-genesis.json -O ${NODE_CONFIG}-conway-genesis.json
wget --no-use-server-timestamps -q https://book.play.dev.cardano.org/environments/${NODE_CONFIG}/config.json -O ${NODE_CONFIG}-config.json
cd $NODE_HOME
wget --no-use-server-timestamps -q https://book.play.dev.cardano.org/environments/${NODE_CONFIG}/conway-genesis.json -O ${NODE_CONFIG}-conway-genesis.json
wget --no-use-server-timestamps -q https://book.play.dev.cardano.org/environments/${NODE_CONFIG}/config-bp.json -O ${NODE_CONFIG}-config.json

設定ファイルを書き換える

sed -i ${NODE_CONFIG}-config.json \
    -e '2i \  "SnapshotInterval": 86400,' \
    -e 's!"AlonzoGenesisFile": "alonzo-genesis.json"!"AlonzoGenesisFile": "'${NODE_CONFIG}'-alonzo-genesis.json"!' \
    -e 's!"ByronGenesisFile": "byron-genesis.json"!"ByronGenesisFile": "'${NODE_CONFIG}'-byron-genesis.json"!' \
    -e 's!"ShelleyGenesisFile": "shelley-genesis.json"!"ShelleyGenesisFile": "'${NODE_CONFIG}'-shelley-genesis.json"!' \
    -e 's!"ConwayGenesisFile": "conway-genesis.json"!"ConwayGenesisFile": "'${NODE_CONFIG}'-conway-genesis.json"!' \
    -e 's!"TraceBlockFetchDecisions": false!"TraceBlockFetchDecisions": true!' \
    -e 's!"rpKeepFilesNum": 10!"rpKeepFilesNum": 30!' \
    -e 's!"rpMaxAgeHours": 24!"rpMaxAgeHours": 48!' \
    -e '/"defaultScribes": \[/a\    \[\n      "FileSK",\n      "'${NODE_HOME}'/logs/node.json"\n    \],' \
    -e '/"setupScribes": \[/a\    \{\n      "scFormat": "ScJson",\n      "scKind": "FileSK",\n      "scName": "'${NODE_HOME}'/logs/node.json"\n    \},' \
    -e "s/127.0.0.1/0.0.0.0/g"

注意

8.1.2/8.7.3からアップデートする場合のみ ここを開いて実施

この緑枠内はリレーのみで実施

トポロジーアップデータCron解除

crontab -l >crontab.txt
sed -i '/topologyUpdater.sh/d' crontab.txt
crontab crontab.txt

relay-topology_pull.sh削除

rm $NODE_HOME/relay-topology_pull.sh

トポロジー設定

新トポロジーファイル項目解説

項目 説明
bootstrapPeers Genesis lite bootstrap用ノードを記入する
localRoots 常にHot接続を固定したい接続先を記入
accessPoints 接続先グループ
advertise PeerSharing伝播フラグ
trustable 信頼ノード設定フラグ
valency 接続数(接続先グループ内に記載した数と一致させる必要があります)
publicRoots IOGリレーなどの公開リレー接続先
useLedgerAfterSlot 初期同期の際に台帳Peer検索を有効にするスロット番号

以下、各ノードごとのタブをクリックして実施してください

各タブ内コード実行前に +をクリックして注釈を確認してください。

リレーノードトポロジーファイル作成手順

トポロジーファイルをP2P-bootstrapPeersフォーマットに書き換える。
すでにP2P-bootstrapPeersフォーマットで運用しているリレーでは実施する必要はございません。

自身のリレーノードから接続を固定するノードを指定します。(BPやリレーノード)
「xxx.xxx.xxx.xxx」は接続先のパブリックIP(静的)アドレスと接続先ノードポート番号に置き換えて下さい。

cat > $NODE_HOME/${NODE_CONFIG}-topology.json << EOF
{
"bootstrapPeers": [
    {
    "address": "backbone.cardano.iog.io",
    "port": 3001
    },
    {
    "address": "backbone.mainnet.emurgornd.com",
    "port": 3001
    },
    {
    "address": "backbone.mainnet.cardanofoundation.org",
    "port": 3001
    }
],
"localRoots": [
    {
    "accessPoints": [
        {
        "address": "BPのIP",#(1)!
        "port": 00000 #(2)!
        }
    ],
        "advertise": false,#(5)!
        "trustable": true,
        "valency": 1
    },
    {
    "accessPoints": [
        {
        "address": "リレー2のIP",#(3)!
        "port": 6000 #(4)!
        }
    ],
        "advertise": true,
        "trustable": true,
        "valency": 1
    }
],
"publicRoots": [
    {
    "accessPoints": [],
    "advertise": false
    }
],
"useLedgerAfterSlot": 110332824
}
EOF

  1. BPのIPアドレスまたはDNSアドレスに置き換えてください
  2. BPのポートに置き換えてください
  3. リレー2のIPアドレスまたはDNSアドレスに置き換えてください
  4. リレー2他リレーのポートに置き換えてください
  5. accessPointsにBPを指定する時は必ずadvertisefalseにしてください

cat > $NODE_HOME/${NODE_CONFIG}-topology.json << EOF
{
"bootstrapPeers": [
    {
    "address": "backbone.cardano.iog.io",
    "port": 3001
    },
    {
    "address": "backbone.mainnet.emurgornd.com",
    "port": 3001
    },
    {
    "address": "backbone.mainnet.cardanofoundation.org",
    "port": 3001
    }
],
"localRoots": [
    {
    "accessPoints": [
        {
        "address": "BPのIP",#(1)!
        "port": 00000 #(2)!
        }
    ],
        "advertise": false,#(5)!
        "trustable": true,
        "valency": 1
    },
    {
    "accessPoints": [
        {
        "address": "リレー1のIP",#(3)!
        "port": 6000 #(4)!
        }
    ],
        "advertise": true,
        "trustable": true,
        "valency": 1
    }
],
"publicRoots": [
    {
    "accessPoints": [],
    "advertise": false
    }
],
"useLedgerAfterSlot": 110332824
}
EOF

  1. BPのIPアドレスまたはDNSアドレスに置き換えてください
  2. BPのポートに置き換えてください
  3. リレー1のIPアドレスまたはDNSアドレスに置き換えてください
  4. リレー1他リレーのポートに置き換えてください
  5. accessPointsにBPを指定する時は必ずadvertisefalseにしてください
BPノードトポロジーファイル作成手順

すでにこのフォーマットで運用されている場合は実施する必要はございません。

BPではbootstrapPeersPeerSharingを無効にします

cat > $NODE_HOME/${NODE_CONFIG}-topology.json << EOF
{
"bootstrapPeers": null,
"localRoots": [
    {
    "accessPoints": [
        {
        "address": "リレー1のIP",#(1)!
        "port": 6000 #(2)!
        },
        {
        "address": "リレー2のIP",#(3)!
        "port": 6000 #(4)!
        }
    ],
    "advertise": false,#(8)!
    "trustable": true,
    "valency": 2 #(5)!
    }
],
"publicRoots": [],#(6)!
"useLedgerAfterSlot": -1 #(7)!
}
EOF

  1. リレー1のIPアドレスまたはDNSアドレスに置き換えてください
  2. リレー1のポートに置き換えてください
  3. リレー2のIPアドレスまたはDNSアドレスに置き換えてください
  4. リレー2のポートに置き換えてください
  5. 固定接続ピアの数を指定してください
  6. "publicRoots":を空にしてください
  7. -1を指定することで台帳から接続先を取得しないBPモードになります
  8. ここではadvertisefalseにしてください

mainnet-topology.json構文チェック

cat $NODE_HOME/mainnet-topology.json | jq .

mainnet-topology.jsonの中身がそのまま表示されます

json記法に誤りがあるため以下のエラーが表示されます。mainnet-topology.jsonを開いて{} [] ,が正しい位置にあるかご確認ください。

parse error: Expected another key-value pair at line x, column x

トポロジーファイルを再読み込みする

cnreload

ダイナミックP2Pを有効にしている場合、トポロジーファイル変更によるノード再起動は不要になりました。

DB更新

Mithirlインストール

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 NETWORK=mainnet
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 SNAPSHOT_DIGEST=latest

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

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

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

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

dbをリネームする

mv $NODE_HOME/db/ $NODE_HOME/backup/db8-1-2/

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

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

rm -rf $NODE_HOME/backup/db8-1-2/

既存DB削除

rm -rf $NODE_HOME/db

最新スナップショットDL

mithril-client cardano-db download --download-dir $NODE_HOME latest

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

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

5/5 - Verifying the cardano db signature…
Cardano db 'xxxxx' has been unpacked and successfully checked against Mithril multi-signature contained in the certificate.
('xxxxx'は作業時期によって変わります。下の文字列は無視して大丈夫です)

tmux作業ウィンドウを終了する

exit

2-3.サーバー再起動

作業フォルダリネーム

前バージョンで使用していたバイナリフォルダをリネームし、バックアップとして保持します。最新バージョンを構築したフォルダを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 | grep -e 'Progress:' -e 'Chain extended, new tip:'

戻り値にChain extended, new tip: xxxxxxxx at slot xxxxxxの表示があれば同期完了。無ければエラーになっている。

3. 依存関係作業

3-1.リレー/BP共通

gLiveView更新

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

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,40s!UPDATE_CHECK="Y"!UPDATE_CHECK="N"!'

gliveバージョン確認

glive

Koios gLiveView v1.30.3

8.1.2/8.7.3からアップデートする場合はこちらも実施必須

リレー/BP共通

環境変数にリロード用エイリアスを作成(更新)する

このボックスはすべてコピーして実行してください
kill_alias=$(cat $HOME/.bashrc | grep cnreload)
if [ -n "$kill_alias" ]; then
    sed -i 's/alias cnreload="kill -SIGHUP $(pidof cardano-node)"/alias cnreload="pkill -HUP cardano-node"/g' $HOME/.bashrc
else
    echo alias cnreload='"pkill -HUP cardano-node"' >> $HOME/.bashrc
fi
source $HOME/.bashrc

Grafanaダッシュボードパネル更新

独自カスタマイズしている方

Grafanaダッシュボードを独自カスタマイズしている方は以下のメトリクス追加を推奨します。

  • cardano_node_metrics_connectionManager_incomingConns
  • cardano_node_metrics_connectionManager_outgoingConns
  • cardano_node_metrics_peerSelection_hot
  • cardano_node_metrics_peerSelection_warm
  • cardano_node_metrics_peerSelection_cold

既存のダッシュボードを削除する

  1. Grafanaを開き左メニューの「Dashboards」から「SJG: Cardano-Node」にチェックを入れてDeleteボタンをクリック
  2. 確認ポップアップにDeleteを入力しDeleteをクリック
  3. Grafanaダッシュボード設定の11~15を実施する

3-2.BPのみ

ライブラリ更新

cd $NODE_HOME/scripts
wget https://raw.githubusercontent.com/cardano-community/guild-operators/master/scripts/cnode-helper-scripts/cntools.library -O cntools.library

cncli.sh更新

cd $NODE_HOME/scripts
wget https://raw.githubusercontent.com/cardano-community/guild-operators/master/scripts/cnode-helper-scripts/cncli.sh -O ./cncli.sh

pool_hex=`cat $NODE_HOME/pool.id`
pool_bech32=`cat $NODE_HOME/pool.id-bech32`
printf "\nプールID(hex)は \e[32m${pool_hex}\e[m です\n\n"
printf "\nプールID(bech32)は \e[32m${pool_bech32}\e[m です\n\n"
sed -i $NODE_HOME/scripts/cncli.sh \
-e '1,30s!#POOL_ID=""!POOL_ID="'${pool_hex}'"!' \
-e '1,30s!#POOL_ID_BECH32=""!POOL_ID_BECH32="'${pool_bech32}'"!' \
-e '1,30s!#POOL_VRF_SKEY=""!POOL_VRF_SKEY="${CNODE_HOME}/vrf.skey"!' \
-e '1,30s!#POOL_VRF_VKEY=""!POOL_VRF_VKEY="${CNODE_HOME}/vrf.vkey"!'

ブロックログサービスを再起動する

sudo systemctl restart cnode-cncli-sync.service

3-3.BPサービス確認

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

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

SPO Block Notify移行マニュアルから新規導入または更新を実施してください。

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になるまでお待ち下さい

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

SFTP機能ソフト導入

R-loginの転送機能が遅いので、大容量ファイルをダウン・アップロードする場合は、SFTP接続可能なソフトを使用すると効率的です。(FileZilaなど)
ファイル転送に便利なSFTP機能ソフトの導入手順はこちら

4-1.バイナリファイルコピー

リレーサーバーで以下を実行する

sudo cp $(find $HOME/git/cardano-node -type f -name "cardano-cli") ~/cardano-cli

リレーサーバーで以下を実行する

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

SFTP機能ソフト(Filezillaなど)で転送元サーバーに接続し、以下をダウンロードする

  • /home/usr/cardano-cli

をローカルパソコンにダウンロードします
(エアギャップUbuntuとの共有フォルダ)


エアギャップマシンにファイルを入れる

  • $HOME/git/cardano-node2/ にcardano-cliを入れる
    (cardano-node2が無ければ作成する)

4-2.インストール

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

cardano-cliをシステムフォルダへコピーする

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

4-3.バージョン確認

cardano-cli version

以下の戻り値を確認する

cardano-cli 9.4.1.0 - linux-x86_64 - ghc-8.10
git rev 5d3da8ac771ee5ed424d6c78473c11deabb7a1f3

確認

エアギャップではcardano-nodeは使用しないため転送してもしなくてもOKです。