Musashiテストネットプールのセットアップ
このガイドでは、DingoノードでMusashiテストネットのステークプールを2つのセクションに分けてセットアップします:
- Dingoノードのセットアップ。
- Musashiテストネットプールの登録。
⚠️ MusashiはLeiosのプロトタイプテストネットです。随時リセット(リスピン)され、リスピンのたびに新しいMusashi設定を含むDingoリリースが必要になります。始める前に、DingoのリリースノートでMusashiとの互換性を確認してください。
セクション1 - Dingoノードのセットアップ
Section titled “セクション1 - Dingoノードのセットアップ”✅ このガイドは、x86-64(amd64)またはARM64(aarch64)マシン上のsystemdを使用する一般的なLinux環境を前提としています。必要に応じてコマンドとパスを調整してください。
ステップ1 - 環境の設定
Section titled “ステップ1 - 環境の設定”プールのファイル用のディレクトリを作成し、cardano-cliがノードに接続するために使用する変数を設定します。
変数を.bashrcに追加して読み込みます:
cat <<'EOF' >> ~/.bashrcexport DINGO_HOME=~/dingo-leios-testnetexport CARDANO_NODE_NETWORK_ID=164export CARDANO_NODE_SOCKET_PATH="$DINGO_HOME/dingo.socket"EOFsource ~/.bashrc💡
CARDANO_NODE_NETWORK_IDを設定すると、cardano-cliは--testnet-magicフラグなしでMusashi(ネットワークマジック164)と通信します。
作業ディレクトリを作成します:
mkdir -p "$DINGO_HOME"ブロックプロデューサーには正確な時刻が必要です。chronyをインストールして有効化します:
sudo apt install -y chronysudo systemctl enable --now chrony以下を実行して確認できます:
echo $DINGO_HOME $CARDANO_NODE_NETWORK_ID $CARDANO_NODE_SOCKET_PATH
ステップ2 - Dingoバイナリのダウンロード
Section titled “ステップ2 - Dingoバイナリのダウンロード”Dingoリリースページから最新リリースをダウンロードします。
ダウンロードするアーキテクチャを設定します。DingoはLinux向けにamd64とarm64のビルドを公開しています:
case "$(uname -m)" in x86_64) DINGO_ARCH=amd64 ;; aarch64|arm64) DINGO_ARCH=arm64 ;; *) echo "Unsupported architecture: $(uname -m)" ;;esacecho $DINGO_ARCH次に、リリースをダウンロードして展開します:
cd $DINGO_HOMEwget https://github.com/blinklabs-io/dingo/releases/download/v0.88.0/dingo-v0.88.0-linux-$DINGO_ARCH.tar.gz -O - | tar -xzバイナリのバージョンを確認してから、システム全体からアクセスできるように/usr/local/bin/にコピーします:
./dingo versionsudo cp $DINGO_HOME/dingo /usr/local/bin/✅
which dingoを実行して、バイナリがコピーされたことを確認できます
ステップ3 - Leios Cardano-CLIバイナリのダウンロード
Section titled “ステップ3 - Leios Cardano-CLIバイナリのダウンロード”Musashiには、ネットワークに対応するLeiosプロトタイプリリースのcardano-cliが必要です。ネットワークのバージョンは、Musashiのconfig.jsonのMinNodeVersionフィールドで確認できます。たとえば、11.1.0.164-prototype-2026w42はouroboros-leiosリリースページのrc-2026w42リリースに対応します。
ディレクトリを作成して移動します:
mkdir -p "$DINGO_HOME/cli" && cd "$DINGO_HOME/cli"LeiosリリースのLinuxビルドの名前はx86_64とaarch64です。リリースタグとアーキテクチャを設定し、アーカイブとそのチェックサムをダウンロードします:
LEIOS_RELEASE=rc-2026w42LEIOS_ARCH=$(uname -m)[ "$LEIOS_ARCH" = arm64 ] && LEIOS_ARCH=aarch64wget https://github.com/input-output-hk/ouroboros-leios/releases/download/$LEIOS_RELEASE/cardano-node-leios-$LEIOS_ARCH-linux.tar.gzwget https://github.com/input-output-hk/ouroboros-leios/releases/download/$LEIOS_RELEASE/cardano-node-leios-$LEIOS_ARCH-linux.sha256sha256sum -c cardano-node-leios-$LEIOS_ARCH-linux.sha256tar -xzf cardano-node-leios-$LEIOS_ARCH-linux.tar.gz✅
sha256sumはcardano-node-leios-x86_64-linux.tar.gz: OK(ARM64ではaarch64)と表示するはずです
cardano-cliを/usr/local/binに移動し、バージョンを確認してから、ダウンロードしたファイルを削除します:
sudo mv bin/cardano-cli /usr/local/bin/cardano-clicardano-cli --versioncd $DINGO_HOMErm -rf cliステップ4 - ネットワークファイルのダウンロード
Section titled “ステップ4 - ネットワークファイルのダウンロード”DingoにはMusashi向けのCardanoネットワーク設定(genesisファイルとconfig.json)が組み込まれているため、実行にこれらのファイルは必要ありません。ただし、このガイドの後半でcardano-cliがShelley genesisファイルを使用し、Dingoにはトポロジーファイルが必要です。
configディレクトリを作成し、ファイルをダウンロードします:
mkdir -p "$DINGO_HOME/config" && cd "$DINGO_HOME/config"wget https://book.play.dev.cardano.org/environments-pre/leios/shelley-genesis.jsonwget https://book.play.dev.cardano.org/environments-pre/leios/topology.jsonwget https://book.play.dev.cardano.org/environments-pre/leios/peer-snapshot.jsonダウンロードしたトポロジーはMusashiのブートストラップリレーに接続し、peer-snapshot.jsonを使用して追加のピアを見つけます。同期にはこれで十分です。
💡 ヒント: Musashiの設定ファイルはMusashi環境ページに掲載されています。
任意: 知っているピアの追加
他のMusashiプールのリレーをローカルルートとして追加することもできます。Kleioscan Musashiプールページで確認してください:

