コンテンツにスキップ

Musashiテストネットプールのセットアップ

このガイドでは、DingoノードでMusashiテストネットのステークプールを2つのセクションに分けてセットアップします:

  1. Dingoノードのセットアップ。
  2. Musashiテストネットプールの登録。

⚠️ MusashiはLeiosのプロトタイプテストネットです。随時リセット(リスピン)され、リスピンのたびに新しいMusashi設定を含むDingoリリースが必要になります。始める前に、DingoのリリースノートでMusashiとの互換性を確認してください。



セクション1 - Dingoノードのセットアップ

Section titled “セクション1 - Dingoノードのセットアップ”

✅ このガイドは、x86-64(amd64)またはARM64(aarch64)マシン上のsystemdを使用する一般的なLinux環境を前提としています。必要に応じてコマンドとパスを調整してください。



プールのファイル用のディレクトリを作成し、cardano-cliがノードに接続するために使用する変数を設定します。

変数を.bashrcに追加して読み込みます:

cat <<'EOF' >> ~/.bashrc
export DINGO_HOME=~/dingo-leios-testnet
export CARDANO_NODE_NETWORK_ID=164
export CARDANO_NODE_SOCKET_PATH="$DINGO_HOME/dingo.socket"
EOF
source ~/.bashrc

💡 CARDANO_NODE_NETWORK_IDを設定すると、cardano-cliは--testnet-magicフラグなしでMusashi(ネットワークマジック164)と通信します。

作業ディレクトリを作成します:

mkdir -p "$DINGO_HOME"

ブロックプロデューサーには正確な時刻が必要です。chronyをインストールして有効化します:

sudo apt install -y chrony
sudo 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)" ;;
esac
echo $DINGO_ARCH

次に、リリースをダウンロードして展開します:

cd $DINGO_HOME
wget 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 version
sudo 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-2026w42
LEIOS_ARCH=$(uname -m)
[ "$LEIOS_ARCH" = arm64 ] && LEIOS_ARCH=aarch64
wget https://github.com/input-output-hk/ouroboros-leios/releases/download/$LEIOS_RELEASE/cardano-node-leios-$LEIOS_ARCH-linux.tar.gz
wget https://github.com/input-output-hk/ouroboros-leios/releases/download/$LEIOS_RELEASE/cardano-node-leios-$LEIOS_ARCH-linux.sha256
sha256sum -c cardano-node-leios-$LEIOS_ARCH-linux.sha256
tar -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-cli
cardano-cli --version
cd $DINGO_HOME
rm -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.json
wget https://book.play.dev.cardano.org/environments-pre/leios/topology.json
wget https://book.play.dev.cardano.org/environments-pre/leios/peer-snapshot.json

ダウンロードしたトポロジーはMusashiのブートストラップリレーに接続し、peer-snapshot.jsonを使用して追加のピアを見つけます。同期にはこれで十分です。

💡 ヒント: Musashiの設定ファイルはMusashi環境ページに掲載されています。

任意: 知っているピアの追加

他のMusashiプールのリレーをローカルルートとして追加することもできます。Kleioscan Musashiプールページで確認してください:

KleioscanのMusashiプール一覧

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

KleioscanでのMusashiプールのリレー

次に、それらをtopology.jsonのlocalRootsセクションに追加します:

nano $DINGO_HOME/config/topology.json

3つのプールを含む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/dingo
mkdir -p $DINGO_HOME/.dingo

dingo.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\"
# Network
network: \"musashi\"
relayPort: 3010
socketPath: \"$DINGO_HOME/dingo.socket\"
# Path to the topology configuration file for Cardano node
topology: \"$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: 26214400
EOF"

💡 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 Node
After=network-online.target
[Service]
Type=simple
Restart=on-failure
RestartSec=10
User=YOUR_USER
ExecStart=/usr/local/bin/dingo serve --config /etc/dingo/dingo.yaml
SyslogIdentifier=dingo
TimeoutStopSec=5
[Install]
WantedBy=multi-user.target
ENDFILE

以下を実行してdingo.serviceファイルを表示し、確認できます:

cat /etc/systemd/system/dingo.service


ステップ7 - サービスの有効化と開始

Section titled “ステップ7 - サービスの有効化と開始”

起動時にサービスが実行されるように有効化し、すぐに開始します:

sudo systemctl daemon-reload
sudo systemctl enable dingo.service
sudo systemctl start dingo.service


サービスが実行中であることを確認します:

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; echo

Musashi Faucetにアクセスし、1つ目のフォーム(address)にアドレスを貼り付け、reCAPTCHAのチェックボックスにチェックを入れて送信します。Faucetは10,000 test adaを送金します。これで500 adaのプールデポジット、2 adaのステークアドレスデポジット、誓約(pledge)、手数料をまかなえます。

上部にアドレスフォーム、その下にプール委任フォームがあるMusashi Faucet

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.skey

VRFキー(ブロック生成スロットの獲得に使用)

cardano-cli dijkstra node key-gen-VRF \
--verification-key-file vrf.vkey \
--signing-key-file vrf.skey


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と表示するはずです



現在の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で無料でホストできます:

  1. GitHubにサインインし、poolという名前の新しいpublicリポジトリを作成します。

  2. リポジトリでAdd file → Upload filesを選択し、meta.jsonをアップロードして、mainブランチにコミットします。

  3. Settings → Pagesを開きます。Build and deploymentで、SourceをDeploy from a branchに設定し、mainブランチと/ (root)フォルダーを選択して、Saveを選択します。

    Deploy from a branch、main、/ (root)が選択されたGitHub Pagesのビルドとデプロイの設定

  4. 1〜2分後、メタデータはhttps://YOUR_GITHUB_USERNAME.github.io/pool/meta.jsonで公開されます。

URLを設定し、アクセスできることと128文字以内であることを確認します:

METADATA_URL=https://YOUR_GITHUB_USERNAME.github.io/pool/meta.json
curl -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.vkey

Musashi Faucetにアクセスし、2つ目のフォーム(pool、ステップ3のスクリーンショットの下側のフォーム)にプールIDを貼り付け、reCAPTCHAのチェックボックスにチェックを入れて送信します。



プール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/*.skey

dingo.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\"
# Network
network: \"musashi\"
relayPort: 3010
socketPath: \"$DINGO_HOME/dingo.socket\"
# Path to the topology configuration file for Cardano node
topology: \"$DINGO_HOME/config/topology.json\"
# Block producer
blockProducer: true
shelleyVrfKey: \"$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 9
leiosVoteSigningKeyFile: \"$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: 26214400
EOF"

💡 leiosVoteSigningKeyFileを設定しない場合でもプールはブロックを生成しますが、Leiosのエンドーサーブロックには投票しません。

以下を実行してdingo.yamlファイルを表示し、確認できます:

cat /etc/dingo/dingo.yaml


ステップ14 - Dingoの起動とステータスの確認

Section titled “ステップ14 - Dingoの起動とステータスの確認”

Dingoノードを起動します:

sudo systemctl start dingo

Dingoが実行中であることを確認します:

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/keys
cardano-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_IP
METADATA_URL=https://YOUR_GITHUB_USERNAME.github.io/pool/meta.json
cardano-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を再起動します。



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