Dijkstra era: scope
The Hard Fork Working Group, which brings together people from multiple teams and organizations across the ecosystem, has discussed the scope for the Dijkstra era at length. We wish we could include many more features than we have. Scope has to be set against three things: time to market considerations, the commitments to the community that follow from the projects the community voted for in past Treasury Withdrawal proposals, and the current state of those projects. Weighing those together is what produced the list below.
The following table details what is in scope for Dijkstra.
| Feature |
Activation |
Owner |
New updatable protocol params? |
Guardrail-script impact? |
Constitution change? |
| CIP-0164: Leios |
Dijkstra v12 |
Leios team / IO Labs |
✅ |
✅ new params to guard (Plutus team) |
✅ |
| Peras |
Dijkstra v12: serialization and parameters. Activation at intra-era v13 |
Tweag by Modus Create |
✅ |
❌ (not for PV12) |
❌ (not for PV12) |
| CIP-0118: Nested transactions |
Dijkstra v12 |
Ledger IO Labs |
❌ |
❌ |
❌ |
| CIP-0159 phase 1: Accounts Enhancements |
Dijkstra v12 |
Ledger IO Labs |
❌ |
❌ |
❌ |
| CIP-0112: Guard scripts |
Dijkstra v12 |
Ledger IO Labs |
❌ |
❌ |
❌ |
| CIP-0181: Remove DRep delegation requirement for reward withdrawals |
Dijkstra v12 |
Ledger IO Labs |
❌ |
❌ |
❌ |
| **Fee function update |
Dijkstra v12 |
Ledger IO Labs |
❌ |
❌ |
❌ |
| Plutus V4 context |
Dijkstra v12 |
Ledger IO Labs |
✅ (cost model) |
❌ |
❌ |
| Reference script pricing and limits |
Already active on Conway; needs a constitution update to make the parameters updatable |
Leios Product Manager |
✅ |
✅ |
✅ |
| CIP-0167: Remove isValid from transactions |
Dijkstra v12 |
Ledger IO Labs |
❌ |
❌ |
❌ |
| CIP-0176: Non-segregated block body serialization |
Dijkstra v12 |
Ledger IO Labs |
❌ |
❌ |
❌ |
CIP-0023: Fair Min Fees (minPoolMargin) |
Dijkstra v12: serialization and parameters. Activation at intra-era v13 |
Ledger IO Labs |
✅ |
✅ (likely not at PV12; pending decisions) |
✅ |
CIP-0050: Pledge Leverage-Based Staking Rewards (maxPledgeLeverage, L) |
Dijkstra v12 |
Ledger IO Labs |
✅ |
✅ (perhaps not ahead of Dijkstra) |
✅ |
On activation: Dijkstra v12 is the Dijkstra hard fork itself (protocol version 12). Some features ship their serialization and parameters at v12 but only activate at a later intra-era hard fork (v13).
Outside this scope: features that do not require a hard fork to be activated may continue to be developed, integrated and released, as long as the addition does not compromise or delay the Dijkstra era.
New protocol parameters and the Constitution
Dijkstra introduces a significant number of new protocol parameters. Under the Constitution, a parameter introduced by a hard fork cannot be changed through a Parameter Update action until it is listed in the Constitution with guardrails defined for it (guardrails HARDFORK-05 and NEW-CONSTITUTION-01a). These new parameters will therefore be added to the Constitution ahead of the Dijkstra era hard fork, so that they are governable from the moment the new era begins. This is critical for Leios release plan to Mainnet.
That Constitution Update Proposal will only be submitted once two conditions are met: the Dijkstra CDDL is ready, and the teams agree on reasonable guardrails for each of the new parameters. It will also carry a new guardrails script, which enforces on-chain those guardrails that can be checked automatically.
Dijkstra era: scope
The Hard Fork Working Group, which brings together people from multiple teams and organizations across the ecosystem, has discussed the scope for the Dijkstra era at length. We wish we could include many more features than we have. Scope has to be set against three things: time to market considerations, the commitments to the community that follow from the projects the community voted for in past Treasury Withdrawal proposals, and the current state of those projects. Weighing those together is what produced the list below.
The following table details what is in scope for Dijkstra.
minPoolMargin)maxPledgeLeverage, L)On activation: Dijkstra v12 is the Dijkstra hard fork itself (protocol version 12). Some features ship their serialization and parameters at v12 but only activate at a later intra-era hard fork (v13).
Outside this scope: features that do not require a hard fork to be activated may continue to be developed, integrated and released, as long as the addition does not compromise or delay the Dijkstra era.
New protocol parameters and the Constitution
Dijkstra introduces a significant number of new protocol parameters. Under the Constitution, a parameter introduced by a hard fork cannot be changed through a Parameter Update action until it is listed in the Constitution with guardrails defined for it (guardrails HARDFORK-05 and NEW-CONSTITUTION-01a). These new parameters will therefore be added to the Constitution ahead of the Dijkstra era hard fork, so that they are governable from the moment the new era begins. This is critical for Leios release plan to Mainnet.
That Constitution Update Proposal will only be submitted once two conditions are met: the Dijkstra CDDL is ready, and the teams agree on reasonable guardrails for each of the new parameters. It will also carry a new guardrails script, which enforces on-chain those guardrails that can be checked automatically.