SPO仲間のプールをいくつかクリックし、パブリックIPとポートをコピー📝します:

次に、それらをtopology.jsonのlocalRootsセクションに追加します:
nano $DINGO_HOME/config/topology.json3つのプールを含むlocalRootsセクションの例:
"localRoots": [ { "accessPoints": [ { "address": "RELAY_1_ADDRESS", "port": RELAY_1_PORT }, { "address": "RELAY_2_ADDRESS", "port": RELAY_2_PORT }, { "address": "RELAY_3_ADDRESS", "port": RELAY_3_PORT } ], "advertise": false, "trustable": false, "valency": 3 } ],RELAY_*プレースホルダーをKleioscanからコピーしたアドレスとポートに置き換え、valencyを追加したリレーの数に設定してください。ファイルのその他の部分はダウンロードしたままにしてください。useLedgerAfterSlotはネットワークがリスピンされると変わります。
ステップ5 - dingo.yaml設定ファイルの作成
Section titled “ステップ5 - dingo.yaml設定ファイルの作成”設定ディレクトリとデータベースディレクトリを作成します:
sudo mkdir -p /etc/dingomkdir -p $DINGO_HOME/.dingodingo.yamlファイルを作成します:
$DINGO_HOME変数は自動的にホームディレクトリのパスに展開されます。
sudo bash -c "cat <<EOF > /etc/dingo/dingo.yaml# Global data directory for both blob and metadata storage plugins.# Can be overridden with CARDANO_DATABASE_PATH or --data-dir.databasePath: \"$DINGO_HOME/.dingo\"
# Networknetwork: \"musashi\"relayPort: 3010socketPath: \"$DINGO_HOME/dingo.socket\"
# Path to the topology configuration file for Cardano nodetopology: \"$DINGO_HOME/config/topology.json\"
# Mempool: 25 MiB, the Leios size. Dingo v0.88.0 keeps the 1 MiB# default on Musashi, which fills and expires transactions.plugins: mempool: config: capacity: 26214400EOF"💡
plugins.mempoolブロックは、mempoolをDingoのデフォルトの1 MiBから、DingoがLeiosで使う25 MiBに引き上げます。1 MiBではMusashiでmempoolが満杯になり、トランザクションが取り込まれる前に期限切れになります。
以下を実行してdingo.yamlファイルを表示し、確認できます:
cat /etc/dingo/dingo.yaml💡 ヒント: ポート3010が開いていることを確認してください。
sudo ufw allow 3010/tcp
ステップ6 - dingo.serviceユニットファイルの作成
Section titled “ステップ6 - dingo.serviceユニットファイルの作成”systemdサービスファイルを作成します。YOUR_USERをLinuxのユーザー名(echo $USER)に置き換えてください:
cat <<ENDFILE | sudo tee /etc/systemd/system/dingo.service > /dev/null[Unit]Description=Dingo NodeAfter=network-online.target
[Service]Type=simpleRestart=on-failureRestartSec=10User=YOUR_USERExecStart=/usr/local/bin/dingo serve --config /etc/dingo/dingo.yamlSyslogIdentifier=dingoTimeoutStopSec=5
[Install]WantedBy=multi-user.targetENDFILE以下を実行してdingo.serviceファイルを表示し、確認できます:
cat /etc/systemd/system/dingo.serviceステップ7 - サービスの有効化と開始
Section titled “ステップ7 - サービスの有効化と開始”起動時にサービスが実行されるように有効化し、すぐに開始します:
sudo systemctl daemon-reloadsudo systemctl enable dingo.servicesudo systemctl start dingo.serviceステップ8 - ステータスの確認
Section titled “ステップ8 - ステータスの確認”サービスが実行中であることを確認します:
sudo systemctl status dingo.serviceログをリアルタイムで追跡するには:
sudo journalctl -u dingo -fエラーが発生した場合に最近のログを確認するには:
sudo journalctl -u dingo -n 50 --no-pager同期の進捗を確認します。syncProgressが100.00になると、ノードの同期は完了です:
cardano-cli query tipおめでとうございます。Musashiテストネットプールの登録セクションに進むことができます
Section titled “おめでとうございます。Musashiテストネットプールの登録セクションに進むことができます”セクション2 - Musashiテストネットプールの登録
Section titled “セクション2 - Musashiテストネットプールの登録”先に進む前に、ノードが完全に同期していることを確認してください。
cardano-cli query tipで"syncProgress": "100.00"と表示される必要があります。
このセクションのコマンドはdijkstra era(時代)を使用します。eraはcardano-cli query tipのeraフィールドで確認してください。
ステップ1 - keysフォルダーの作成
Section titled “ステップ1 - keysフォルダーの作成”プールのキーと証明書ファイル用にkeysフォルダーを作成し、そのフォルダーに移動します。これらのキーはプールを管理するものなので、このフォルダーをバックアップしてください。
mkdir -p "$DINGO_HOME/keys" && cd "$DINGO_HOME/keys"ステップ2 - 支払いキーとステークキーの作成
Section titled “ステップ2 - 支払いキーとステークキーの作成”支払いキーを作成します:
cardano-cli dijkstra address key-gen \ --verification-key-file payment.vkey \ --signing-key-file payment.skeyステークキーを作成します:
cardano-cli dijkstra stake-address key-gen \ --verification-key-file stake.vkey \ --signing-key-file stake.skeyステップ3 - 支払いアドレスの作成と入金
Section titled “ステップ3 - 支払いアドレスの作成と入金”支払いアドレスを作成し、payment.addrに保存します:
cardano-cli dijkstra address build \ --payment-verification-key-file payment.vkey \ --stake-verification-key-file stake.vkey \ --out-file payment.addr支払いアドレスを表示してコピーします:
cat payment.addr; echoMusashi Faucetにアクセスし、1つ目のフォーム(address)にアドレスを貼り付け、reCAPTCHAのチェックボックスにチェックを入れて送信します。Faucetは10,000 test adaを送金します。これで500 adaのプールデポジット、2 adaのステークアドレスデポジット、誓約(pledge)、手数料をまかなえます。

