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

Abierto
#3,687 0 comentarios 0 reacciones 1 asignado Ver en GitHub

Los mantenedores suelen responder en 2 días

@jpraynaud ya está trabajando en esto.

Desde el 9/11/2026.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

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
Lenguaje dominante
Rust
Estrellas
155
Forks
52
Merge medio
2 d 10 h
PR fusionados (30 d)
35

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de IntersectMBO/mithril

Todos los issues de IntersectMBO/mithril

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.