-
Notifications
You must be signed in to change notification settings - Fork 20
Open
7 / 107 of 10 issues completedOpen
7 / 107 of 10 issues completed
Copy link
Description
Description
This is a "master" issue to track smaller (sub)issues related to Dijkstra. The scope of this issue is the "ledger rules mostly formalized" promise/end-of-year goal for work on the formal specification of the Dijkstra era. The only ledger rule in scope is UTXO (and UTXOS) as that seems to bear most of the impact of Dijkstra requirements.
Goal
Bring the Dijkstra era spec in line with CIP-0118 nested transactions + CIP-0112 guards (formerly "observers"), including:
- correct transaction-body shapes at both levels,
- correct guard/required-top-guard semantics,
- batch-wide phase-2 execution (mempool safety),
- batch-aware UTXOS transition (commit only on success).
References
- CIP-0118 Nested Transactions (guards + requiredTopLevelGuards + batch-wide phase-2) 1
- CIP-0112 Observe (rename to Guard everywhere in spec; observers → guards)
Milestones / Subtasks
- Make guards credential-shaped at both levels (CIP-0112 alignment)
[Dijkstra] replaceTxBodyfieldtxRequiredGuards : ℙ KeyHashwithtxGuards : ℙ Credential#1000 - Redesign
requiredTopLevelGuardscontainer (CIP-0118 alignment)
[Dijkstra] change type oftxRequiredTopLevelGuardsfrom Map to List #1001 - Phase-1 check:
requiredTopLevelGuards⊆ top-level guards
[Dijkstra] phase-1 check: requiredTopLevelGuards in top-level guards #1002 - Fix
ScriptPurpose/redeemer pointers for guards (index-based vs set-based decision)
[Dijkstra] change types ofScriptPurpose.GuardandindexOfGuardto use lists of Credentials #1003 - Define
TxInfoSubTxsplumbing: only top-level guard scripts seesubTxinfos
[Dijkstra] implementTxInforules for guards #1004 - Resolve "reference inputs vs 'all inputs exist initially'" ambiguity
[Dijkstra] CIP-0118 ambiguity: visibility of reference inputs/scripts inside a batch of subTxs #1005 - Define batch script collection + single
evalP2Scriptsat end
[Dijkstra] batch-awarecollectP2ScriptsWithContext+ singleevalP2Scriptsat end #1006 - Update
UTXOSfor batch semantics (POV/fees/collateral/failure branch)
[Dijkstra] UTXOS: implement batch-level validity (POV, fee rules, collateral-on-failure) #1007 - Adapt and add preconditions present in Conway to the UTXOW rule
[Dijkstra] UTXOW: ImplementlanguagesandallowedLanguages#1024 - LEDGER: Implement globalData and globalScripts
[Dijkstra] LEDGER: ImplementglobalDataandglobalScripts#1025
Definition of done
- Dijkstra modules type-check; guard semantics are consistent across
Transaction+Script.Validation+UTXO/UTXOS. - Batch commit semantics are explicit: tentative update computed, committed only after batch-wide phase-2 success.
Footnotes
-
See CIP 0118; once finalized and merged, CIP 0118 will appear in the main branch of the CIP repository; until then, it resides at https://github.com/polinavino/CIPs/tree/polina/CIP0118/CIP-0118. ↩
Sub-issues
Metadata
Metadata
Assignees
Type
Projects
Status
In Progress