Skip to content

Speed up testnet cleanup and isolate rejected addresses - #3833

Merged
mkoura merged 4 commits into
masterfrom
perf/batch-testnet-cleanup
Nov 6, 2026
Merged

mkoura merged 4 commits into
masterfrom
perf/batch-testnet-cleanup

Conversation

@mkoura

@mkoura mkoura commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Batch stake re-registration, withdrawals, deregistration and DRep retirement to reduce confirmation waits while preserving reward discovery.
  • Batch payment UTxO queries, fund only needed workers and verify return transactions collectively.
  • Isolate definitely rejected payment groups by address, preserving fee retries and refreshing only original inputs.
  • Quarantine uncertain payment submissions without reusing their inputs.
  • Exclude faucet aliases from payment discovery and add phase timings and cleanup counts.

Testing

  • 55 targeted cleanup tests passed.
  • Framework suite: 606 passed, 1 expected failure.
  • make lint passed.
  • Live-network behavior and Preview runtime improvement remain unvalidated.

Batch stake re-registration, withdrawals, deregistration and DRep
retirement to reduce sequential confirmation waits. Preserve reward
discovery after re-registration and split rejected batches to isolate
stale credentials.

Batch payment UTxO queries, fund only required workers, and verify
return transactions together instead of waiting a fixed block count.
Add phase timings, action counts and unit coverage.

Validation: 578 tests passed, 1 expected failure; lint passed.
Preview runtime improvement has not yet been measured.
Exclude the supplied faucet by address regardless of its artifact
filename. This prevents cached faucet inputs from becoming stale
when worker funding spends them before the return transaction.

Add regression coverage for an alternate faucet filename with and
without stake cleanup, preserving unrelated and worker inputs.
Split definitely rejected payment batches by address while keeping
each address's inputs together. Refresh only original UTxOs, preserve
fee retries and artifact uniqueness, and confirm submissions together.

Quarantine uncertain inputs instead of rebuilding or reusing them.
Treat unknown, infrastructure and ambiguous spent-input errors
conservatively without recursive retries.

Add mocked coverage for isolation, stale inputs, retry bounds and
uncertain outcomes. Validation: 54 targeted tests and 605 framework
tests passed, with one expected failure. Lint passed.
Allow MissingScriptWitnessesUTXOW to trigger payment batch isolation
so script-locked inputs do not block unrelated address cleanup.

Add a mocked regression proving the normal address is recovered
while the script-controlled address is isolated and logged.
@mkoura
mkoura requested a review from saratomaz as a code owner November 6, 2026 18:33
@mkoura
mkoura merged commit c89ee6f into master Nov 6, 2026
3 checks passed
@mkoura
mkoura deleted the perf/batch-testnet-cleanup branch November 6, 2026 18:36
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.

1 participant