test adaが届いたことを確認します。UTxOエントリが1つ表示されるはずです:
cardano-cli dijkstra query utxo --address "$(cat payment.addr)"ステップ4 - ノード運用キーの作成
Section titled “ステップ4 - ノード運用キーの作成”コールドキー、KESキー、VRFキーを作成します。
コールドキー(プールのID)
cardano-cli dijkstra node key-gen \ --cold-verification-key-file cold.vkey \ --cold-signing-key-file cold.skey \ --operational-certificate-issue-counter-file opcert.counter⚠️ このテストネットガイドでは、簡略化のためにノード上でコールドキーを作成します。メインネットでは、コールドキーをオフラインのマシンで作成して保管してください。
KESキー(定期的にローテーションするホットキー)
cardano-cli dijkstra node key-gen-KES \ --verification-key-file kes.vkey \ --signing-key-file kes.skeyVRFキー(ブロック生成スロットの獲得に使用)
cardano-cli dijkstra node key-gen-VRF \ --verification-key-file vrf.vkey \ --signing-key-file vrf.skeyステップ5 - BLSキーの作成
Section titled “ステップ5 - BLSキーの作成”BLSキーは、プールがLeiosのエンドーサーブロックに投票し、認証するために使用するキーです。BLSキーがないと、ステップ9のプール登録証明書を作成できません。
cardano-cli dijkstra node key-gen-BLS \ --verification-key-file bls.vkey \ --signing-key-file bls.skey✅
jq -r .type bls.vkeyはBlsVerificationKey_bls12-381-BLS-Signature-Minimal-Signature-Sizeと表示するはずです
ステップ6 - 運用証明書の作成
Section titled “ステップ6 - 運用証明書の作成”現在のKES期間を確認します:
slotsPerKESPeriod=$(jq -r '.slotsPerKESPeriod' "$DINGO_HOME/config/shelley-genesis.json")slotNo=$(cardano-cli query tip | jq -r '.slot')kesPeriod=$(( slotNo / slotsPerKESPeriod ))echo $kesPeriod運用証明書node.certを作成します:
cardano-cli dijkstra node issue-op-cert \ --kes-verification-key-file kes.vkey \ --cold-signing-key-file cold.skey \ --operational-certificate-issue-counter-file opcert.counter \ --kes-period "$kesPeriod" \ --out-file node.certステップ7 - プールのメタデータの作成
Section titled “ステップ7 - プールのメタデータの作成”以下の値をプールの情報に合わせて更新してください。
📝 tickerは3〜5文字にする必要があります 📝 descriptionは255文字以内にする必要があります。
cat > meta.json << EOF{"name": "MyPoolName","description": "My pool description","ticker": "ABC","homepage": "https://pool-Website.com"}EOFメタデータファイルのハッシュを計算します。ハッシュはpoolMetaDataHash.txtに保存されます:
cardano-cli dijkstra stake-pool metadata-hash \ --pool-metadata-file meta.json \ --out-file poolMetaDataHash.txtステップ8 - メタデータのホスティング
Section titled “ステップ8 - メタデータのホスティング”プール登録に含めるメタデータURLは最大128文字です。すでに自分のWebサイトでメタデータをホストしている場合は、以下のMETADATA_URLにそのURLを設定し、GitHubの手順をスキップしてください。それ以外の場合は、GitHub Pagesで無料でホストできます:
-
GitHubにサインインし、
poolという名前の新しいpublicリポジトリを作成します。 -
リポジトリでAdd file → Upload filesを選択し、
meta.jsonをアップロードして、mainブランチにコミットします。 -
Settings → Pagesを開きます。Build and deploymentで、SourceをDeploy from a branchに設定し、
mainブランチと/ (root)フォルダーを選択して、Saveを選択します。
-
1〜2分後、メタデータは
https://YOUR_GITHUB_USERNAME.github.io/pool/meta.jsonで公開されます。
URLを設定し、アクセスできることと128文字以内であることを確認します:
METADATA_URL=https://YOUR_GITHUB_USERNAME.github.io/pool/meta.jsoncurl -s -L "$METADATA_URL"echo -n "$METADATA_URL" | wc -cホストしたファイルのハッシュがローカルファイルと同じであることを確認します。2つのコマンドは同じハッシュを表示するはずです:
cardano-cli dijkstra stake-pool metadata-hash --pool-metadata-file <(curl -s -L "$METADATA_URL")cat poolMetaDataHash.txt; echo⚠️
cardano-cliがハッシュを計算したファイルをそのままアップロードしてください。アップロード後にGitHub上で編集するとハッシュが変わり、登録したハッシュと一致しなくなるため、ウォレットやエクスプローラーがメタデータを無視します。
ステップ9 - ステークアドレスとプールの登録
Section titled “ステップ9 - ステークアドレスとプールの登録”ステークアドレス証明書とプール証明書の両方を作成し、1つのトランザクションで送信します。
ステークアドレス登録証明書:
cardano-cli dijkstra stake-address registration-certificate \ --stake-verification-key-file stake.vkey \ --key-reg-deposit-amt "$(cardano-cli dijkstra query protocol-parameters | jq .stakeAddressDeposit)" \ --out-file stake-reg.certプール登録証明書:
RELAY_IPに、他のノードがこのノードに接続するために使用するパブリックIPv4アドレスを設定します。メタデータURLには、ステップ8で設定したMETADATA_URLを使用します。
RELAY_IP=YOUR_PUBLIC_IP次に証明書を作成します。以下の値は、誓約1,000 test ada、固定費170 test ada、マージン5%を設定します。
cardano-cli dijkstra stake-pool registration-certificate \ --cold-verification-key-file cold.vkey \ --vrf-verification-key-file vrf.vkey \ --bls-signing-key-file bls.skey \ --pool-pledge 1000000000 \ --pool-cost 170000000 \ --pool-margin 0.05 \ --pool-reward-account-verification-key-file stake.vkey \ --pool-owner-stake-verification-key-file stake.vkey \ --pool-relay-ipv4 "$RELAY_IP" \ --pool-relay-port 3010 \ --metadata-url "$METADATA_URL" \ --metadata-hash $(cat poolMetaDataHash.txt) \ --out-file pool-reg.certトランザクションの作成、署名、送信:
--tx-inに使用するUTxOを取得します。Faucetからの送金直後は、アドレスにUTxOが1つだけあります:
TXIN=$(cardano-cli dijkstra query utxo --address "$(cat payment.addr)" | jq -r 'keys[0]')トランザクションを作成します:
cardano-cli dijkstra transaction build \ --tx-in "$TXIN" \ --change-address "$(cat payment.addr)" \ --certificate-file stake-reg.cert \ --certificate-file pool-reg.cert \ --out-file pool-reg-tx.rawトランザクションに署名します:
cardano-cli dijkstra transaction sign \ --tx-body-file pool-reg-tx.raw \ --signing-key-file payment.skey \ --signing-key-file stake.skey \ --signing-key-file cold.skey \ --out-file pool-reg-tx.signedトランザクションを送信します:
cardano-cli dijkstra transaction submit \ --tx-file pool-reg-tx.signedステップ10 - プールへのステークの委任
Section titled “ステップ10 - プールへのステークの委任”誓約は、自分のステークを自分のプールに委任して初めてカウントされます。委任証明書を作成し、別のトランザクションで送信します。
委任証明書を作成します:
cardano-cli dijkstra stake-address stake-delegation-certificate \ --stake-verification-key-file stake.vkey \ --cold-verification-key-file cold.vkey \ --out-file delegation.cert登録トランザクションがブロックに取り込まれるまで待ちます。取り込まれると、その入力(ステップ9の$TXIN)がアドレスから消えます:
while cardano-cli dijkstra query utxo --address "$(cat payment.addr)" | jq -e --arg txin "$TXIN" 'has($txin)' > /dev/null; do sleep 5; doneその後、--tx-inに使用するUTxOを取得します:
TXIN=$(cardano-cli dijkstra query utxo --address "$(cat payment.addr)" | jq -r 'keys[0]')トランザクションを作成します:
cardano-cli dijkstra transaction build \ --tx-in "$TXIN" \ --change-address "$(cat payment.addr)" \ --certificate-file delegation.cert \ --out-file delegation-tx.rawトランザクションに署名します:
cardano-cli dijkstra transaction sign \ --tx-body-file delegation-tx.raw \ --signing-key-file payment.skey \ --signing-key-file stake.skey \ --out-file delegation-tx.signedトランザクションを送信します:
cardano-cli dijkstra transaction submit \ --tx-file delegation-tx.signedステップ11 - Faucetへの委任のリクエスト
Section titled “ステップ11 - Faucetへの委任のリクエスト”1,000 adaの誓約では少なすぎるため、プールがブロック生成に選ばれません。Faucetは約1,000,000 test adaをプールに委任できます。
bech32形式(pool1…)のプールIDを取得します:
cardano-cli dijkstra stake-pool id --output-bech32 --cold-verification-key-file cold.vkeyMusashi Faucetにアクセスし、2つ目のフォーム(pool、ステップ3のスクリーンショットの下側のフォーム)にプールIDを貼り付け、reCAPTCHAのチェックボックスにチェックを入れて送信します。
ステップ12 - 登録の確認
Section titled “ステップ12 - 登録の確認”プールIDとステークアドレスを取得します:
POOL_ID=$(cardano-cli dijkstra stake-pool id --cold-verification-key-file cold.vkey --output-format hex)STAKE_ADDR=$(cardano-cli dijkstra stake-address build --stake-verification-key-file stake.vkey)echo "pool id: $POOL_ID"echo "stake address: $STAKE_ADDR"プールがオンチェーンで登録されていることを確認します。プールのパラメーター(誓約、コスト、マージン、VRF)が表示されます:
cardano-cli dijkstra query pool-state --stake-pool-id "$POOL_ID"委任が反映されたことを確認します。stakeDelegationにプールIDが表示されるはずです:
cardano-cli dijkstra query stake-address-info --address "$STAKE_ADDR"BLSキーが登録されていることを確認します:
cardano-cli dijkstra query pool-state --stake-pool-id "$POOL_ID" | jq '.[].blsKey'blsKey内の公開鍵が自分のキーと一致するはずです。4文字のCBORプレフィックス5860を除いたbls.vkeyと比較してください:jq -r .cborHex bls.vkey | cut -c5-bksRegisteredInは、登録が有効になるエポックです。ノードはキーが登録されたエポックを公開しないため、cardano-cliはこのエポックを報告します。この値を控えておいてください。キーはこのエポックから一定数のエポック後に失効します(ステップ15を参照)。
💡 詳細はMusashiテストネット報酬プログラムのページを参照してください。プログラムに参加しているプールは、Metsukeでテレメトリを報告します。MetsukeはHaskell版cardano-node向けに作られたエージェントで、ノードのPrometheusエンドポイントとトレース行を読み取ります。
ステップ13 - Dingoをブロックプロデューサーとして設定
Section titled “ステップ13 - Dingoをブロックプロデューサーとして設定”Dingoノードを停止します:
sudo systemctl stop dingo署名キーを自分のユーザーだけが読み取れるように制限します。Dingoは、グループやその他のユーザーが読み取れるBLS署名キーの読み込みを拒否します:
chmod 600 $DINGO_HOME/keys/*.skeydingo.yamlをブロックプロデューサー用の設定に置き換えます。この設定では、セクション1の設定にKESキー、VRFキー、運用証明書、BLSキーを追加します:
sudo bash -c "cat <<EOF > /etc/dingo/dingo.yaml# Global data directory for both blob and metadata storage plugins.# Can be overridden with CARDANO_DATABASE_PATH or --data-dir.databasePath: \"$DINGO_HOME/.dingo\"
# Networknetwork: \"musashi\"relayPort: 3010socketPath: \"$DINGO_HOME/dingo.socket\"
# Path to the topology configuration file for Cardano nodetopology: \"$DINGO_HOME/config/topology.json\"
# Block producerblockProducer: trueshelleyVrfKey: \"$DINGO_HOME/keys/vrf.skey\"shelleyKesKey: \"$DINGO_HOME/keys/kes.skey\"shelleyOperationalCertificate: \"$DINGO_HOME/keys/node.cert\"
# Leios voting: the BLS key registered with your pool in Step 9leiosVoteSigningKeyFile: \"$DINGO_HOME/keys/bls.skey\"
# Mempool: 25 MiB, the Leios size. Dingo v0.88.0 keeps the 1 MiB# default on Musashi, which fills and expires transactions.plugins: mempool: config: capacity: 26214400EOF"💡
leiosVoteSigningKeyFileを設定しない場合でもプールはブロックを生成しますが、Leiosのエンドーサーブロックには投票しません。
以下を実行してdingo.yamlファイルを表示し、確認できます:
cat /etc/dingo/dingo.yamlステップ14 - Dingoの起動とステータスの確認
Section titled “ステップ14 - Dingoの起動とステータスの確認”Dingoノードを起動します:
sudo systemctl start dingoDingoが実行中であることを確認します:
sudo systemctl status dingoログをリアルタイムで追跡するには:
sudo journalctl -u dingo -fエラーが発生した場合に最近のログを確認するには:
sudo journalctl -u dingo -n 50 --no-pager💡 プールは登録から約2エポック後、自分のステークを含むステークスナップショットが有効になった時点でブロック生成を開始します。
ステップ15 - BLSキーのローテーション
Section titled “ステップ15 - BLSキーのローテーション”BLSキーには有効期限があります。キーは、現在のエポックがbksRegisteredInにネットワークの最大キー有効期間(テストネットで告知されます)を加えた値より小さい間だけ有効です。その後、プールは委員会の席を維持しますが、投票できなくなります。
キーのローテーションは、新しいBLSキーを使用し、その他の値はすべて変えずに再登録することで行います。新しいキーはエポック境界で有効になるため、有効期限よりも十分前にローテーションしてください。
新しいキーを作成します。ローテーションがオンチェーンに反映されるまで、古いキーは保持してください:
cd $DINGO_HOME/keyscardano-cli dijkstra node key-gen-BLS \ --verification-key-file bls-new.vkey \ --signing-key-file bls-new.skeyステップ9と同じ値で新しい登録証明書を作成します。新しいシェルの場合は、先にRELAY_IPとMETADATA_URLを再度設定してください:
RELAY_IP=YOUR_PUBLIC_IPMETADATA_URL=https://YOUR_GITHUB_USERNAME.github.io/pool/meta.jsoncardano-cli dijkstra stake-pool registration-certificate \ --cold-verification-key-file cold.vkey \ --vrf-verification-key-file vrf.vkey \ --bls-signing-key-file bls-new.skey \ --pool-pledge 1000000000 \ --pool-cost 170000000 \ --pool-margin 0.05 \ --pool-reward-account-verification-key-file stake.vkey \ --pool-owner-stake-verification-key-file stake.vkey \ --pool-relay-ipv4 "$RELAY_IP" \ --pool-relay-port 3010 \ --metadata-url "$METADATA_URL" \ --metadata-hash $(cat poolMetaDataHash.txt) \ --out-file pool-rotate.certこの証明書だけを送信します(今回はステークアドレス証明書は不要です):
TXIN=$(cardano-cli dijkstra query utxo --address "$(cat payment.addr)" | jq -r 'keys[0]')
cardano-cli dijkstra transaction build \ --tx-in "$TXIN" \ --change-address "$(cat payment.addr)" \ --certificate-file pool-rotate.cert \ --out-file pool-rotate.raw
cardano-cli dijkstra transaction sign \ --tx-body-file pool-rotate.raw \ --signing-key-file payment.skey \ --signing-key-file cold.skey \ --out-file pool-rotate.signed
cardano-cli dijkstra transaction submit --tx-file pool-rotate.signed新しい登録エポックを確認します:
POOL_ID=$(cardano-cli dijkstra stake-pool id --cold-verification-key-file cold.vkey --output-format hex)cardano-cli dijkstra query pool-state --stake-pool-id "$POOL_ID" | jq '.[].blsKey.bksRegisteredIn'bksRegisteredInに新しいエポックが表示され、かつその次のエポック境界を過ぎてから、Dingoを新しいキーに切り替えてください。その後、/etc/dingo/dingo.yamlのleiosVoteSigningKeyFileを新しいキーのフルパス(echo $DINGO_HOME/keys/bls-new.skeyで表示できます)に設定し、自分のユーザーだけが読み取れるようにして(chmod 600)、sudo systemctl restart dingoでDingoを再起動します。
ステップ16 - ノードの監視
Section titled “ステップ16 - ノードの監視”Dingoは127.0.0.1:12798でPrometheusメトリクスを提供します。グラフで表示するには、Grafanaダッシュボードガイド(英語)に従い、ダッシュボードのネットワークセレクターでmusashiを選択してください。
コマンドラインからプールが投票しているかどうかを確認するには:
curl -s 127.0.0.1:12798/metrics | grep -E '^dingo_metrics_leios_(committee_size|votes_not_emitted)'dingo_metrics_leios_votes_not_emitted_totalは、ノードが投票しなかったエンドーサーブロックの数を理由ごとにカウントします。BLSキーがオンチェーンのステークスナップショットに含まれるまでは、reason="no_key"のカウントが増加します。
おめでとうございます。Musashiテストネット上でLeios Dingoノードが稼働しています。
Section titled “おめでとうございます。Musashiテストネット上でLeios Dingoノードが稼働しています。”元のガイドと追加リソースはこちらです:Getting startedとRegister a stake pool