WIP: Simple Tool for benchmarking DSN
What
This is a rework of https://github.com/baking-bad/sequencer/pull/17, where the dsn protobuf definitions are used to integrate with a Dsn, rather than the old Narwhal+Exporter ones.
Why
Because we want all the code to be in tezos/tezos. And because new dsn prototypes will expose an API that conforms to the dsn protobuf definition.
How
Using rust 1.74.0
Manually testing the MR
- Run the rust implementation of the single node sequencer (!11756). Since this is in a separate branch for the moment, you might need to clone the tezos repo in a different directory and checkout the branch.
- Run the benchmark tool pointing to the single sequencer node for sending transactions and receiving preblocks, specify an output csv file to collect statistics:
RUST_LOG=info cargo run -- benchmark --listener-endpoint http://127.0.0.1:8998 --spammer-endpoint http://127.0.0.1:8998 --tx-output ${HOME}/results.csv --run-for 60
- Simple statistics are displayed when the benchmark ends, e.g.
Transactions: 57, Mean: 233.8245614035088, Median: Some(208.0), Std-dev: 144.52197341666155
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 Andrea Cerone