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

Aperta
#3,687 0 commenti 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

@jpraynaud ci sta già lavorando.

Dal 9/11/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

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
Lingua principale
Rust
Stelle
155
Fork
52
Merge medio
2g 10h
PR unite (30g)
35

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di IntersectMBO/mithril

Tutte le issue di IntersectMBO/mithril

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.