Skip to content

Etherlink/firehose: Stress test for Transaction pool

Hantang Sun requested to merge hantang@evm@tx_pool_stress_test into master

Context

This MR is used for stress testing the transaction pool in the evm node, and is based on the tool created in !12312 (merged). This MR has already been used in multiple stress tests of Etherlink

Steps to run the stress test

Building the tool

cd etherlink/firehose/
cargo build --release
alias firehose='cargo run -q --release --'

Configure the tool

firehose configure --endpoint <ENDPOINT> --controller <SECRET_KEY>

Scenarios

Flooding the sequencer with many small transactions that would stay in transaction pool

firehose flood --workers 20 --kind random-nonce

Flooding the sequencer with a few large transactions that would stay in transaction pool (This caused block production to stop in one stress test)

firehose flood --workers 20 --kind large-payload-random-nonce

Flooding the sequencer with a few large transactions that would be injected (This caused the sequencer node to crash in one stress test)

firehose flood --workers 20 --kind large-payload-correct-nonce

Checklist

  • Document the interface of any function added or modified (see the coding guidelines)
  • Document any change to the user interface, including configuration parameters (see node configuration)
  • Provide automatic testing (see the testing guide).
  • For new features and bug fixes, add an item in the appropriate changelog (docs/protocols/alpha.rst for the protocol and the environment, CHANGES.rst at the root of the repository for everything else).
  • Select suitable reviewers using the Reviewers field below.
  • Select as Assignee the next person who should take action on that MR
Edited by Hantang Sun

Merge request reports