Prepare Mithril for Cardano Dijkstra hard fork

Open
#3,673 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 2 days

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
8/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
rust

Research direction

This is a multi-phase epic, not a single change, so start by picking one sub-task and confirming scope with maintainers. The payload names the Pallas Rust dependency, the Mithril devnet, the CI end-to-end test suite, and a SanchoNet test network, but no specific files or entry points. Done means Mithril parses and certifies blocks across the new era boundary in those environments before mainnet activation.

Written by the indexing model from the issue text.

Description

roadmap :compass:

Why

Cardano hard forks introduce modifications to the block and transaction structure that directly impact Mithril. Mithril nodes parse and certify Cardano chain data including blocks and transactions for Cardano Transactions certification using the Pallas library as the Cardano mini-protocol and data structure implementation. When a hard fork changes the on-chain data format, Mithril must be updated before the hard fork activates on mainnet, or it will fail to parse the new era's blocks and produce invalid or no certifications.

Getting Mithril ready for a hard fork requires several coordinated steps:

  • Upgrade Pallas to a version supporting the new era: Pallas must be updated to parse the new block and transaction structures. This is typically an iterative process across multiple Pallas pre-release versions as the new era's specification stabilizes, requiring repeated dependency bumps and adaptation to breaking API changes.
  • Adapt the devnet to support the new Cardano era: The Mithril devnet (a private test network used for local development) must be configured to trigger the hard fork so that developers can test Mithril nodes against the new era locally before any public testnet is available.
  • Implement the hard fork in the end-to-end tests: The CI end-to-end test suite must exercise the hard fork transition to verify that all Mithril nodes (aggregator, signer, client) remain compatible across the era boundary, catching regressions automatically.
  • Deploy a dedicated Mithril test network on SanchoNet (or equivalent): A Mithril network running on Cardano's hard fork testing network provides a realistic environment to validate the full certification pipeline (signing, aggregation, snapshot creation, client verification) under real hard fork conditions with actual Cardano nodes, before the hard fork reaches mainnet.
  • Fix bugs discovered during the adaptation phase: Each of the above steps will likely surface compatibility issues (parsing failures on new block formats, transaction certification mismatches, protocol message computation divergences between signers) that must be diagnosed and fixed iteratively.

This work must be completed and validated before the hard fork activates on mainnet. Any gap in readiness means Mithril stops producing valid certifications at the hard fork boundary, disrupting all clients relying on Mithril-certified Cardano data.

Dominant language
Rust
Stars
155
Forks
52
Avg merge
2d 17h
Merged PRs (30d)
37

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from IntersectMBO/mithril

All issues in IntersectMBO/mithril

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.