Skip to content

stress-test: add sequential upload, bulk bitswap read, and renew scenarios#475

Draft
karolk91 wants to merge 2 commits into
mainfrom
kk-stress-tests-read-and-improvements
Draft

stress-test: add sequential upload, bulk bitswap read, and renew scenarios#475
karolk91 wants to merge 2 commits into
mainfrom
kk-stress-tests-read-and-improvements

Conversation

@karolk91
Copy link
Copy Markdown
Collaborator

@karolk91 karolk91 commented May 1, 2026

Description

Adds three new stress test scenarios to the bulletin-stress-test crate, along with supporting infrastructure.

New scenarios

Sequential nonce upload (throughput sequential-upload)
Single-account upload using sequential nonces with per-block re-signing. Uses system_accountNextIndex for best-block nonce tracking and create_partial_offline for zero-RPC signing. Supports --total-size, --chunk-size, and --instances for parallel uploads.

Bulk bitswap read (bitswap bulk-read)
Discovers CIDs from on-chain TransactionStorage::Transactions via SCALE decoding, then downloads them round-robin with configurable concurrency and multi-peer support. Supports --read-size, --read-concurrency, --min-size, --max-size, --batch-size.

Renew stress (renew)
Uploads items then fills blocks with renew extrinsics, logging System::BlockWeight per block for weight verification. Supports --store-count, --chunk-size, --target-blocks.

Bitswap client improvements

  • Multi-CID batched wantlists (up to 16 CIDs per request)
  • VecDeque-based response matching to fix stale substream race condition
  • Codec limit increased from 2 MB to 16 MB
  • Multi-peer round-robin worker distribution

CLI improvements

  • Multi-RPC submission via comma-separated --ws-url
  • Multi-peer bitswap via comma-separated --p2p-multiaddr
  • P2P address auto-discovery via system_networkState RPC
  • tracing output directed to stderr (stdout reserved for --output json)

Zombienet integration tests

  • test_parachain_bitswap_read — B2 concurrent read sweep (1–64 clients)
  • test_parachain_bitswap_bulk_read — upload 100 MB mixed, read 1 GB via bitswap
  • test_parachain_sequential_upload — single-account sequential nonce upload
  • test_parachain_renew_stress — store 520 items, renew for 5 blocks
  • Multi-node network config: 3-core elastic scaling, 2 collators with --ipfs-server, 2 RPC nodes
  • assign_cores utility bin for on-chain coretime assignment

@karolk91 karolk91 changed the title stress-test: add sequential upload, bulk bitswap read, and renew scen… stress-test: add sequential upload, bulk bitswap read, and renew scenarios May 1, 2026
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