Skip to content

feat: support chained transactions with a mempool UTXO overlay - #69

Open
satran004 wants to merge 3 commits into
mainfrom
feat/mempool_utxo_overlay
Open

feat: support chained transactions with a mempool UTXO overlay#69
satran004 wants to merge 3 commits into
mainfrom
feat/mempool_utxo_overlay

Conversation

@satran004

Copy link
Copy Markdown
Member

Summary

  • add a bounded, single-writer mempool UTXO overlay for arbitrary-depth chained transactions
  • atomically enforce duplicate, conflicting-spend, transaction-count, byte and UTXO-index admission rules
  • resolve regular, reference and collateral inputs from consumed, produced and canonical UTXO state in order
  • retain selected transactions through forge-to-apply and expose produced outputs in the block-local overlay
  • reconcile confirmation, canonical competing spends, rollback and descendant invalidation without orphaning confirmed-parent children
  • isolate canonical UTXO acknowledgements from derived-listener failures and require synchronous admission-critical listeners
  • support reference scripts produced by unconfirmed parents during phase-2 validation
  • add ADR-NET-009 and the deferred generalized-ledger-state ADR

Design notes

  • Overlay indexes, dependency maps and locking remain internal to DefaultMemPool.
  • Stateful validation is deliberately serialized for the initial correctness model.
  • Selected entries remain in the mempool until canonical UTXO apply acknowledgement.
  • ADR-NET-009 remains Proposed pending its retained-heap profiling acceptance gate.
  • Certificate, governance and other non-UTXO mempool dependencies remain future work.

Verification

  • ./gradlew :ledger-rules:test :runtime:test
  • focused admission, chaining, conflicting-canonical-spend, reference-script and acknowledgement-isolation regression tests
  • ./gradlew compileJava compileTestJava
  • git diff --check

All completed successfully.

Closes #66

Deferred hardening and protocol-aware bounds are tracked in #68.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mempool admission rejects chained transactions: an input created by another mempool tx is UtxoNotFound

1 participant