Intersect は10月29日、cardano-node 11.2.0 の先行版(pre-release)について、次のハードフォーク Dijkstra を「エコシステム全体での試験と統合に近づける」版だと X で告知しました。リリースノートを Dijkstra の側から読むと、新しい取引の形であるサブトランザクションを cardano-cli で組み立てて署名する手順や、ステークプールの BLS 投票鍵を登録する手順が、この版で初めてそろっています。
初期報: Node 11.2プリリリース版をリリース、Dijkstraのエコシステムテストへ
設定ファイルの新形式や node-to-client の打ち切りなど、ノードを動かす側の変更は10月29日の Signal で整理しました。この記事では、同じリリースノートの中から Dijkstra にかかわる部分だけを取り出し、テストネットで何が試せるようになるのかを見ていきます。メインネットでの利用はまだ推奨されていない版です。
テストネットは、この版を待っていました
Intersect の10月24日の週報によると、Dijkstra の公開テストネットはいま、プロトコルバージョン 11(Conway)のまま node 11.1.3 で動いています。node 11.2 の先行版が出たあとにハードフォーク開始のアクションを出し、プロトコルバージョン 12(Dijkstra)へ移る段取りです。テストネットのエポックは1日で、SPO は Cardano Book の設定ファイルを使って参加できます。
その先行版が、10月28日に GitHub で公開された 11.2.0 です。Intersect の Upgrade Bulletin #40 は、役割ごとの「いまやること」の先頭で、SPO にテストネットのハードフォークより前に Node 11.2 へ上げるよう呼びかけています。テストネットが Conway のままでは、Dijkstra の規則で取引を出すことはできません。11.2 は、その切り替えの前提になる版です。
サブトランザクションを、cardano-cli で組んで署名する
Dijkstra の目玉の一つが、取引の中に別の取引を入れ子にできるサブトランザクションです。11.2.0 の cardano-cli には、サブトランザクション用の build-raw・sign・txid の3つのコマンドが加わりました。署名済みのサブトランザクションは、外側の取引の build-raw に –signed-sub-tx-file で何本でも渡せます。
台帳の側では、サブトランザクションがそれぞれ自分の実行ユニットと手数料を勘定するようになりました。サブトランザクションの中で使えるスクリプトはネイティブスクリプトと Plutus V4 だけで、V1〜V3 のスクリプトファイルは受け付けません。
サブトランザクションには「ガード」も付けられます。取引が通るために満たすべき資格情報を指定する仕組みで、サブトランザクションの側から、外側の取引に必要なガードを求めることもできます。ネイティブスクリプトのガードと Plutus V4 のガードの両方に対応し、手数料の見積もりと差額の調整も含めて組み立てられます。
もう一つ、Dijkstra の取引の組み立てには –direct-deposit が加わりました。ステークアドレスと lovelace の量を指定して、取引から直接そのアカウントへ入金する選択肢です。同じ受け取り先の重複は弾かれ、手数料の差額は自動で調整されます。
SPO には、BLS 投票鍵の登録が加わる
SPO にとっていちばん具体的な変化は、BLS 投票鍵です。11.2.0 の cardano-cli では、stake-pool registration-certificate に –bls-signing-key-file を渡して BLS の投票鍵を登録します。リリースノートは、この登録を Dijkstra 以降は必須としています。所有の証明はこの証明書の中に組み込まれるため、node issue-pop-BLS と node key-hash-BLS のコマンドは削除されました。鍵を作る node key-gen-BLS は残っています。
台帳には、BLS 鍵つきのステークプールのスナップショットから Leios の委員会を選ぶ仕組み(CIP-164)と、Leios のプロトコルパラメータが入りました。Intersect の週報は、アップグレード後に BLS 鍵を登録していないプールは Leios のエンドーサーブロックに投票できず、Praos のブロックは作り続けると説明しています。Leios と Peras の下地はノードの既定では無効のままです。
台帳には、将来の時代向けのプロトコルパラメータも2つ加わりました。CIP-50 の誓約(プレッジ)に対する最大レバレッジと、CIP-23 の最低プールマージンです。どちらも値が設定されるまでは何の効果もありませんが、プールの報酬の計算にかかわる議論が、パラメータの枠として台帳に入ったことになります。
周辺の道具も、Dijkstra の取引を通す
「エコシステム全体での試験」に向けた修正も並んでいます。取引を HTTP で送る cardano-submit-api は、これまで Dijkstra の取引を読み取りエラーで拒否していましたが、11.2.0 ではすべての時代の取引を受け付けるようになりました。ブロック本体には取引ごとの is_valid の印が入り、それに合わせて Dijkstra の取引の組み立てからは –script-valid と –script-invalid が外れています(Conway では残ります)。
試験網を手元で立てる cardano-testnet は、ネットワークの準備ができた時点で、ソケットやポート、鍵の場所、ウォレットのアドレスをまとめた manifest.json を書き出すようになりました。ウォレットやインデクサーを作る側が、自分の道具を試験用のネットワークへつなぐ手間を減らす変更です。
Plutus については、Plutus V4 がプロトコルバージョン 12 で使える状態になりました。ただしリリースノートによると、この版の V4 は、いまメインネットの V1〜V3 と同じ組み込み関数しか持っていません。10月24日の Signal で取り上げた新しい組み込み関数は、後の版で有効になります。11.2.0 には、そのうち keepPolicies と dropPolicies(CIP-0168)の手数料の計算に使うコストモデルが先に入りました。
先行版で試すことの意味
Dijkstra の取引の形は、ウォレット・DEX・インデクサーのそれぞれが読み書きできて、はじめて使えるものになります。Go 製のノード Dingo がすでに Dijkstra テストネットへの接続に対応したように、ノード本体以外の道具が同じ規則で同じ取引を扱えるかを確かめる段階に入りつつあります。先行版の段階でサブトランザクションや BLS 鍵の手順を一通り通しておけば、正式版とメインネットのハードフォークの前に、食い違いを見つける時間が取れます。
次に確かめる一点は、Dijkstra テストネットでハードフォーク開始のアクションが出され、プロトコルバージョン 12 へ実際に切り替わるかです。告知の場は Intersect の週報と Upgrade Bulletin で、切り替えそのものはテストネットのエクスプローラー Kleioscan で確かめられます。SPO にとっては、そこから BLS 投票鍵の登録を試せる期間が始まります。
ことば
- サブトランザクション — 取引の中に入れ子にする小さな取引。Dijkstra で加わり、それぞれが自分の手数料と実行ユニットを勘定します。署名を済ませたサブトランザクションを、外側の取引に何本でも入れられます。
- ガード — 取引が通るために満たすべき資格情報。11.2.0 ではネイティブスクリプトと Plutus V4 の両方で書け、サブトランザクションの側から外側の取引に必要なガードを指定できます。
- BLS 投票鍵 — ステークプールが Leios のブロックに投票するための鍵。多くの署名を1つにまとめられる BLS 署名を使い、Dijkstra 以降はプール登録の証明書で登録するのが必須になります。
一次ソース / 関連リンク
- Intersect 公式 X の告知(Upgrade Bulletin #40)
https://x.com/IntersectMBO/status/2115892192283668498

Intersect weekly update #134(10月24日・Dijkstra テストネット)
intersectmbo.org

