Skip to content

WIP: Simple Tool for benchmarking DSN

Andrea Cerone requested to merge andrea@dsn-benchmark-tool into master

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

Merge request reports