A tool for benchmarking Ethereum clients.
Warning
This tool is under active development and the benchmarking methodology has not yet been thoroughly reviewed. Results should be interpreted with caution.
Docker required.
-
Start up docker cli
-
Run the binary using one of these commands:
cargo run # Run tests for all clients cargo run --client geth # Run tests for geth only cargo run --client reth # Run tests for reth only
You can use
-c
as a shorter alternative to--client
.
Cargo.toml # Workspace configuration
📁 clients # Docker files for clients
├── geth.yaml
└── ...
📁 config
├── config.toml # Project configuration
├── genesis.json # Genesis configuration
├── jwt.hex # Jwt token
└── 📁 docker # Docker configurations
├── common.yaml # Base docker service
└── entrypoint.sh # Docker entrypoint
📁 profiler # Benchmarking logic
├── Cargo.toml
└── 📁 src
├── bench_summary.rs # Payload interface
├── docker.rs # Docker interface
├── engine_api.rs # Engine API interface
├── kute.rs # Client interface
└── main.rs # Entrypoint
MIT/APACHE
The idea to use engine api and benchmark engine api requests was from Nethermind's gas benchmarking tool