Skip to content

test: Storage + Arcade e2e load test suite#244

Open
sambabbage wants to merge 2 commits into
bsv-blockchain:mainfrom
sambabbage:test/storage-arcade-e2e
Open

test: Storage + Arcade e2e load test suite#244
sambabbage wants to merge 2 commits into
bsv-blockchain:mainfrom
sambabbage:test/storage-arcade-e2e

Conversation

@sambabbage

@sambabbage sambabbage commented Jun 29, 2026

Copy link
Copy Markdown

Summary

This PR now provides a production-safe, evidence-producing E2E test for the actual Storage → Arcade → Monitor → Storage lifecycle.

  • Authenticated reads and writes use only STORAGE_E2E_TARGET_URL; there is no hidden second Storage backend.
  • Mainnet spending requires the explicit STORAGE_E2E_ALLOW_MAINNET=true gate.
  • Multi-user writes use independent deterministic identities funded with real BRC-29 wallet payments.
  • Concurrent no-send transactions are broadcast through Arcade and then reconciled through Storage with sendWith.
  • The final gate requires every txid to have an Arcade merkle path and the originating wallet's production listActions status to be completed.
  • A mode-0600 JSON evidence artifact records sizing, timings, txids, block heights, and proof observations.
  • TaskArcadeSSE now persists ProvenTxReq.notified=true after successful SSE proof ingestion and recognizes SEEN_MULTIPLE_NODES as a normal accepted state.

Production validation

Run 20260712032443 against https://storage.babbage.systems on 2026-07-12, using the upgraded production Storage and Monitor:

  • 12/12 production E2E cases passed.
  • 29/29 transactions were accepted, mined in block 957487, received Arcade merkle paths, and reached completed in Storage.
  • Production DB correlation found 29 completed proven_tx_reqs, 29 proven_txs at height 957487, and 29 completed transaction rows.
  • The block interval was unusually long: about 35 minutes. Once the block arrived, Monitor created the 29 proof rows over about 18.4 seconds.
  • The live run exposed the missing persisted notified flag; that regression is fixed in this PR and covered by a focused assertion.
Metric Result
Raw HTTPS p95, sequential / 30 concurrent 9 ms / 40 ms
Authenticated listOutputs p95, one identity / three identities 256 ms / 143 ms
Sequential writes 1.8 tx/s
Three-wide concurrent writes 9.1 tx/s
Three-identity concurrent writes 6.2 tx/s
Arcade-token concurrent ingestion 21.3 tx/s
Bounded ceiling batches 2: 14.6 tx/s; 4: 12.2 tx/s; 8: 27.5 tx/s
Proof convergence 29/29 Arcade, 29/29 Storage, 0 failures

Verification

  • ts-standard on the changed TypeScript files
  • wallet-toolbox build and type-check
  • focused TaskArcadeSSE tests: 24/24
  • wallet-toolbox non-manual suite: 124 suites, 1,127 tests passed
  • production E2E suite: 12/12 passed
  • branch is rebased on current main (29d614b7844a9ed113edc47462f7ed56ef03c534)

See e2e/storage/README.md for the bounded run command and environment variables.

@sambabbage sambabbage marked this pull request as draft June 29, 2026 15:38
Adds StorageE2E.man.test.ts with 8 tests across 3 suites covering read
TPS (sequential/parallel/BRC-100/multi-user), write TPS
(sequential/single-user-parallel/multi-user), and SSE throughput
(sequential delivery, concurrent ingestion, ceiling escalation via
noSend + Arcade postBeef pattern).

Also adds e2e/storage/README.md documenting env vars, pre-funding,
run commands, and observed baselines from initial mainnet validation
(10/10 proofs delivered, 7.2 tx/s broadcast, 0.60 tx/s sequential write).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@ty-everett ty-everett force-pushed the test/storage-arcade-e2e branch from ef25758 to 342cae7 Compare July 12, 2026 02:31
@ty-everett ty-everett marked this pull request as ready for review July 12, 2026 04:10
@sonarqubecloud

Copy link
Copy Markdown

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.

2 participants