Etherlink/firehose: Stress test for Transaction pool
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