Prototype the certification adaptation in the Dijkstra era (before Leios)

オープン
#3,687 コメント 0 件 リアクション 0 件 担当者 1 名 GitHub で見る

メンテナーはふだん 2 日以内に返信

@jpraynaud がすでに取り組んでいます。

2026年11月9日 から。

評価

この issue はまだ評価されていません。

説明

prototype :hammer_and_wrench:

Why

The Dijkstra hard fork brings a new block format and lets a Cardano transaction embed sub-transactions (nested transactions, CIP-0118) with their own transaction ids, but the Mithril nodes only decode the blocks up to Conway and only store the top-level transactions returned by MultiEraBlock::txs(), so the Mithril certifications would break or be incomplete after the hard fork.

What

A prototype where the Mithril certifications keep working on a Dijkstra devnet with cardano-node 11.2.0 before Leios.

How

  • Store the hashes of the sub-transactions of each transaction when scanning a block (ScannedBlock::convert), with no change for the pre-Dijkstra blocks
  • Evolve the devnet
    • Fork to Dijkstra as the latest era with cardano-node 11.2.0 (--cardano-hard-fork-latest-era-at-epoch sets the Dijkstra epoch), the older nodes keeping Conway
    • Create nested transactions in the payment script when the era is Dijkstra
  • Evolve the end-to-end tests
    • Collect the sub-transaction hashes from the immutable files
    • Certify the sub-transactions with the client CLI on both backends in the full and minimal scenarios, and fail when a Dijkstra devnet produced none
  • Decide whether a sub-transaction needs a dedicated leaf format or a link to its parent transaction
  • Pallas dijkstra patches:
    • Create a patch for the optional Leios header fields with Cardano 11.2.0
    • Publish the patch for the optional Leios header fields with Cardano 11.2.0
  • List the follow-up issues for production
    • Upgrade to the released Pallas crates supporting Dijkstra
    • Ship a new distribution with the released Pallas crate
主要言語
Rust
スター
155
フォーク
52
平均マージ
2日 10時間
マージ済み PR(30日)
35

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

IntersectMBO/mithril のほかの issue

IntersectMBO/mithril の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。