Add a manual 10-actor concurrent Ethereum-to-Solana swap FlowScenario with 21-producer/21-batch-operator settlement, Solana-memory, and post-load epoch-stall diagnostics - #64
Closed
joshglogau wants to merge 1 commit into
Conversation
Author
|
Superseded by #65, rebuilt from wire-tools-ts master on feature/swap-epoch-stress-flow so the FlowScenario is fully independent of the cluster-readiness branch. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a new manual-only
flow-swap-epoch-stressFlowScenario that turns the SIM2 swap load which surfaced the Solana terminal/epoch-stall issue into a reproducible, report-first local test.The existing live-cluster
wire-cluster-tool readinesscommand is unchanged. Readiness remains the read-only SIM2 health tool; this scenario owns a fresh local cluster and applies destructive load for debugging.Reproduction shape
WireUnderwriterToolflow machineryReserveManager.requestSwapwrites in a single parallel FlowScenario phasesysio.uwrit::uwreqsrows against the pre-load baseline and requires exactly 10 new CONFIRMED requestsReport/debugging behavior
Every on-chain write is its own typed Step. The standard Markdown, HTML, and CSV FlowScenario report captures:
The stress phases use collect-mode failure handling so terminal diagnostics still execute after individual request or payout failures.
Manual execution
Run locally with the canonical runner and heartbeat monitor in separate terminals:
The flow is intentionally not part of normal E2E execution because it can take at least 138 minutes. The companion build-system draft PR Wire-Network/wire-platform-build-system#25 makes
flow-swap-epoch-stressthe defaultFLOW_EXCLUDEvalue while preserving explicit on-demand runs.Expected regression signal
On a Solana revision with the previously observed terminal/validator failure, the report should show incomplete destination payouts and/or UWREQ settlement, a post-load epoch that cannot advance by three, and any available memory/heap log evidence. On a corrected revision, all 10 requests and payouts should complete, all 10 UWREQs should be CONFIRMED, recent logs should be clean, and the epoch should advance by at least three.
Validation performed
tsc -p packages/flow-swap-epoch-stress/tsconfig.src.json --noEmit --composite falsepackages/flow-swap-epoch-stress/srcgit diff --checkpassedThe full referenced build is currently blocked by a pre-existing type error outside this package:
packages/cluster-tool/tests/readiness/ExternalReserveCustodyReader.test.tsconstructs an outpost config fixture without the newly requiredauthorityfield. No readiness source or fixture is changed here.Branch/base note
This draft targets
feature/cluster-readinessso it contains only the new FlowScenario work and does not duplicate the already-open readiness changes from #53. After #53 merges, this PR can be retargeted/rebased ontomasterwithout changing the scenario design.