This project is to execute all the transactions within a group of blocks (e.g 100) again by using the same EVM environment when these blocks are executed. And measure the on-cpu and off-cpu performance during this action.
-
Rust and Cargo
-
Maintain a Reth archive node.
-
Perf
-
bcc - offcputime
-
FlameGraph
In this project, FlameGragh is downloaded through git.
git clone https://github.com/brendangregg/FlameGraph
In this document, FlameGraph is placed at the same level of rust_runner folder.
- Use cargo tool to update and build the project.
cargo update
cargo build
-
After cargo build, you can find the exec file named "rust_runner" at ./target/debug folder.
-
If there are any change in main.rs and Cargo.toml, you need to run "cargo build" again in order to crate a new exec file.
- Run check_rust_runner.sh script, collect the on-cpu and off-cpu data at the same time.
sh ckeck_rust_runner.sh
- After run this script, 4 files are created.