Midnight Node 2.1.0 Beta が稼働中チェーンからのハードフォーク経路を追加
Midnight の機能が出そろったベータ版は、ネットワークをリセットせずに、稼働中の 1.0.x チェーンから ledger 9 への協調的な移行経路を用意する。新しい runtime は、バリデータの別途のロールアウトとガバナンスによる有効化を依然として必要とする。
By SongMarketCap
Midnight は、稼働中のネットワークを ledger 9 へのアップグレードに備えさせる大規模なプレリリースである Node 2.1.0-beta.1 を公開した。これは、未リリースの 2.0.0 系で開発された機能群に、さらに 2か月分の保守とセキュリティパッチを加え、$NIGHT に紐づく DUST 生成を維持するよう設計されたマイグレーションロジックを組み合わせたものだ。
このベータは Midnight のパブリックネットワーク環境で利用可能だ。公開は、新しい runtime がすでに Mainnet 全体で稼働していることを意味しない。
Midnight Node が稼働中ネットワーク向けのアップグレード経路を追加
Midnight Node は、バリデータや RPC オペレーターがネットワークを追跡し、トランザクションを処理し、Midnight アプリケーションの背後で runtime を実行するために用いる中核ソフトウェアだ。
Midnight は Cardano に接続されたプライバシー重視のパートナーチェーンだ。開発者はこれを用いて、公開ブロックチェーンの状態に、プライベートデータや選択的開示を組み合わせたアプリケーションを構築できる。その経済モデルでは、パブリックネットワークの資産である $NIGHT と、ユーザーがトランザクションやスマートコントラクトを実行する際に消費される譲渡不可のリソースである DUST を分離している。
バージョン 2.1.0-beta.1 は、機能が出そろったベータとして 8 月 21 日に公開された。このリリースは、最新の最終版である Node 1.0.1 と比べてメジャーアップデートに分類される。
主なインフラ変更は、稼働中の 1.0.x チェーンからハードフォークできるようになったことだ。初期の 2.0.0 ビルドは新規のジェネシス環境を前提に設計されており、すでに稼働しているネットワークでの利用が制限されていた。Node 2.1.0 は、現在の状態を破棄せずに既存のチェーンを新しい runtime へ移行させるために必要なマイグレーションロジックを追加している。
Ledger 9 へのマイグレーションは DUST 生成を維持
Node 2.1.0 を有効化すると、オンチェーンで複数ブロックにわたるマイグレーションを通じて、Midnight は ledger 8 から ledger 9 へ移行する。runtime の仕様は 1_000_003 から 2_001_000 に変わり、トランザクションバージョンは 3 から 4 に上がる。
この移行は、Cardano 上で観測される NIGHT から DUST を生成するために用いられる状態にも影響する。ledger のマイグレーションでは、新しい DUST 構造が既存の生成記録なしで初期化されるため、ノードはフォーク前データからそれらを再構築する必要がある。
Node 2.1.0 は、runtime のアップグレード後に、その再構築をバッチで実行する。この処理の間、Cardano の観測は一時的に停止される。想定規模は Mainnetでおよそ 28 ブロック、Preview で 9 ブロック、Preprod で 1 ブロックだ。
再構築後は、マイグレーション中に供給された Cardano の UTxOs を取りこぼすことなく観測が再開される。このプロセスにより、Cardano 上の NIGHT ポジションと、Midnight のアクティビティ向けに生成される DUST リソースとの結びつきが維持される。
ノードに接続するインフラも、トランザクションバージョンの変更に対応しなければならない。クライアント、ソフトウェア開発キット、インデクサーは、アップグレードブロックの後に runtime メタデータを更新する必要があり、移行前に署名済みまたはキューに入っていたトランザクションは再構築が必要となる。
Mainnet での有効化には引き続きガバナンスが必要
ハードフォークの開始点として文書化されているのは Node 1.0.3 だが、2.1.0 ベータのリリースノートが公開された時点では、そのベースラインリリースは未公開のままだった。Node 1.0.2 以前からの直接移行は、サポートされるマイグレーション経路には含まれない。
バリデータはまず新しいバイナリをインストールし、既存の runtime の下でネットワークが引き続きブロックを取り込み、ファイナライズしていることを確認しなければならない。その後、認可されたテクニカルサイナーが、稼働中の runtime を置き換えるガバナンスの set_code アクションを適用できる。
Cardano から Midnight へのブリッジには、さらなるガバナンス上の依存関係がある。必要な MainChainScripts 構成とデータチェックポイントが設定されるまで、その Cardano 観測プロバイダーは非稼働のままだ。
Node 2.1.0 は、Midnight の次期 runtime に向けたソフトウェアとマイグレーション経路を提供する。Ledger 9 が稼働を開始するのは、1.0.3 のベースラインが利用可能となり、アップグレード済みのバリデータがネットワーク全体で稼働し、ガバナンスがオンチェーンで新しい runtime を適用した後だ。