Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Warp E2E Stress Testing #449

Closed
aaronbuchwald opened this issue Jan 19, 2023 · 0 comments
Closed

Warp E2E Stress Testing #449

aaronbuchwald opened this issue Jan 19, 2023 · 0 comments
Assignees
Labels
Milestone

Comments

@aaronbuchwald
Copy link
Collaborator

aaronbuchwald commented Jan 19, 2023

Warp currently includes one very small e2e test to ensure that we can send and receive a single warp message on a network where two subnets talk to each other. We should expand on this to add a load test utilizing the load simulator.

The current load simulator pre-generates a list of transactions and adds them to a channel to satisfy the requirements for the TxSequence interface: https://github.com/ava-labs/subnet-evm/blob/v0.5.2/cmd/simulator/txs/tx_generator.go and issuing them through a tx "agent", which executes all of the transactions in its sequence until the channel has been closed: https://github.com/ava-labs/subnet-evm/blob/v0.5.2/cmd/simulator/txs/agent.go#L29.

We should use this to create independent workers that will send warp messages, aggregate signatures, and then deliver them.

Each worker should create TxSequenceA to send warp messages and TxSequenceB to deliver them to the other subnet.

  1. Create a TxSeqeunceA (https://github.com/ava-labs/subnet-evm/blob/v0.5.2/cmd/simulator/txs/tx_generator.go) that issues a batch of N (could be 1) unique send warp messages on Subnet A (maybe use the blockchainID + address + nonce as the payload of the message)
  2. Wait for them to be accepted and aggregate signatures for each warp message (note: we can supply a worker to the Agent that adds transactions to a queue as they get accepted to aggregate warp signatures and pass them off to TxSequenceB)
  3. Once each warp signature has been generated, generate transactions and add them to TxSequenceB (which will have a separate agent waiting for transactions on the queue)

This should support creating multiple workers to generate a sequence of send/receive transactions on SubnetA and SubnetB. As the first load test, we should run this with only two different subnets, so that we can create multiple pairs of these agents and support running either one agent that sends messages from SubnetA to Subnet B or multiple back and forth, so that we can scale up the load.

@aaronbuchwald aaronbuchwald self-assigned this Jan 19, 2023
@meeshhhh meeshhhh moved this to 🏗 In progress in Avalanche Warp Messaging Jan 23, 2023
@aaronbuchwald aaronbuchwald added this to EVM May 1, 2023
@aaronbuchwald aaronbuchwald moved this to Backlog 🗄 in EVM May 1, 2023
@aaronbuchwald aaronbuchwald moved this from Backlog 🗄 to Selected for Development ⏳ in EVM Jun 16, 2023
@aaronbuchwald aaronbuchwald moved this from Selected for Development ⏳ to In Progress 🏗 in EVM Jul 29, 2023
@ceyonur ceyonur added this to the v0.5.7 milestone Aug 31, 2023
@github-project-automation github-project-automation bot moved this from Backlog 🗄️ to Done ✅ in Platform Engineering Group Nov 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Archived in project
Status: 🏗 In progress
Status: In Progress 🏗
Development

No branches or pull requests

3 participants