Skip to content

[Dijkstra] MASTER ISSUE: Formalize CIP-0118 Nested Transactions #999

@williamdemeo

Description

@williamdemeo

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

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

  1. 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

Type

No type

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions