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

Testing Plan for eth_sendMegabundle #87

Closed
15 tasks done
pgebheim opened this issue Aug 27, 2021 · 4 comments
Closed
15 tasks done

Testing Plan for eth_sendMegabundle #87

pgebheim opened this issue Aug 27, 2021 · 4 comments
Assignees

Comments

@pgebheim
Copy link

pgebheim commented Aug 27, 2021

re: #52

  • Negative: Doesn't process bundles from untrusted relays
  • Negative: Payment conditional on block coinbase fails when expected
  • Negative: Bundle that reverts is ignored
  • Negative: Errors if signature error from trusted relay
  • Negative: Doesn't process bundles with revert txs
  • Negative: Doesn't process bundles with txs that use insufficient gas

  • Positive: Megabundle of various sizes, verify that they get mined and show up in top of bundle
  • Positive: TX fee payments (total profit computed correctly)
  • Positive: coinbase transfer fee payments (total profit computed correctly)
  • Positive: TX fee & coinbase transfer fee payments (total profit computed correctly)
  • Positive: Payment conditional on block coinbase succeeds when expected
  • Positive: Bundle with specified reverting txn is successfully mined
  • Positive: Miner selects the most profitable of N bundles or 1 megabundle, testing post sides.
  • Positive: Submit multiple megabundles from different relayers, verify most profitable one wins
  • Positive: Submit multiple bundles and megabundle from different relayers, verify final ordering
@pgebheim pgebheim added this to the v0.4 milestone Aug 27, 2021
@bogatyy
Copy link

bogatyy commented Aug 28, 2021

Test cases look great! Tried to think what else is worth testing for correctness, can't think of anything else, we're covered.

If we want to get super fancy, we can also do performance and anti-DDoS testing. Specifically, flood the mev-geth instance with regular bundles, and double-check that megabundles are still processed correctly in a separate worker.
And vice versa, flood one megabundle worker with megabundles and see that the rest of the system does its own processing correctly (in a separate thread, likely on a different CPU core).

@pgebheim
Copy link
Author

pgebheim commented Aug 28, 2021

Agreed @bogatyy -- multi-core performance tests would be nice. It seems more like a one-off style test for a start unless there's already a good way to measure that throughput from the integration tests.

@taarushv would love your feedback here too.

@taarushv
Copy link

Update on this, Was able to reuse this repo (previously setup for 1559 tests) to run the tests with a docker miner container + relay script over the weekend. Was able to set it up to test the negatives and positives (sans the last 3), will clean up the repo and push the changes on the new main branch first thing in the morning!

@thegostep
Copy link

feature was completed and released

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

No branches or pull requests

4 participants