From 52da6ca298e8e62ccd1639f985c79548d8c1fe2b Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Fri, 29 Nov 2024 15:34:10 -0300 Subject: [PATCH 01/80] script that watches balance of account --- Makefile | 6 ++++++ flamegraph.sh | 13 +++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 flamegraph.sh diff --git a/Makefile b/Makefile index 5412ccfeaf..f292d94eef 100644 --- a/Makefile +++ b/Makefile @@ -105,3 +105,9 @@ clean-hive-logs: ## ๐Ÿงน Clean Hive logs loc: cargo run -p loc + +flamegraph: + sudo -E CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 + +test-load: + ethrex_l2 test load --path ./test_data/private_keys.txt -i 1000 -v --value 10000000 --to 0xFCbaC0713ACf16708aB6BC977227041FA1BC618D diff --git a/flamegraph.sh b/flamegraph.sh new file mode 100644 index 0000000000..cb853f1c00 --- /dev/null +++ b/flamegraph.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +output=$(cast balance 0xFCbaC0713ACf16708aB6BC977227041FA1BC618D --rpc-url=http://localhost:1729 2>&1) +end_val=$((172 * 1000 * 10000000)) +echo "ini $output" +echo "end $end_val" +while [[ $output -le $end_val ]]; do + sleep 5 + output=$(cast balance 0xFCbaC0713ACf16708aB6BC977227041FA1BC618D --rpc-url=http://localhost:1729 2>&1) + echo "out $output" +done + +echo "fin $output" From 441fc6a5cfb54cb7e5dadf7e4d4ef1dfa27eb5ed Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Mon, 2 Dec 2024 10:34:38 -0300 Subject: [PATCH 02/80] Run flamegraph reporting in Github CI --- .github/scripts/flamegraph.sh | 24 ++++++++++++++ .github/workflows/flamegraph_reporter.yaml | 37 ++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 .github/scripts/flamegraph.sh create mode 100644 .github/workflows/flamegraph_reporter.yaml diff --git a/.github/scripts/flamegraph.sh b/.github/scripts/flamegraph.sh new file mode 100644 index 0000000000..4c5ecd1f13 --- /dev/null +++ b/.github/scripts/flamegraph.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd +end_val=$((172 * 1000 * 10000000)) + +echo "Running ethrex..." +CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 & +echo "Sleeping 10s before running test..." +sleep 10 +echo "Sending to account $account" +ethrex_l2 test load --path ./test_data/private_keys.txt -i 1000 -v --value 10000000 --to $account + +echo "Monitoring..." +output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) +echo "ini $output" +echo "end $end_val" +while [[ $output -le $end_val ]]; do + sleep 5 + output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) + echo "out $output" +done +echo "Balance of $output reached, killing process ethrex" + +sudo pkill ethrex && while pgrep -l cargo flamegraph; do sleep 1;done; diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml new file mode 100644 index 0000000000..99df06008c --- /dev/null +++ b/.github/workflows/flamegraph_reporter.yaml @@ -0,0 +1,37 @@ +name: Daily Flamegraph Reporter + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "**" ] + workflow_dispatch: + +env: + RUST_VERSION: 1.81.0 + +jobs: + flamegraph: + name: Generate Flamegraph for load test + runs-on: ubuntu-latest + steps: + - name: Checkout sources + uses: actions/checkout@v4 + + - name: Rustup toolchain install + uses: dtolnay/rust-toolchain@stable + with: + toolchain: ${{ env.RUST_VERSION }} + + - name: Install flamegraph + run: cargo install flamegraph + + - name: Install ethrex_l2 cli + run: cargo install --path cmd/ethrex_l2 + + - name: Caching + uses: Swatinem/rust-cache@v2 + + - name: Generate Flamegraph for Ethrex + run: | + sh .github/scripts/flamegraph.sh From 1ce321d37255d9c6c69e60ed14ab1f3c1a378327 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Mon, 2 Dec 2024 12:07:08 -0300 Subject: [PATCH 03/80] feat(cli/ethrex_l2): allow --default parameter in "ethrex_l2 config create" --- cmd/ethrex_l2/src/commands/config.rs | 24 ++++++++++++---- cmd/ethrex_l2/src/config.rs | 9 ++++-- cmd/ethrex_l2/src/utils/config/mod.rs | 41 ++++++++++++++++++++++++--- 3 files changed, 61 insertions(+), 13 deletions(-) diff --git a/cmd/ethrex_l2/src/commands/config.rs b/cmd/ethrex_l2/src/commands/config.rs index abe1f7cdf6..28f7e80b4c 100644 --- a/cmd/ethrex_l2/src/commands/config.rs +++ b/cmd/ethrex_l2/src/commands/config.rs @@ -1,3 +1,4 @@ +use crate::utils::config::default_config; use crate::utils::{ config::{ config_file_names, config_path, config_path_interactive_selection, confirm, @@ -28,7 +29,11 @@ pub(crate) enum Command { opts: Box, }, #[clap(about = "Create a new config.")] - Create { config_name: String }, + Create { + config_name: String, + #[arg(long = "default", required = false)] + default: bool, + }, #[clap(about = "Set the config to use.")] Set { #[arg( @@ -99,7 +104,7 @@ impl Command { let (new_config, config_path) = if let Some(ref config_name) = config_name { let config_path = config_path(config_name)?; if !config_path.exists() { - return confirm_config_creation(config_name.clone()).await; + return confirm_config_creation(config_name.clone(), false).await; } let new_config = if opts.is_empty() { edit_config_by_name_interactively(&config_path)? @@ -117,7 +122,10 @@ impl Command { } set_new_config(config_path.clone(), show).await?; } - Command::Create { config_name } => { + Command::Create { + config_name, + default, + } => { let config_path = config_path(&config_name)?; if config_path.exists() { let override_confirmation = confirm(CONFIG_OVERRIDE_PROMPT_MSG)?; @@ -126,7 +134,11 @@ impl Command { return Ok::<(), eyre::Error>(()); } } - let config = prompt_config()?; + let config = if default { + default_config()? + } else { + prompt_config()? + }; let toml_config = toml::to_string_pretty(&config)?; println!( "Config created at: {}\n{toml_config}", @@ -138,7 +150,7 @@ impl Command { let config_path_to_select = if let Some(config_name) = config_name { let config_path_to_select = config_path(&config_name)?; if !config_path_to_select.exists() { - return confirm_config_creation(config_name).await; + return confirm_config_creation(config_name, false).await; } config_path_to_select } else { @@ -154,7 +166,7 @@ impl Command { let config_to_display_path = if let Some(config_name) = config_name { let config_to_display_path = config_path(&config_name)?; if !config_to_display_path.exists() { - return confirm_config_creation(config_name).await; + return confirm_config_creation(config_name, false).await; } config_to_display_path } else { diff --git a/cmd/ethrex_l2/src/config.rs b/cmd/ethrex_l2/src/config.rs index b951f47878..1705b38abb 100644 --- a/cmd/ethrex_l2/src/config.rs +++ b/cmd/ethrex_l2/src/config.rs @@ -71,9 +71,12 @@ pub async fn load_selected_config() -> eyre::Result { DEFAULT_CONFIG_NAME.to_owned(), )? .to_owned(); - commands::config::Command::Create { config_name } - .run() - .await?; + commands::config::Command::Create { + config_name, + default: false, + } + .run() + .await?; } } let config = std::fs::read_to_string(config_path).context("Failed to read config file")?; diff --git a/cmd/ethrex_l2/src/utils/config/mod.rs b/cmd/ethrex_l2/src/utils/config/mod.rs index 5c405db541..7a75d244ee 100644 --- a/cmd/ethrex_l2/src/utils/config/mod.rs +++ b/cmd/ethrex_l2/src/utils/config/mod.rs @@ -135,13 +135,46 @@ pub fn prompt_config() -> eyre::Result { Ok(prompted_config) } -pub async fn confirm_config_creation(config_name: String) -> eyre::Result<()> { +pub fn default_config() -> eyre::Result { + let prompted_config = EthrexL2Config { + network: NetworkConfig { + l1_rpc_url: DEFAULT_L1_RPC_URL.into(), + l1_chain_id: DEFAULT_L1_CHAIN_ID, + l2_rpc_url: DEFAULT_L2_RPC_URL.into(), + l2_chain_id: DEFAULT_L2_CHAIN_ID, + l2_explorer_url: DEFAULT_L2_EXPLORER_URL.into(), + l1_explorer_url: DEFAULT_L1_EXPLORER_URL.into(), + }, + wallet: WalletConfig { + private_key: { + let prompted_private_key = format!( + "0x{}", + hex::encode( + SecretKey::from_slice(DEFAULT_PRIVATE_KEY.as_bytes())?.secret_bytes(), + ) + ); + SecretKey::from_slice(H256::from_str(&prompted_private_key[2..])?.as_fixed_bytes())? + }, + address: DEFAULT_ADDRESS, + }, + contracts: ContractsConfig { + common_bridge: DEFAULT_CONTRACTS_COMMON_BRIDGE_ADDRESS, + on_chain_proposer: DEFAULT_CONTRACTS_ON_CHAIN_PROPOSER_ADDRESS, + }, + }; + Ok(prompted_config) +} + +pub async fn confirm_config_creation(config_name: String, default: bool) -> eyre::Result<()> { let create_confirmation = confirm(CONFIG_CREATE_PROMPT_MSG)?; if create_confirmation { Box::pin(async { - commands::config::Command::Create { config_name } - .run() - .await + commands::config::Command::Create { + config_name, + default, + } + .run() + .await }) .await } else { From f9cb7bcfe262b9389e9feeac1f761bc225eb8c85 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Mon, 2 Dec 2024 12:09:57 -0300 Subject: [PATCH 04/80] fix: create ethrex_l2 config in flamegraph_reporter.yaml --- .github/scripts/flamegraph.sh | 8 ++++---- .github/workflows/flamegraph_reporter.yaml | 18 ++++++++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/.github/scripts/flamegraph.sh b/.github/scripts/flamegraph.sh index 4c5ecd1f13..0810f40de3 100644 --- a/.github/scripts/flamegraph.sh +++ b/.github/scripts/flamegraph.sh @@ -3,10 +3,10 @@ account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((172 * 1000 * 10000000)) -echo "Running ethrex..." -CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 & -echo "Sleeping 10s before running test..." -sleep 10 +#echo "Running ethrex..." +#CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 & +#echo "Sleeping 10s before running test..." +#sleep 10 echo "Sending to account $account" ethrex_l2 test load --path ./test_data/private_keys.txt -i 1000 -v --value 10000000 --to $account diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 99df06008c..3ad4eb298c 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -23,15 +23,25 @@ jobs: with: toolchain: ${{ env.RUST_VERSION }} + - name: Caching + uses: Swatinem/rust-cache@v2 + - name: Install flamegraph run: cargo install flamegraph - name: Install ethrex_l2 cli - run: cargo install --path cmd/ethrex_l2 + run: | + cargo install --path cmd/ethrex_l2 + ethrex_l2 config create default --default + ethrex_l2 config set default - - name: Caching - uses: Swatinem/rust-cache@v2 + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 - name: Generate Flamegraph for Ethrex + shell: bash run: | - sh .github/scripts/flamegraph.sh + CARGO_PROFILE_RELEASE_DEBUG=true cargo build --release --bin ethrex --features dev && + CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 & + sleep 10 && + bash .github/scripts/flamegraph.sh From d3679ece3ce68973ed086447e8ff8d90dbe6f4a1 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Mon, 2 Dec 2024 14:38:38 -0300 Subject: [PATCH 05/80] Make load test retry if connection failed --- .github/scripts/flamegraph.sh | 21 +++--- .github/workflows/flamegraph_reporter.yaml | 48 ++++++++++--- cmd/ethrex_l2/src/commands/test.rs | 78 ++++++++++++++-------- 3 files changed, 100 insertions(+), 47 deletions(-) diff --git a/.github/scripts/flamegraph.sh b/.github/scripts/flamegraph.sh index 0810f40de3..08eebcac47 100644 --- a/.github/scripts/flamegraph.sh +++ b/.github/scripts/flamegraph.sh @@ -1,24 +1,19 @@ #!/bin/bash +iterations=10 +value=10000000 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd -end_val=$((172 * 1000 * 10000000)) +end_val=$((172 * $iterations * $value)) -#echo "Running ethrex..." -#CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 & -#echo "Sleeping 10s before running test..." -#sleep 10 echo "Sending to account $account" -ethrex_l2 test load --path ./test_data/private_keys.txt -i 1000 -v --value 10000000 --to $account +ethrex_l2 test load --path ./test_data/private_keys.txt -i $iterations -v --value $value --to $account -echo "Monitoring..." +echo "Waiting for transactions to be processed..." output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) -echo "ini $output" -echo "end $end_val" while [[ $output -le $end_val ]]; do sleep 5 output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) - echo "out $output" done -echo "Balance of $output reached, killing process ethrex" - -sudo pkill ethrex && while pgrep -l cargo flamegraph; do sleep 1;done; +echo "Done. Balance of $output reached, killing process ethrex" +sudo pkill ethrex && while pgrep -l "cargo-flamegraph"; do sleep 1;done; +echo "ethrex killed" diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 3ad4eb298c..63921cbe6a 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -26,8 +26,18 @@ jobs: - name: Caching uses: Swatinem/rust-cache@v2 + - name: Change perf settings + run: | + sudo sysctl kernel.perf_event_paranoid=-1 + sudo perf list hw + - name: Install flamegraph - run: cargo install flamegraph + run: | + cargo install flamegraph + cargo install inferno + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 - name: Install ethrex_l2 cli run: | @@ -35,13 +45,35 @@ jobs: ethrex_l2 config create default --default ethrex_l2 config set default - - name: Install Foundry - uses: foundry-rs/foundry-toolchain@v1 + - name: Build ethrex + run: CARGO_PROFILE_RELEASE_DEBUG=true cargo build --release --bin ethrex --features dev - - name: Generate Flamegraph for Ethrex + - name: Generate Flamegraph data for Ethrex shell: bash run: | - CARGO_PROFILE_RELEASE_DEBUG=true cargo build --release --bin ethrex --features dev && - CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 & - sleep 10 && - bash .github/scripts/flamegraph.sh + CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 & + echo "waiting to execute load test..." + sleep 30 && + echo "executing load test..." + bash .github/scripts/flamegraph.sh && + echo "Load test finished" + + - name: Generate SVG + shell: bash + run: | + perf script -v -i perf.data > stack.data + inferno-collapse-perf < stack.data > collapsed.data + inferno-flamegraph < collapsed.data > flamegraph.svg + file flamegraph.svg + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: perf.data + path: ./perf.data + + - name: Upload artifacts - flamegraph.svg + uses: actions/upload-artifact@v4 + with: + name: flamegraph.svg + path: ./flamegraph.svg diff --git a/cmd/ethrex_l2/src/commands/test.rs b/cmd/ethrex_l2/src/commands/test.rs index 3551fa423e..8be1b4928d 100644 --- a/cmd/ethrex_l2/src/commands/test.rs +++ b/cmd/ethrex_l2/src/commands/test.rs @@ -115,6 +115,25 @@ async fn transfer_from( retries } +async fn test_connection(cfg: EthrexL2Config) -> bool { + let client = EthClient::new(&cfg.network.l2_rpc_url); + let mut retries = 0; + while retries < 50 { + match client.get_chain_id().await { + Ok(_) => { + return true; + } + Err(err) => { + println!("Connection to server failed: {err}, retrying ({retries}/50)"); + retries += 1; + sleep(std::time::Duration::from_secs(30)); + } + } + } + println!("Failed to establish connection to the server"); + false +} + impl Command { pub async fn run(self, cfg: EthrexL2Config) -> eyre::Result<()> { match self { @@ -125,34 +144,41 @@ impl Command { iterations, verbose, } => { - if let Ok(lines) = read_lines(path) { - let to_address = match to { - Some(address) => address, - None => Address::random(), - }; - println!("Sending to: {to_address:#x}"); - - let mut threads = vec![]; - for pk in lines.map_while(Result::ok) { - let thread = tokio::spawn(transfer_from( - pk, - to_address, - value, - iterations, - verbose, - cfg.clone(), - )); - threads.push(thread); - } - - let mut retries = 0; - for thread in threads { - retries += thread.await?; - } - - println!("Total retries: {retries}"); + let Ok(lines) = read_lines(path) else { + return Ok(()); + }; + + if !test_connection(cfg.clone()).await { + println!("Test failed to establish connection to server"); + return Ok(()); + } + + let to_address = match to { + Some(address) => address, + None => Address::random(), + }; + println!("Sending to: {to_address:#x}"); + + let mut threads = vec![]; + for pk in lines.map_while(Result::ok) { + let thread = tokio::spawn(transfer_from( + pk, + to_address, + value, + iterations, + verbose, + cfg.clone(), + )); + threads.push(thread); } + let mut retries = 0; + for thread in threads { + retries += thread.await?; + } + + println!("Total retries: {retries}"); + Ok(()) } } From 37fcfd1f79f80acde4c7fecf2363156e50f9145e Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Tue, 3 Dec 2024 16:27:05 -0300 Subject: [PATCH 06/80] Use addr2line for faster perf usage --- .github/workflows/flamegraph_reporter.yaml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 63921cbe6a..be4b6b1839 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -36,6 +36,16 @@ jobs: cargo install flamegraph cargo install inferno + - name: Build addr2line + shell: bash + run: | + cd ${HOME} + git clone https://github.com/gimli-rs/addr2line + cd addr2line + cargo build --release --bin addr2line --features=bin + cd $HOME + + - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 @@ -51,7 +61,7 @@ jobs: - name: Generate Flamegraph data for Ethrex shell: bash run: | - CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 & + PATH=$HOME/addr2line/target/release:$PATH CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 & echo "waiting to execute load test..." sleep 30 && echo "executing load test..." From 122a4a8e31d8441722dff9ac9faea29249b1eecd Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Tue, 3 Dec 2024 16:49:00 -0300 Subject: [PATCH 07/80] Use addr2line for faster perf usage 2 --- .github/workflows/flamegraph_reporter.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index be4b6b1839..4718912c67 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -39,6 +39,7 @@ jobs: - name: Build addr2line shell: bash run: | + echo "bulding addr2line" cd ${HOME} git clone https://github.com/gimli-rs/addr2line cd addr2line From 830159fef96fbfc43c3f7ecac407830837ae32a3 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Tue, 3 Dec 2024 17:12:19 -0300 Subject: [PATCH 08/80] Run perf with --no-inline to make it faster --- .github/workflows/flamegraph_reporter.yaml | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 4718912c67..aafe14443e 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -36,17 +36,6 @@ jobs: cargo install flamegraph cargo install inferno - - name: Build addr2line - shell: bash - run: | - echo "bulding addr2line" - cd ${HOME} - git clone https://github.com/gimli-rs/addr2line - cd addr2line - cargo build --release --bin addr2line --features=bin - cd $HOME - - - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 @@ -62,7 +51,7 @@ jobs: - name: Generate Flamegraph data for Ethrex shell: bash run: | - PATH=$HOME/addr2line/target/release:$PATH CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 & + CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 & echo "waiting to execute load test..." sleep 30 && echo "executing load test..." @@ -72,7 +61,7 @@ jobs: - name: Generate SVG shell: bash run: | - perf script -v -i perf.data > stack.data + perf script -v -i perf.data --no-inline > stack.data inferno-collapse-perf < stack.data > collapsed.data inferno-flamegraph < collapsed.data > flamegraph.svg file flamegraph.svg From 967e79e90f0e706155e866404f37ede0434b340b Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Tue, 3 Dec 2024 17:29:53 -0300 Subject: [PATCH 09/80] Run perf with --no-inline to make it faster (2) --- .github/workflows/flamegraph_reporter.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index aafe14443e..97bfd2cfa7 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -61,6 +61,7 @@ jobs: - name: Generate SVG shell: bash run: | + echo "running perf" perf script -v -i perf.data --no-inline > stack.data inferno-collapse-perf < stack.data > collapsed.data inferno-flamegraph < collapsed.data > flamegraph.svg From fbb456fce17d91d46375dc40309a4f0a36a3e33e Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Tue, 3 Dec 2024 17:53:51 -0300 Subject: [PATCH 10/80] Run inferno-collapse-perf with --tid parameter --- .github/scripts/flamegraph.sh | 2 +- .github/workflows/flamegraph_reporter.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/scripts/flamegraph.sh b/.github/scripts/flamegraph.sh index 08eebcac47..aa5d18e207 100644 --- a/.github/scripts/flamegraph.sh +++ b/.github/scripts/flamegraph.sh @@ -1,6 +1,6 @@ #!/bin/bash -iterations=10 +iterations=1000 value=10000000 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((172 * $iterations * $value)) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 97bfd2cfa7..93a521281d 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -63,7 +63,7 @@ jobs: run: | echo "running perf" perf script -v -i perf.data --no-inline > stack.data - inferno-collapse-perf < stack.data > collapsed.data + inferno-collapse-perf --tid < stack.data > collapsed.data inferno-flamegraph < collapsed.data > flamegraph.svg file flamegraph.svg From 803a72f97dcb428ae0bc0b2592551e252f5da090 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Tue, 3 Dec 2024 18:06:30 -0300 Subject: [PATCH 11/80] Run inferno-collapse-perf without --tid parameter --- .github/workflows/flamegraph_reporter.yaml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 93a521281d..af28b6dc35 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -63,16 +63,10 @@ jobs: run: | echo "running perf" perf script -v -i perf.data --no-inline > stack.data - inferno-collapse-perf --tid < stack.data > collapsed.data + inferno-collapse-perf < stack.data > collapsed.data inferno-flamegraph < collapsed.data > flamegraph.svg file flamegraph.svg - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: perf.data - path: ./perf.data - - name: Upload artifacts - flamegraph.svg uses: actions/upload-artifact@v4 with: From 0b783ea02528010f30eb63901852341a76cbc86e Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Wed, 4 Dec 2024 09:55:44 -0300 Subject: [PATCH 12/80] Run flamegraph for reth as well --- .github/scripts/flamegraph_reth.sh | 21 +++++++++++++++++ .github/workflows/flamegraph_reporter.yaml | 26 +++++++++++++++++++++- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 .github/scripts/flamegraph_reth.sh diff --git a/.github/scripts/flamegraph_reth.sh b/.github/scripts/flamegraph_reth.sh new file mode 100644 index 0000000000..ef976586b3 --- /dev/null +++ b/.github/scripts/flamegraph_reth.sh @@ -0,0 +1,21 @@ +#!/bin/bash +cd "$(dirname "$0")" || exit # Make sure to run from script's directory + +account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd +value=10000000 +end_val=$((172 * 1000 * $value)) + +ethrex_l2 test load --path ../../test_data/private_keys.txt -i 1000 -v --value $value --to $account + +echo "Monitoring..." +output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) +echo "ini $output" +echo "end $end_val" +while [[ $output -le $end_val ]]; do + sleep 5 + output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) + echo "out $output" +done +echo "Balance of $output reached, killing process reth" + +sudo pkill reth && while pgrep -l cargo flamegraph; do sleep 1;done; diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index af28b6dc35..7de2ccd2df 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -9,6 +9,7 @@ on: env: RUST_VERSION: 1.81.0 + RUST_RETH_VERSION: 1.82.0 jobs: flamegraph: @@ -21,7 +22,7 @@ jobs: - name: Rustup toolchain install uses: dtolnay/rust-toolchain@stable with: - toolchain: ${{ env.RUST_VERSION }} + toolchain: ${{ env.RUST_RETH_VERSION }} - name: Caching uses: Swatinem/rust-cache@v2 @@ -45,6 +46,29 @@ jobs: ethrex_l2 config create default --default ethrex_l2 config set default + - name: Checkout reth + uses: actions/checkout@v4 + with: + repository: paradigmxyz/reth + path: './reth' + + - name: Build and test reth + shell: bash + run: | + ls -las + mv ./reth .. + cd ../reth + ls -las + cargo flamegraph --bin reth --profile profiling -- node --chain ../ethrex/test_data/genesis-load-test.json --dev \ + --dev.block-time 5000ms --http.port 1729 --txpool.max-pending-txns 100000000 --txpool.max-new-txns 1000000000 \ + --txpool.pending-max-count 100000000 --txpool.pending-max-size 10000000000 --txpool.basefee-max-count 100000000000 \ + --txpool.basefee-max-size 1000000000000 --txpool.queued-max-count 1000000000 & + echo "waiting to execute load test..." + sleep 30 && + echo "executing load test..." + bash ../ethrex/.github/scripts/flamegraph_reth.sh && + echo "Load test finished" + - name: Build ethrex run: CARGO_PROFILE_RELEASE_DEBUG=true cargo build --release --bin ethrex --features dev From 6349a7acd23f179e56b856782015bbf14f93d63f Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Wed, 4 Dec 2024 10:54:37 -0300 Subject: [PATCH 13/80] Run flamegraph for reth in parallel in a separate job --- .github/scripts/flamegraph.sh | 2 +- .github/scripts/flamegraph_reth.sh | 9 ++- .github/workflows/flamegraph_reporter.yaml | 87 +++++++++++++++++----- 3 files changed, 73 insertions(+), 25 deletions(-) diff --git a/.github/scripts/flamegraph.sh b/.github/scripts/flamegraph.sh index aa5d18e207..4d41d1dea1 100644 --- a/.github/scripts/flamegraph.sh +++ b/.github/scripts/flamegraph.sh @@ -1,6 +1,6 @@ #!/bin/bash -iterations=1000 +iterations=3 value=10000000 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((172 * $iterations * $value)) diff --git a/.github/scripts/flamegraph_reth.sh b/.github/scripts/flamegraph_reth.sh index ef976586b3..5fa50444cb 100644 --- a/.github/scripts/flamegraph_reth.sh +++ b/.github/scripts/flamegraph_reth.sh @@ -1,11 +1,12 @@ #!/bin/bash cd "$(dirname "$0")" || exit # Make sure to run from script's directory -account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd +iterations=3 value=10000000 -end_val=$((172 * 1000 * $value)) +account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd +end_val=$((172 * $iterations * $value)) -ethrex_l2 test load --path ../../test_data/private_keys.txt -i 1000 -v --value $value --to $account +ethrex_l2 test load --path ../../test_data/private_keys.txt -i $iterations -v --value $value --to $account echo "Monitoring..." output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) @@ -18,4 +19,4 @@ while [[ $output -le $end_val ]]; do done echo "Balance of $output reached, killing process reth" -sudo pkill reth && while pgrep -l cargo flamegraph; do sleep 1;done; +sudo pkill reth && while pgrep -l "cargo-flamegraph"; do sleep 1;done; diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 7de2ccd2df..3209819193 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -15,6 +15,68 @@ jobs: flamegraph: name: Generate Flamegraph for load test runs-on: ubuntu-latest + steps: + - name: Checkout sources + uses: actions/checkout@v4 + + - name: Rustup toolchain install + uses: dtolnay/rust-toolchain@stable + with: + toolchain: ${{ env.RUST_VERSION }} + + - name: Caching + uses: Swatinem/rust-cache@v2 + + - name: Change perf settings + run: | + sudo sysctl kernel.perf_event_paranoid=-1 + sudo perf list hw + + - name: Install flamegraph + run: | + cargo install flamegraph + cargo install inferno + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + + - name: Install ethrex_l2 cli + run: | + cargo install --path cmd/ethrex_l2 + ethrex_l2 config create default --default + ethrex_l2 config set default + + - name: Build ethrex + run: CARGO_PROFILE_RELEASE_DEBUG=true cargo build --release --bin ethrex --features dev + + - name: Generate Flamegraph data for Ethrex + shell: bash + run: | + CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 & + echo "waiting to execute load test..." + sleep 30 && + echo "executing load test..." + bash .github/scripts/flamegraph.sh && + echo "Load test finished" + + - name: Generate SVG + shell: bash + run: | + echo "running perf" + perf script -v -i perf.data --no-inline > stack.data + inferno-collapse-perf < stack.data > collapsed.data + inferno-flamegraph < collapsed.data > flamegraph.svg + file flamegraph.svg + + - name: Upload artifacts - flamegraph.svg + uses: actions/upload-artifact@v4 + with: + name: flamegraph.svg + path: ./flamegraph.svg + + flamegraph-reth: + name: Generate Flamegraph for Reth + runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v4 @@ -55,10 +117,8 @@ jobs: - name: Build and test reth shell: bash run: | - ls -las mv ./reth .. cd ../reth - ls -las cargo flamegraph --bin reth --profile profiling -- node --chain ../ethrex/test_data/genesis-load-test.json --dev \ --dev.block-time 5000ms --http.port 1729 --txpool.max-pending-txns 100000000 --txpool.max-new-txns 1000000000 \ --txpool.pending-max-count 100000000 --txpool.pending-max-size 10000000000 --txpool.basefee-max-count 100000000000 \ @@ -69,30 +129,17 @@ jobs: bash ../ethrex/.github/scripts/flamegraph_reth.sh && echo "Load test finished" - - name: Build ethrex - run: CARGO_PROFILE_RELEASE_DEBUG=true cargo build --release --bin ethrex --features dev - - - name: Generate Flamegraph data for Ethrex - shell: bash - run: | - CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 & - echo "waiting to execute load test..." - sleep 30 && - echo "executing load test..." - bash .github/scripts/flamegraph.sh && - echo "Load test finished" - - name: Generate SVG shell: bash run: | echo "running perf" perf script -v -i perf.data --no-inline > stack.data inferno-collapse-perf < stack.data > collapsed.data - inferno-flamegraph < collapsed.data > flamegraph.svg - file flamegraph.svg + inferno-flamegraph < collapsed.data > flamegraph_reth.svg + file flamegraph_reth.svg - - name: Upload artifacts - flamegraph.svg + - name: Upload artifacts - flamegraph_reth.svg uses: actions/upload-artifact@v4 with: - name: flamegraph.svg - path: ./flamegraph.svg + name: flamegraph_reth.svg + path: ./flamegraph_reth.svg From 89799a39476245f04ec18fd99e6a144bd6684f44 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Wed, 4 Dec 2024 12:02:39 -0300 Subject: [PATCH 14/80] Add balance to account in genesis-load-test.json --- test_data/genesis-load-test.json | 1122 +++++++++++++++--------------- 1 file changed, 563 insertions(+), 559 deletions(-) diff --git a/test_data/genesis-load-test.json b/test_data/genesis-load-test.json index 733ab3ba7b..f7a65c072c 100644 --- a/test_data/genesis-load-test.json +++ b/test_data/genesis-load-test.json @@ -1,561 +1,565 @@ { - "config": { - "chainId": 1729, - "homesteadBlock": 0, - "eip150Block": 0, - "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "eip155Block": 0, - "eip158Block": 0, - "daoForkBlock": 0, - "frontierBlock": 0, - "byzantiumBlock": 0, - "constantinopleBlock": 0, - "petersburgBlock": 0, - "muirGlacierBlock": 0, - "istanbulBlock": 0, - "berlinBlock": 0, - "londonBlock": 0, - "terminalTotalDifficulty": "0x0", - "mergeNetsplitBlock": 0, - "shanghaiTime": 0, - "cancunTime": 0, - "clique": { - "period": 0, - "epoch": 30000 - } - }, - "nonce": "0x0", - "timestamp": "0x5ca9158b", - "gasLimit": "0x37e11d600", - "difficulty": "0x0", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "coinbase": "0x0000000000000000000000000000000000000000", - "alloc": { - "0x0000bd19F707CA481886244bDd20Bd6B8a81bd3e": { - "balance": "0xc097ce7bc90715b34b9f1000000000", - "nonce": "0" - }, - "0x000cD1537A823Ae7609E3897DA8d95801B557a8a": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006d77295a0260ceAC113c5Aa15CFf0d28d9723": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000eA2e72065A2ceCA7f677Bc5E648279c2D843d": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000a52D537c4150ec274dcE3962a0d179B7E71B0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0009aEFF154De37C8e02E83f93D2FeC5EC96f8a3": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000f1EB7F258D4A7683E5D0FC3C01058841DDC6f": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000aC79590dCc656c00c4453f123AcBf10DBb086": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0002Bf507275217c9E5EE250bC1B5ca177bb4f74": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000a3fC3BFD55b37025E6F4f57B0B6121F54e5bF": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000b4C43cce938dfD3420F975591Ee46D872C136": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004b0C6de796fD980554cc7ff7B062b3B5079E1": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00025eea83bA285532F5054b238c938076833d13": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000352E93fe11f9B715fdc61864315970B3DC082": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000c0d6b7C4516a5B274C51EA331A9410fe69127": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000D06C23EeD09A7Fa81cADd7eD5C783E8a25635": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0003Ea7fDFCdb89E9ddAb0128ec5C628F8D09D45": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0005C34d7B8b06CE8019C3Bb232dE82B2748A560": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00079f33619F70F1DCE64EB6782E45D3498d807C": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0003E72436Ff296B3d39339784499D021b72Aca5": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00075af7E665F3Ca4A4b05520CD6d5c13BbFEAf8": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000b59AeD48ADCd6c36Ae5f437AbB9CA730a2c43": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004e4dfCed9d798767A4d7BA2B03495cE80A2b7": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000e73282F60E2CdE0D4FA9B323B6D54d860f330": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00010AB05661Bfde304A4d884DF99d3011A83C54": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000B9Ea41A9dF00b7ae597afc0D10AF42666081F": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00087C666bf7f52758DE186570979C4C79747157": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0008a52c83D34f0791D07FfeD04Fb6b14f94E2D4": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000A7Bbde38Fc53925D0De9cc1beE3038d36c2d2": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000Aa0154ed6560257d222B5dbE6ce4b66c48979": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000b681738e1f8aF387c41b2b1f0A04E0C33e9DB": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000D66A7706f2DD5F557d5b68e01E07E8FFDfaf5": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00069DA530A71Dc92D02090d7f5f63e326e9beD0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000db74a3da16609F183ACE7AF65B43D896349CE": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0003B1aB565508e095a543C89531e3fbc4a349DA": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0001c94c108BcE19CDb36b00F867A1798A81DedA": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000995137728C7C2a9142F4628f95c98Cac433d7": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000Ec60762AD0425A04C40c118Db5B9710Aa639e": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000Ebf88AE1BA960B06b0a9bbE576baa3B72E92E": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000e1a554572dd96fF3d1F2664832F3E4a66E7b7": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00032C03f3b02D816128Fb5D2752398E2919a03c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000A073dAC5ec2058a0De0e175874D5E297E086E": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000e06626Bb8618D9A1867362D46ddb1bF95ad75": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000212949b4866db43bAF7c4e0975426710ED081": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00094cc0653B52406170105F4eb96C5e2f31Ab74": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000E67E4b1A23A3826304099cb24f337c916CF4b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000885A4932ebeD6D760EA381e4EdAe51A53db05": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000883A40409Fa2193b698928459CB9E4DD5f8D8": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0002590DD45738F909115B163F1322A8A24a8B4E": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0005f132597da3152a6Da6beDB7C10bcC9B1B7f5": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00031470def99c1d4dfE1fd08DD7A8520Ce21DB7": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0001Ebe3a3bA36f57F5989B3F0e5BEEBc710569C": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006Bd0469166f63D0A1c33F71898D2b2E009b9b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00000A8d3f37af8DeF18832962Ee008d8dCa4F7b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000e490f26249951F8527779399aa8F281509aC0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0000638374f7dB166990BDc6aBeE884Ee01a8920": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00031dE95353DeE86dc9B1248e825500DE0B39aF": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000511B42328794337D8b6846E5cFFef30c2d77A": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000d0576AdEf7083d53F6676bfc7c30d03b6Db1B": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0001E8Ff6406a7cd9071F46B8255Db6C16178448": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000C47c771A8db282eC233b28AD8525dc74D13FE": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000798832bb08268dB237898b95A8DaE9D58b62c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000c877a5D9b9De61e5318B3f4330c56ecdC0865": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0003Ffc1f09d39FBFE87eD63E98249039C7b1d9A": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000d72403c18B2516d8ada074E1E7822bF1084DB": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00054e17Db8C8Db028B19cB0f631888AdEb35E4b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0002d9b2a816717C4d70040D66A714795F9B27a4": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0002AfCC1B0B608E86b5a1Dc45dE08184E629796": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000b1db69627F04688aA47951d847c8BFAB3fFaE": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000c2de896E4a92e796d6A9c1E4B01feB3e6Ed61": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000EDC52118DadB4B81f013005b6db2665B682ac": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0009e10C0D2F1a7A2b00b61c476aa8b608c60aDc": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000f2AbaA7581fAA2ad5C82b604C77ef68c3eAD9": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000F74AA6EE08C15076b3576eE33Ed3a80c9A1AD": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0001533C6C5b425815b2BaDdCdd42DFF3be04BCb": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0002D79686DeF20a0aB43FEA4a41a1Ad56529621": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00077A336FCA40F933a7A301F4a39C26594F3EB5": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000B05E15C62CBC266A4DD1804b017d1f6dB078b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000130badE00212bE1AA2F4aCFe965934635C9cD": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0008Bd31Ee6A758e168844cBEA107Ca4d87251aF": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000A390975F21371F1Cf3C783a4A7C1aF49074Fe": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000701F7d594Fb146e4d1c71342012e48A788055": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0005c6BeD054FEad199D72C6f663fC6fBf996153": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0009d862F87F26c638AAd14F2cc48FCa54DBf49d": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00029637dA962294449549f804f8184046F5fbB0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000279CB54E00B858774afEA4601034Db41c1A05": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0003dDe6f01e3B755e24891a5B0f2463BaD83e15": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000086Eeea461Ca48e4D319F9789F3Efd134E574": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004351AD413792131011CC7ed8299dd783C6487": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00097B4463159340Ac83B9bdf657C304cD70c11c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004ad0D0823e3d31C6ECA2A3495373fA76c43aC": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0005E815c1A3F40011Bd70C76062bbcBc51c546B": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006A070bAC6195b59d4bC7f73741DCBe4e16b5e": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006cEE23d8E9BC8d99E826cDa50481394aD9bDD": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000a523148845bEe3EE1e9F83df8257a1191C85B": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000D268F322F10925cdB5d2AD527E582259Da655": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000E5DE0a0175866d21F4Ec6c41F0422A05f14D6": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000cDF8Dba2393a40857cbCB0FCD9b998a941078": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000A341763112a5E3452c7AEE45c382a3fb7dc78": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000635BCbB109781Cea0Cd53e9f1370Dbac9937f": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000E0ea540095B3853c4cb09E5Cdd197330D3B55": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00044cbfb4Ef6054667994C37c0fe0B6BB639718": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00065fC4337dF331242bEE738031dAf35817Ee9e": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000815A8A659a51A8EF01F02441947Ea99182568": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004C8da21c68dED2F63efD9836De7D43e7cDa10": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006ed38815a9439c59bD917c12f77a9A7D39BCE": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004Aa0442d0d43222431b3017912EC6a099771C": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000b3F6da04b6261B4154C8FaEd119632C49DBd5": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000AEBc2568796FDB763CAB67B31e0feE58Fe17d": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000425E97fC6692891876012824a210451cC06C4": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000036e0f87f8Cd3e97f9cfDB2e4E5Ff193c217a": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000305CD7184aB37fdd3D826B92A640218D09527": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000c95f1D83De53B76a0828F1bCdB1DfE12C0ab3": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000882c5FbD315801e4C367BCB04dBD299B9F571": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0000E101815A78EbB9FBBa34F4871aD32d5eb6CD": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000A997c1ceCB1DA78C16249e032e77d1865646a": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00056bde49E3cAA9166C2a4C4951d0Cf067956A0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000e65342176C7dac47bc75113F569695d6A113C": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0008D608884cd733642ab17aCa0c8504850B94fA": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000dFE27e1b71a49B641ad762aB95558584878D1": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00085D9D1a71acf1080cED44CB501B350900627f": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0007d272a1f7Dfe862b030adE2922D149f3bDe3B": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004b230511F921934F33E8B4425E43295232680": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0007514395022786B59ff91408692462C48d872c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0005b34eB0d99dE72DB14d466f692009c4049D46": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0001a2c749FE0Ab1C09f1131BA17530f9D764fBC": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000c6c1D8F778D981968F9904772B0c455E1C17c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000e64e0a2Fd76B4883c800833c82c5F2420b813": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000577bDc84B4019F77D9D09BDD8ED6145E0e890": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000029bD811D292E7f1CF36c0FA08fd753C45074": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000cE6740261E297FaD4c975D6D8F89f95C29add": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0001d0bAE8B1B9fe61d0B788E562A987813cbD98": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000E3388598A0534275104Ad44745620AF31EC7E": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000791D3185781e14eBb342E5df3BC9910f62E6F": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000Df55E76cf6dfD9598DD2b54948dE937f50f2B": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000055acf237931902ceBf4B905BF59813180555": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00009074D8fc5Eeb25f1548Df05AD955E21FB08D": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000C1aE5FeCf09595C0C76Db609FEB2a5Af0962E": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000F76B2Fe7cCC13474de28586A877664EBA16B4": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000F7cFBa0B176Afc2eBadA9d4764d2eA6BBC5a1": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00002132cE94eEfB06eB15898C1AABd94feb0AC2": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00069dC0cc6b9d7B48B5348b12F625E8aB704104": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000A0191cf913E03bd594bC8817FC3B2895C0a25": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0007316aEDc52EB35c9B5c2E44e9fD712d1DF887": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000EBd066B6FEBB9d7f3B767DF06C08e369Dc20F": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00096af89fd96f0d6E1721d9145944e813317d46": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000C5e39879228A1Fc8dF2470822CB8ce2Af8e07": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000ea86B4A3d7e4AF8CFab052c8b9a040149b507": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000796370C839773893a2cEFA5fc81f2332936fB": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000990B05481b1661bc6211298f6429451B09425": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0008a02d3E8507621f430345b98478058cDca79A": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000d35f8cd11bd989216b3669cBaac6fd8c07196": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000541653a96ABAdDba52fAA8D118e570d529543": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006264bf7E3395309F728222641Ff8D0e1ad2C0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000688AA0fBfB3F1e6554A63dF13bE08cB671b3b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00030da862690D170F096074e9E8b38db7D6f037": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0005e37296348571bd3604f7E56B67a7022801f6": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000ed6E0F4Fdc3615663BF4A601E35e7A8d66E1c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000c53b37fA4977B59FD3Efdb473D8069844aDeA": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00057714949aD700733C5b8E6cF3e8c6B7D228a2": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000C8FC4132881c31f67638c3941dF8D94a92299": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000fA71E446e1EcFd74d835b5bD6fA848A770d26": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000784B47aC2843419Df4cAd697d4e7b65CE1F93": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0002869e27c6FaEe08cCA6b765a726E7a076Ee0F": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0003135C47c441506b58483Ec6173F767182670B": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006E80d584cbF9EB8C41CF2b009C607744a70F6": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000C1C05dBFf111c79D5c9E91420DFBEA1c31716": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0009Bf72AF31A4E6B8Ef6FbbFcb017823E4d2aF2": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00021C20F3e68F930077Cca109Ca3C044E8B39bD": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000E90875aC71eD46A11dc1b509d2B35E2c9C31F": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000f17eB09AA3f28132323E6075C672949526d5A": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0000000000000000000000000000000000000000": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x3d1e15a1a55578f7c920884a9943b3b35d0d885b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - } - }, - "number": "0x0", - "gasUsed": "0x0", - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": 1, - "excessBlobGas": "0x0", - "blobGasUsed": 0 + "config": { + "chainId": 1729, + "homesteadBlock": 0, + "eip150Block": 0, + "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "eip155Block": 0, + "eip158Block": 0, + "daoForkBlock": 0, + "frontierBlock": 0, + "byzantiumBlock": 0, + "constantinopleBlock": 0, + "petersburgBlock": 0, + "muirGlacierBlock": 0, + "istanbulBlock": 0, + "berlinBlock": 0, + "londonBlock": 0, + "terminalTotalDifficulty": "0x0", + "mergeNetsplitBlock": 0, + "shanghaiTime": 0, + "cancunTime": 0, + "clique": { + "period": 0, + "epoch": 30000 + } + }, + "nonce": "0x0", + "timestamp": "0x5ca9158b", + "gasLimit": "0x37e11d600", + "difficulty": "0x0", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "coinbase": "0x0000000000000000000000000000000000000000", + "alloc": { + "0x0007a881CD95B1484fca47615B64803dad620C8d": { + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0" + }, + "0x0000bd19F707CA481886244bDd20Bd6B8a81bd3e": { + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0" + }, + "0x000cD1537A823Ae7609E3897DA8d95801B557a8a": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006d77295a0260ceAC113c5Aa15CFf0d28d9723": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000eA2e72065A2ceCA7f677Bc5E648279c2D843d": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000a52D537c4150ec274dcE3962a0d179B7E71B0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0009aEFF154De37C8e02E83f93D2FeC5EC96f8a3": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000f1EB7F258D4A7683E5D0FC3C01058841DDC6f": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000aC79590dCc656c00c4453f123AcBf10DBb086": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0002Bf507275217c9E5EE250bC1B5ca177bb4f74": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000a3fC3BFD55b37025E6F4f57B0B6121F54e5bF": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000b4C43cce938dfD3420F975591Ee46D872C136": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004b0C6de796fD980554cc7ff7B062b3B5079E1": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00025eea83bA285532F5054b238c938076833d13": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000352E93fe11f9B715fdc61864315970B3DC082": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000c0d6b7C4516a5B274C51EA331A9410fe69127": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000D06C23EeD09A7Fa81cADd7eD5C783E8a25635": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0003Ea7fDFCdb89E9ddAb0128ec5C628F8D09D45": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0005C34d7B8b06CE8019C3Bb232dE82B2748A560": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00079f33619F70F1DCE64EB6782E45D3498d807C": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0003E72436Ff296B3d39339784499D021b72Aca5": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00075af7E665F3Ca4A4b05520CD6d5c13BbFEAf8": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000b59AeD48ADCd6c36Ae5f437AbB9CA730a2c43": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004e4dfCed9d798767A4d7BA2B03495cE80A2b7": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000e73282F60E2CdE0D4FA9B323B6D54d860f330": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00010AB05661Bfde304A4d884DF99d3011A83C54": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000B9Ea41A9dF00b7ae597afc0D10AF42666081F": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00087C666bf7f52758DE186570979C4C79747157": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0008a52c83D34f0791D07FfeD04Fb6b14f94E2D4": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000A7Bbde38Fc53925D0De9cc1beE3038d36c2d2": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000Aa0154ed6560257d222B5dbE6ce4b66c48979": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000b681738e1f8aF387c41b2b1f0A04E0C33e9DB": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000D66A7706f2DD5F557d5b68e01E07E8FFDfaf5": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00069DA530A71Dc92D02090d7f5f63e326e9beD0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000db74a3da16609F183ACE7AF65B43D896349CE": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0003B1aB565508e095a543C89531e3fbc4a349DA": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0001c94c108BcE19CDb36b00F867A1798A81DedA": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000995137728C7C2a9142F4628f95c98Cac433d7": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000Ec60762AD0425A04C40c118Db5B9710Aa639e": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000Ebf88AE1BA960B06b0a9bbE576baa3B72E92E": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000e1a554572dd96fF3d1F2664832F3E4a66E7b7": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00032C03f3b02D816128Fb5D2752398E2919a03c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000A073dAC5ec2058a0De0e175874D5E297E086E": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000e06626Bb8618D9A1867362D46ddb1bF95ad75": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000212949b4866db43bAF7c4e0975426710ED081": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00094cc0653B52406170105F4eb96C5e2f31Ab74": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000E67E4b1A23A3826304099cb24f337c916CF4b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000885A4932ebeD6D760EA381e4EdAe51A53db05": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000883A40409Fa2193b698928459CB9E4DD5f8D8": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0002590DD45738F909115B163F1322A8A24a8B4E": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0005f132597da3152a6Da6beDB7C10bcC9B1B7f5": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00031470def99c1d4dfE1fd08DD7A8520Ce21DB7": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0001Ebe3a3bA36f57F5989B3F0e5BEEBc710569C": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006Bd0469166f63D0A1c33F71898D2b2E009b9b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00000A8d3f37af8DeF18832962Ee008d8dCa4F7b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000e490f26249951F8527779399aa8F281509aC0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0000638374f7dB166990BDc6aBeE884Ee01a8920": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00031dE95353DeE86dc9B1248e825500DE0B39aF": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000511B42328794337D8b6846E5cFFef30c2d77A": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000d0576AdEf7083d53F6676bfc7c30d03b6Db1B": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0001E8Ff6406a7cd9071F46B8255Db6C16178448": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000C47c771A8db282eC233b28AD8525dc74D13FE": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000798832bb08268dB237898b95A8DaE9D58b62c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000c877a5D9b9De61e5318B3f4330c56ecdC0865": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0003Ffc1f09d39FBFE87eD63E98249039C7b1d9A": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000d72403c18B2516d8ada074E1E7822bF1084DB": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00054e17Db8C8Db028B19cB0f631888AdEb35E4b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0002d9b2a816717C4d70040D66A714795F9B27a4": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0002AfCC1B0B608E86b5a1Dc45dE08184E629796": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000b1db69627F04688aA47951d847c8BFAB3fFaE": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000c2de896E4a92e796d6A9c1E4B01feB3e6Ed61": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000EDC52118DadB4B81f013005b6db2665B682ac": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0009e10C0D2F1a7A2b00b61c476aa8b608c60aDc": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000f2AbaA7581fAA2ad5C82b604C77ef68c3eAD9": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000F74AA6EE08C15076b3576eE33Ed3a80c9A1AD": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0001533C6C5b425815b2BaDdCdd42DFF3be04BCb": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0002D79686DeF20a0aB43FEA4a41a1Ad56529621": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00077A336FCA40F933a7A301F4a39C26594F3EB5": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000B05E15C62CBC266A4DD1804b017d1f6dB078b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000130badE00212bE1AA2F4aCFe965934635C9cD": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0008Bd31Ee6A758e168844cBEA107Ca4d87251aF": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000A390975F21371F1Cf3C783a4A7C1aF49074Fe": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000701F7d594Fb146e4d1c71342012e48A788055": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0005c6BeD054FEad199D72C6f663fC6fBf996153": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0009d862F87F26c638AAd14F2cc48FCa54DBf49d": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00029637dA962294449549f804f8184046F5fbB0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000279CB54E00B858774afEA4601034Db41c1A05": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0003dDe6f01e3B755e24891a5B0f2463BaD83e15": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000086Eeea461Ca48e4D319F9789F3Efd134E574": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004351AD413792131011CC7ed8299dd783C6487": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00097B4463159340Ac83B9bdf657C304cD70c11c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004ad0D0823e3d31C6ECA2A3495373fA76c43aC": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0005E815c1A3F40011Bd70C76062bbcBc51c546B": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006A070bAC6195b59d4bC7f73741DCBe4e16b5e": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006cEE23d8E9BC8d99E826cDa50481394aD9bDD": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000a523148845bEe3EE1e9F83df8257a1191C85B": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000D268F322F10925cdB5d2AD527E582259Da655": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000E5DE0a0175866d21F4Ec6c41F0422A05f14D6": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000cDF8Dba2393a40857cbCB0FCD9b998a941078": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000A341763112a5E3452c7AEE45c382a3fb7dc78": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000635BCbB109781Cea0Cd53e9f1370Dbac9937f": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000E0ea540095B3853c4cb09E5Cdd197330D3B55": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00044cbfb4Ef6054667994C37c0fe0B6BB639718": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00065fC4337dF331242bEE738031dAf35817Ee9e": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000815A8A659a51A8EF01F02441947Ea99182568": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004C8da21c68dED2F63efD9836De7D43e7cDa10": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006ed38815a9439c59bD917c12f77a9A7D39BCE": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004Aa0442d0d43222431b3017912EC6a099771C": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000b3F6da04b6261B4154C8FaEd119632C49DBd5": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000AEBc2568796FDB763CAB67B31e0feE58Fe17d": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000425E97fC6692891876012824a210451cC06C4": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000036e0f87f8Cd3e97f9cfDB2e4E5Ff193c217a": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000305CD7184aB37fdd3D826B92A640218D09527": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000c95f1D83De53B76a0828F1bCdB1DfE12C0ab3": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000882c5FbD315801e4C367BCB04dBD299B9F571": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0000E101815A78EbB9FBBa34F4871aD32d5eb6CD": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000A997c1ceCB1DA78C16249e032e77d1865646a": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00056bde49E3cAA9166C2a4C4951d0Cf067956A0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000e65342176C7dac47bc75113F569695d6A113C": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0008D608884cd733642ab17aCa0c8504850B94fA": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000dFE27e1b71a49B641ad762aB95558584878D1": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00085D9D1a71acf1080cED44CB501B350900627f": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0007d272a1f7Dfe862b030adE2922D149f3bDe3B": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004b230511F921934F33E8B4425E43295232680": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0007514395022786B59ff91408692462C48d872c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0005b34eB0d99dE72DB14d466f692009c4049D46": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0001a2c749FE0Ab1C09f1131BA17530f9D764fBC": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000c6c1D8F778D981968F9904772B0c455E1C17c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000e64e0a2Fd76B4883c800833c82c5F2420b813": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000577bDc84B4019F77D9D09BDD8ED6145E0e890": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000029bD811D292E7f1CF36c0FA08fd753C45074": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000cE6740261E297FaD4c975D6D8F89f95C29add": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0001d0bAE8B1B9fe61d0B788E562A987813cbD98": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000E3388598A0534275104Ad44745620AF31EC7E": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000791D3185781e14eBb342E5df3BC9910f62E6F": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000Df55E76cf6dfD9598DD2b54948dE937f50f2B": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000055acf237931902ceBf4B905BF59813180555": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00009074D8fc5Eeb25f1548Df05AD955E21FB08D": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000C1aE5FeCf09595C0C76Db609FEB2a5Af0962E": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000F76B2Fe7cCC13474de28586A877664EBA16B4": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000F7cFBa0B176Afc2eBadA9d4764d2eA6BBC5a1": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00002132cE94eEfB06eB15898C1AABd94feb0AC2": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00069dC0cc6b9d7B48B5348b12F625E8aB704104": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000A0191cf913E03bd594bC8817FC3B2895C0a25": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0007316aEDc52EB35c9B5c2E44e9fD712d1DF887": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000EBd066B6FEBB9d7f3B767DF06C08e369Dc20F": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00096af89fd96f0d6E1721d9145944e813317d46": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000C5e39879228A1Fc8dF2470822CB8ce2Af8e07": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000ea86B4A3d7e4AF8CFab052c8b9a040149b507": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000796370C839773893a2cEFA5fc81f2332936fB": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000990B05481b1661bc6211298f6429451B09425": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0008a02d3E8507621f430345b98478058cDca79A": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000d35f8cd11bd989216b3669cBaac6fd8c07196": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000541653a96ABAdDba52fAA8D118e570d529543": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006264bf7E3395309F728222641Ff8D0e1ad2C0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000688AA0fBfB3F1e6554A63dF13bE08cB671b3b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00030da862690D170F096074e9E8b38db7D6f037": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0005e37296348571bd3604f7E56B67a7022801f6": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000ed6E0F4Fdc3615663BF4A601E35e7A8d66E1c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000c53b37fA4977B59FD3Efdb473D8069844aDeA": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00057714949aD700733C5b8E6cF3e8c6B7D228a2": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000C8FC4132881c31f67638c3941dF8D94a92299": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000fA71E446e1EcFd74d835b5bD6fA848A770d26": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000784B47aC2843419Df4cAd697d4e7b65CE1F93": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0002869e27c6FaEe08cCA6b765a726E7a076Ee0F": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0003135C47c441506b58483Ec6173F767182670B": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006E80d584cbF9EB8C41CF2b009C607744a70F6": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000C1C05dBFf111c79D5c9E91420DFBEA1c31716": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0009Bf72AF31A4E6B8Ef6FbbFcb017823E4d2aF2": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00021C20F3e68F930077Cca109Ca3C044E8B39bD": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000E90875aC71eD46A11dc1b509d2B35E2c9C31F": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000f17eB09AA3f28132323E6075C672949526d5A": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0000000000000000000000000000000000000000": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x3d1e15a1a55578f7c920884a9943b3b35d0d885b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + } + }, + "number": "0x0", + "gasUsed": "0x0", + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": 1, + "excessBlobGas": "0x0", + "blobGasUsed": 0 } From 5d3429cd28c505ca220d6920f7ba9d2bab1a5995 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Wed, 4 Dec 2024 12:24:28 -0300 Subject: [PATCH 15/80] Run cargo flamegraph with perf options --- .github/scripts/flamegraph_reth.sh | 1 - .github/workflows/flamegraph_reporter.yaml | 32 ++++++++-------------- 2 files changed, 11 insertions(+), 22 deletions(-) diff --git a/.github/scripts/flamegraph_reth.sh b/.github/scripts/flamegraph_reth.sh index 5fa50444cb..f577e5204b 100644 --- a/.github/scripts/flamegraph_reth.sh +++ b/.github/scripts/flamegraph_reth.sh @@ -1,5 +1,4 @@ #!/bin/bash -cd "$(dirname "$0")" || exit # Make sure to run from script's directory iterations=3 value=10000000 diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 3209819193..75acaa2e87 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -91,6 +91,7 @@ jobs: - name: Change perf settings run: | + pwd sudo sysctl kernel.perf_event_paranoid=-1 sudo perf list hw @@ -112,34 +113,23 @@ jobs: uses: actions/checkout@v4 with: repository: paradigmxyz/reth - path: './reth' + path: 'reth' - name: Build and test reth shell: bash run: | - mv ./reth .. - cd ../reth - cargo flamegraph --bin reth --profile profiling -- node --chain ../ethrex/test_data/genesis-load-test.json --dev \ + cd ./reth + cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin reth --profile profiling \ + -- node --chain ../ethrex/test_data/genesis-load-test.json --dev \ --dev.block-time 5000ms --http.port 1729 --txpool.max-pending-txns 100000000 --txpool.max-new-txns 1000000000 \ --txpool.pending-max-count 100000000 --txpool.pending-max-size 10000000000 --txpool.basefee-max-count 100000000000 \ --txpool.basefee-max-size 1000000000000 --txpool.queued-max-count 1000000000 & echo "waiting to execute load test..." - sleep 30 && + sleep 120 && echo "executing load test..." - bash ../ethrex/.github/scripts/flamegraph_reth.sh && + echo ${{ github.workspace }} + echo $GITHUB_WORKSPACE + pwd + ls -las ../ + bash ../.github/scripts/flamegraph_reth.sh && echo "Load test finished" - - - name: Generate SVG - shell: bash - run: | - echo "running perf" - perf script -v -i perf.data --no-inline > stack.data - inferno-collapse-perf < stack.data > collapsed.data - inferno-flamegraph < collapsed.data > flamegraph_reth.svg - file flamegraph_reth.svg - - - name: Upload artifacts - flamegraph_reth.svg - uses: actions/upload-artifact@v4 - with: - name: flamegraph_reth.svg - path: ./flamegraph_reth.svg From 0dd0e05105bc9417dfae8e5c1bf2e2885f1b6363 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Wed, 4 Dec 2024 14:46:21 -0300 Subject: [PATCH 16/80] Adjust paths in workflow --- .github/scripts/flamegraph_reth.sh | 5 +---- .github/workflows/flamegraph_reporter.yaml | 25 ++++++++++++++++------ 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/.github/scripts/flamegraph_reth.sh b/.github/scripts/flamegraph_reth.sh index f577e5204b..93b69a5456 100644 --- a/.github/scripts/flamegraph_reth.sh +++ b/.github/scripts/flamegraph_reth.sh @@ -5,16 +5,13 @@ value=10000000 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((172 * $iterations * $value)) -ethrex_l2 test load --path ../../test_data/private_keys.txt -i $iterations -v --value $value --to $account +ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_keys.txt -i $iterations -v --value $value --to $account echo "Monitoring..." output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) -echo "ini $output" -echo "end $end_val" while [[ $output -le $end_val ]]; do sleep 5 output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) - echo "out $output" done echo "Balance of $output reached, killing process reth" diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 75acaa2e87..332b896214 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -120,16 +120,27 @@ jobs: run: | cd ./reth cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin reth --profile profiling \ - -- node --chain ../ethrex/test_data/genesis-load-test.json --dev \ + -- node --chain /home/runner/work/ethrex/ethrex/test_data/genesis-load-test.json --dev \ --dev.block-time 5000ms --http.port 1729 --txpool.max-pending-txns 100000000 --txpool.max-new-txns 1000000000 \ --txpool.pending-max-count 100000000 --txpool.pending-max-size 10000000000 --txpool.basefee-max-count 100000000000 \ --txpool.basefee-max-size 1000000000000 --txpool.queued-max-count 1000000000 & echo "waiting to execute load test..." sleep 120 && - echo "executing load test..." - echo ${{ github.workspace }} - echo $GITHUB_WORKSPACE - pwd - ls -las ../ - bash ../.github/scripts/flamegraph_reth.sh && + bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_reth.sh && echo "Load test finished" + ls -las + + - name: Generate SVG + shell: bash + run: | + echo "running perf" + perf script -v -i perf.data --no-inline > stack.data + inferno-collapse-perf < stack.data > collapsed.data + inferno-flamegraph < collapsed.data > flamegraph_reth.svg + file flamegraph_reth.svg + + - name: Upload artifacts - flamegraph_reth.svg + uses: actions/upload-artifact@v4 + with: + name: flamegraph_reth.svg + path: ./flamegraph_reth.svg From 71b2c5de906382be52b5e773257b200415381b84 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Wed, 4 Dec 2024 15:10:22 -0300 Subject: [PATCH 17/80] Adjust paths in workflow 2 --- .github/workflows/flamegraph_reporter.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 332b896214..06f3c511c9 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -133,8 +133,11 @@ jobs: - name: Generate SVG shell: bash run: | - echo "running perf" - perf script -v -i perf.data --no-inline > stack.data + pwd + echo "running perf 2" + ls -las /home/runner/work/ethrex/ + ls -las /home/runner/work/ethrex/ethrex/ + perf script -v -i /home/runner/work/ethrex/ethrex/reth/perf.data --no-inline > stack.data inferno-collapse-perf < stack.data > collapsed.data inferno-flamegraph < collapsed.data > flamegraph_reth.svg file flamegraph_reth.svg From 73c5edf06de17591133c3385fbb101dd27987445 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Wed, 4 Dec 2024 16:21:06 -0300 Subject: [PATCH 18/80] Deploy page workflow --- .github/workflows/deploy_page.yaml | 41 +++ pages/flamegraph.svg | 491 +++++++++++++++++++++++++++++ pages/index.html | 7 + 3 files changed, 539 insertions(+) create mode 100644 .github/workflows/deploy_page.yaml create mode 100644 pages/flamegraph.svg create mode 100644 pages/index.html diff --git a/.github/workflows/deploy_page.yaml b/.github/workflows/deploy_page.yaml new file mode 100644 index 0000000000..90e474d76d --- /dev/null +++ b/.github/workflows/deploy_page.yaml @@ -0,0 +1,41 @@ +# Simple workflow for deploying static content to GitHub Pages +name: Deploy static content to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: [ "automate-perf-tests" ] + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Single deploy job since we're just deploying + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Pages + uses: actions/configure-pages@v5 + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: 'pages/' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/pages/flamegraph.svg b/pages/flamegraph.svg new file mode 100644 index 0000000000..e0d81faba3 --- /dev/null +++ b/pages/flamegraph.svg @@ -0,0 +1,491 @@ +Flame Graph Reset ZoomSearch reth_provider::providers::static_file::writer::StaticFileWriters<N>::commit (1,003,009 samples, 0.36%)reth_provider::providers::static_file::writer::StaticFileProviderRW<N>::commit (1,003,009 samples, 0.36%)reth_provider::providers::static_file::writer::StaticFileProviderRW<N>::update_index (1,003,009 samples, 0.36%)reth_provider::providers::static_file::manager::StaticFileProvider<N>::update_index (1,003,009 samples, 0.36%)reth_provider::providers::static_file::LoadedJar::new (1,003,009 samples, 0.36%)reth_nippy_jar::NippyJar<H>::open_data_reader (1,003,009 samples, 0.36%)std::fs::OpenOptions::_open (1,003,009 samples, 0.36%)open64 (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)reth_provider::writer::UnifiedStorageWriter<(),()>::commit (2,006,018 samples, 0.73%)reth_storage_api::database_provider::DBProvider::commit (1,003,009 samples, 0.36%)<reth_db::implementation::mdbx::tx::Tx<K> as reth_db_api::transaction::DbTx>::commit (1,003,009 samples, 0.36%)_ZN7reth_db14implementation4mdbx2tx11Tx$LT$K$GT$37execute_with_close_transaction_metric28_$u7b$$u7b$closure$u7d$$u7d$17h2154c120b77fa2acE.llvm.9863100019090468457 (1,003,009 samples, 0.36%)reth_libmdbx::transaction::Transaction<K>::commit (1,003,009 samples, 0.36%)reth_libmdbx::txn_manager::TxnManager::send_message (1,003,009 samples, 0.36%)std::sync::mpmc::zero::Channel<T>::send (1,003,009 samples, 0.36%)syscall (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)Persistence_Ser (4,012,036 samples, 1.46%)[libc.so.6] (4,012,036 samples, 1.46%)[libc.so.6] (4,012,036 samples, 1.46%)std::sys::pal::unix::thread::Thread::new::thread_start (4,012,036 samples, 1.46%)core::ops::function::FnOnce::call_once{{vtable.shim}} (4,012,036 samples, 1.46%)std::sys::backtrace::__rust_begin_short_backtrace (4,012,036 samples, 1.46%)reth_engine_tree::persistence::PersistenceService<N>::run (4,012,036 samples, 1.46%)reth_provider::writer::UnifiedStorageWriter<ProviderDB,&reth_provider::providers::static_file::manager::StaticFileProvider<<ProviderDB as reth_storage_api::primitives::NodePrimitivesProvider>::Primitives>>::save_blocks (2,006,018 samples, 0.73%)<reth_provider::providers::database::provider::DatabaseProvider<TX,N> as reth_provider::traits::block::BlockWriter>::insert_block (2,006,018 samples, 0.73%)_ZN7reth_db14implementation4mdbx2tx11Tx$LT$K$GT$10new_cursor17h9320080b56709b10E.llvm.9863100019090468457 (2,006,018 samples, 0.73%)reth_libmdbx::cursor::Cursor<K>::new (2,006,018 samples, 0.73%)mdbx_cursor_open (2,006,018 samples, 0.73%)mdbx_cursor_create (2,006,018 samples, 0.73%)__libc_calloc (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)std::sys::pal::unix::thread::Thread::new::thread_start (1,003,009 samples, 0.36%)core::ops::function::FnOnce::call_once{{vtable.shim}} (1,003,009 samples, 0.36%)std::sys::backtrace::__rust_begin_short_backtrace (1,003,009 samples, 0.36%)reth_engine_tree::tree::EngineApiTreeHandler<N,P,E,T,V>::run (1,003,009 samples, 0.36%)std::sync::mpmc::list::Channel<T>::recv (1,003,009 samples, 0.36%)std::sync::mpmc::list::Channel<T>::recv::_{{closure}} (1,003,009 samples, 0.36%)std::thread::park (1,003,009 samples, 0.36%)core::ops::function::Fn::call (1,003,009 samples, 0.36%)revm::journaled_state::JournaledState::load_code (1,003,009 samples, 0.36%)revm::journaled_state::JournaledState::load_account (1,003,009 samples, 0.36%)revm::db::states::state::State<DB>::load_cache_account (1,003,009 samples, 0.36%)hashbrown::rustc_entry::<impl hashbrown::map::HashMap<K,V,S,A>>::rustc_entry (1,003,009 samples, 0.36%)_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$14reserve_rehash17h566c0a12f6c7338fE.llvm.9321060313343939033 (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)reth_engine_tree::tree::EngineApiTreeHandler<N,P,E,T,V>::insert_block_inner (2,006,018 samples, 0.73%)reth_evm::metrics::ExecutorMetrics::execute_metered (2,006,018 samples, 0.73%)<reth_evm::execute::BasicBlockExecutor<S> as reth_evm::execute::Executor<DB>>::execute_with_state_hook (2,006,018 samples, 0.73%)<reth_evm_ethereum::execute::EthExecutionStrategy<DB,EvmConfig> as reth_evm::execute::BlockExecutionStrategy>::execute_transactions (2,006,018 samples, 0.73%)revm::evm::Evm<EXT,DB>::transact (2,006,018 samples, 0.73%)revm::evm::Evm<EXT,DB>::transact_preverified_inner (1,003,009 samples, 0.36%)<hashbrown::set::HashSet<T,S,A> as core::iter::traits::collect::Extend<T>>::extend (1,003,009 samples, 0.36%)_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$14reserve_rehash17hea558b7f7a32d1e8E.llvm.9321060313343939033 (1,003,009 samples, 0.36%)<tracing_subscriber::layer::layered::Layered<L,S> as tracing_core::subscriber::Subscriber>::enabled (1,003,009 samples, 0.36%)<tracing_subscriber::filter::layer_filters::Filtered<L,F,S> as tracing_subscriber::layer::Layer<S>>::enabled (1,003,009 samples, 0.36%)tracing_subscriber::filter::env::EnvFilter::enabled (1,003,009 samples, 0.36%)tracing_subscriber::filter::directive::DirectiveSet<tracing_subscriber::filter::directive::StaticDirective>::enabled (1,003,009 samples, 0.36%)reth_consensus::_::<impl reth_consensus::FullConsensus<N> for alloc::sync::Arc<T>>::validate_block_post_execution (1,003,009 samples, 0.36%)<reth_ethereum_consensus::EthBeaconConsensus<ChainSpec> as reth_consensus::FullConsensus<N>>::validate_block_post_execution (1,003,009 samples, 0.36%)reth_ethereum_consensus::validation::validate_block_post_execution (1,003,009 samples, 0.36%)reth_ethereum_consensus::validation::verify_receipts (1,003,009 samples, 0.36%)alloy_trie::root::ordered_trie_root_with_encoder (1,003,009 samples, 0.36%)alloy_trie::hash_builder::HashBuilder::add_leaf (1,003,009 samples, 0.36%)_ZN10alloy_trie12hash_builder11HashBuilder6update17h55f230d2209f9656E.llvm.16336768008158044780 (1,003,009 samples, 0.36%)tiny_keccak::KeccakState<P>::update (1,003,009 samples, 0.36%)tiny_keccak::keccakf::keccakf (1,003,009 samples, 0.36%)reth_engine_tree::tree::EngineApiTreeHandler<N,P,E,T,V>::on_engine_message (3,009,027 samples, 1.09%)reth_engine_tree::tree::EngineApiTreeHandler<N,P,E,T,V>::insert_block (3,009,027 samples, 1.09%)reth_engine_tree::tree::EngineApiTreeHandler<N,P,E,T,V>::insert_block_inner (3,009,027 samples, 1.09%)reth_engine_tree::tree::EngineApiTreeHandler<N,P,E,T,V>::compute_state_root_parallel (1,003,009 samples, 0.36%)reth_trie_parallel::root::ParallelStateRoot<Factory>::calculate (1,003,009 samples, 0.36%)reth_trie_common::updates::TrieUpdates::insert_storage_updates (1,003,009 samples, 0.36%)hashbrown::map::HashMap<K,V,S,A>::insert (1,003,009 samples, 0.36%)_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$14reserve_rehash17h05eedeecd7de0914E.llvm.7099391561028228683 (1,003,009 samples, 0.36%)Tree_Task (7,021,063 samples, 2.55%)Tr..[unknown] (6,018,054 samples, 2.19%)[..reth_engine_tree::tree::EngineApiTreeHandler<N,P,E,T,V>::run (1,003,009 samples, 0.36%)reth_engine_tree::tree::EngineApiTreeHandler<N,P,E,T,V>::on_engine_message (1,003,009 samples, 0.36%)reth_engine_tree::tree::EngineApiTreeHandler<N,P,E,T,V>::insert_block (1,003,009 samples, 0.36%)_ZN87_$LT$reth_primitives..block..SealedBlock$LT$H$C$B$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he921c0dad4cd64c1E.llvm.9863100019090468457 (1,003,009 samples, 0.36%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,003,009 samples, 0.36%)_ZN86_$LT$reth_primitives..transaction..TransactionSigned$u20$as$u20$core..clone..Clone$GT$5clone17h8e9aec1f8736d8b5E.llvm.9628542176372663265 (1,003,009 samples, 0.36%)mbdx-rs-txn-man (2,006,018 samples, 0.73%)[libc.so.6] (2,006,018 samples, 0.73%)[libc.so.6] (2,006,018 samples, 0.73%)std::sys::pal::unix::thread::Thread::new::thread_start (2,006,018 samples, 0.73%)core::ops::function::FnOnce::call_once{{vtable.shim}} (2,006,018 samples, 0.73%)std::sys::backtrace::__rust_begin_short_backtrace (2,006,018 samples, 0.73%)mdbx_txn_commit_ex (2,006,018 samples, 0.73%)sync_locked (2,006,018 samples, 0.73%)msync (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_ecmult_wnaf.constprop.1 (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_ecmult_strauss_wnaf.constprop.0 (9,027,081 samples, 3.28%)rus..rustsecp256k1_v0_10_0_gej_add_ge_var (4,012,036 samples, 1.46%)rustsecp256k1_v0_10_0_fe_sqr_inner (3,009,027 samples, 1.09%)rayon::iter::plumbing::bridge_producer_consumer::helper (11,033,099 samples, 4.01%)rayo.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (11,033,099 samples, 4.01%)_ZN1..rayon::iter::plumbing::bridge_producer_consumer::helper (11,033,099 samples, 4.01%)rayo.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (11,033,099 samples, 4.01%)_ZN1..rayon::iter::plumbing::bridge_producer_consumer::helper (11,033,099 samples, 4.01%)rayo.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (11,033,099 samples, 4.01%)_ZN1..rayon::iter::plumbing::bridge_producer_consumer::helper (11,033,099 samples, 4.01%)rayo..<rayon::iter::extend::ListVecFolder<T> as rayon::iter::plumbing::Folder<T>>::consume_iter (11,033,099 samples, 4.01%)<ray..reth_primitives::transaction::signature::recover_signer_unchecked (11,033,099 samples, 4.01%)reth..reth_primitives::transaction::util::impl_secp256k1::recover_signer_unchecked (11,033,099 samples, 4.01%)reth..rustsecp256k1_v0_10_0_ecdsa_recover (11,033,099 samples, 4.01%)rust..rustsecp256k1_v0_10_0_ecdsa_sig_recover (11,033,099 samples, 4.01%)rust..rustsecp256k1_v0_10_0_ge_set_xo_var (2,006,018 samples, 0.73%)rustsecp256k1_v0_10_0_fe_sqrt (2,006,018 samples, 0.73%)rustsecp256k1_v0_10_0_fe_mul_inner (1,003,009 samples, 0.36%)reth-rayon-0 (12,036,108 samples, 4.38%)reth-..[libc.so.6] (12,036,108 samples, 4.38%)[libc..[libc.so.6] (12,036,108 samples, 4.38%)[libc..std::sys::pal::unix::thread::Thread::new::thread_start (12,036,108 samples, 4.38%)std::..core::ops::function::FnOnce::call_once{{vtable.shim}} (12,036,108 samples, 4.38%)core:..std::sys::backtrace::__rust_begin_short_backtrace (12,036,108 samples, 4.38%)std::..rayon_core::registry::ThreadBuilder::run (12,036,108 samples, 4.38%)rayon..rayon_core::registry::WorkerThread::wait_until_cold (12,036,108 samples, 4.38%)rayon.._ZN83_$LT$rayon_core..job..StackJob$LT$L$C$F$C$R$GT$$u20$as$u20$rayon_core..job..Job$GT$7execute17h0bb13d33f750830aE.llvm.7291770557919418192 (12,036,108 samples, 4.38%)_ZN83.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (12,036,108 samples, 4.38%)_ZN10..rayon_core::registry::WorkerThread::wait_until_cold (1,003,009 samples, 0.36%)<rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute (1,003,009 samples, 0.36%)rayon::iter::plumbing::bridge_producer_consumer::helper (1,003,009 samples, 0.36%)_ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (1,003,009 samples, 0.36%)rayon::iter::plumbing::bridge_producer_consumer::helper (1,003,009 samples, 0.36%)_ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (1,003,009 samples, 0.36%)rayon::iter::plumbing::bridge_producer_consumer::helper (1,003,009 samples, 0.36%)_ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (1,003,009 samples, 0.36%)rayon::iter::plumbing::bridge_producer_consumer::helper (1,003,009 samples, 0.36%)<rayon::iter::extend::ListVecFolder<T> as rayon::iter::plumbing::Folder<T>>::consume_iter (1,003,009 samples, 0.36%)reth_primitives::transaction::signature::recover_signer_unchecked (1,003,009 samples, 0.36%)reth_primitives::transaction::util::impl_secp256k1::recover_signer_unchecked (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_ecdsa_recover (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_ecdsa_sig_recover (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_ecmult_strauss_wnaf.constprop.0 (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_gej_add_ge_var (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_sqr_inner (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_gej_add_ge_var (2,006,018 samples, 0.73%)rustsecp256k1_v0_10_0_fe_mul_inner (2,006,018 samples, 0.73%)rustsecp256k1_v0_10_0_ecmult_strauss_wnaf.constprop.0 (9,027,081 samples, 3.28%)rus..rustsecp256k1_v0_10_0_gej_add_zinv_var (1,003,009 samples, 0.36%)rayon::iter::plumbing::bridge_producer_consumer::helper (10,030,090 samples, 3.65%)rayo.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (10,030,090 samples, 3.65%)_ZN1..rayon::iter::plumbing::bridge_producer_consumer::helper (10,030,090 samples, 3.65%)rayo.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (10,030,090 samples, 3.65%)_ZN1..rayon::iter::plumbing::bridge_producer_consumer::helper (10,030,090 samples, 3.65%)rayo..<rayon::iter::extend::ListVecFolder<T> as rayon::iter::plumbing::Folder<T>>::consume_iter (10,030,090 samples, 3.65%)<ray..reth_primitives::transaction::signature::recover_signer_unchecked (10,030,090 samples, 3.65%)reth..reth_primitives::transaction::util::impl_secp256k1::recover_signer_unchecked (10,030,090 samples, 3.65%)reth..rustsecp256k1_v0_10_0_ecdsa_recover (10,030,090 samples, 3.65%)rust..rustsecp256k1_v0_10_0_ecdsa_sig_recover (10,030,090 samples, 3.65%)rust..rustsecp256k1_v0_10_0_ge_set_xo_var (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_sqrt (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (1,003,009 samples, 0.36%)[libc.so.6] (12,036,108 samples, 4.38%)[libc..[libc.so.6] (12,036,108 samples, 4.38%)[libc..std::sys::pal::unix::thread::Thread::new::thread_start (12,036,108 samples, 4.38%)std::..core::ops::function::FnOnce::call_once{{vtable.shim}} (12,036,108 samples, 4.38%)core:..std::sys::backtrace::__rust_begin_short_backtrace (12,036,108 samples, 4.38%)std::..rayon_core::registry::ThreadBuilder::run (12,036,108 samples, 4.38%)rayon..rayon_core::registry::WorkerThread::wait_until_cold (12,036,108 samples, 4.38%)rayon..<rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute (12,036,108 samples, 4.38%)<rayo..rayon::iter::plumbing::bridge_producer_consumer::helper (12,036,108 samples, 4.38%)rayon.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (12,036,108 samples, 4.38%)_ZN10..rayon_core::registry::WorkerThread::wait_until_cold (2,006,018 samples, 0.73%)<rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute (2,006,018 samples, 0.73%)rayon::iter::plumbing::bridge_producer_consumer::helper (2,006,018 samples, 0.73%)_ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (2,006,018 samples, 0.73%)rayon::iter::plumbing::bridge_producer_consumer::helper (2,006,018 samples, 0.73%)_ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (2,006,018 samples, 0.73%)rayon::iter::plumbing::bridge_producer_consumer::helper (2,006,018 samples, 0.73%)_ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (2,006,018 samples, 0.73%)rayon::iter::plumbing::bridge_producer_consumer::helper (2,006,018 samples, 0.73%)<rayon::iter::extend::ListVecFolder<T> as rayon::iter::plumbing::Folder<T>>::consume_iter (2,006,018 samples, 0.73%)reth_primitives::transaction::signature::recover_signer_unchecked (2,006,018 samples, 0.73%)reth_primitives::transaction::util::impl_secp256k1::recover_signer_unchecked (2,006,018 samples, 0.73%)rustsecp256k1_v0_10_0_ecdsa_recover (2,006,018 samples, 0.73%)rustsecp256k1_v0_10_0_ecdsa_sig_recover (2,006,018 samples, 0.73%)rustsecp256k1_v0_10_0_ecmult_strauss_wnaf.constprop.0 (2,006,018 samples, 0.73%)rustsecp256k1_v0_10_0_gej_add_ge_var (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (1,003,009 samples, 0.36%)reth-rayon-1 (17,051,153 samples, 6.20%)reth-ray..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (4,012,036 samples, 1.46%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (5,015,045 samples, 1.82%)r..rustsecp256k1_v0_10_0_gej_add_ge_var (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_ecmult_strauss_wnaf.constprop.0 (8,024,072 samples, 2.92%)ru..rustsecp256k1_v0_10_0_gej_add_zinv_var (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_sqr_inner (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_ge_set_gej_var (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_impl_inv_var (1,003,009 samples, 0.36%)rayon::iter::plumbing::bridge_producer_consumer::helper (11,033,099 samples, 4.01%)rayo.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (11,033,099 samples, 4.01%)_ZN1..rayon::iter::plumbing::bridge_producer_consumer::helper (11,033,099 samples, 4.01%)rayo..<rayon::iter::extend::ListVecFolder<T> as rayon::iter::plumbing::Folder<T>>::consume_iter (11,033,099 samples, 4.01%)<ray..reth_primitives::transaction::signature::recover_signer_unchecked (11,033,099 samples, 4.01%)reth..reth_primitives::transaction::util::impl_secp256k1::recover_signer_unchecked (11,033,099 samples, 4.01%)reth..rustsecp256k1_v0_10_0_ecdsa_recover (10,030,090 samples, 3.65%)rust..rustsecp256k1_v0_10_0_ecdsa_sig_recover (10,030,090 samples, 3.65%)rust..rustsecp256k1_v0_10_0_ge_set_xo_var (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_sqrt (1,003,009 samples, 0.36%)reth-rayon-2 (12,036,108 samples, 4.38%)reth-..[libc.so.6] (12,036,108 samples, 4.38%)[libc..[libc.so.6] (12,036,108 samples, 4.38%)[libc..std::sys::pal::unix::thread::Thread::new::thread_start (12,036,108 samples, 4.38%)std::..core::ops::function::FnOnce::call_once{{vtable.shim}} (12,036,108 samples, 4.38%)core:..std::sys::backtrace::__rust_begin_short_backtrace (12,036,108 samples, 4.38%)std::..rayon_core::registry::ThreadBuilder::run (12,036,108 samples, 4.38%)rayon..rayon_core::registry::WorkerThread::wait_until_cold (12,036,108 samples, 4.38%)rayon..<rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute (12,036,108 samples, 4.38%)<rayo..rayon::iter::plumbing::bridge_producer_consumer::helper (12,036,108 samples, 4.38%)rayon.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (12,036,108 samples, 4.38%)_ZN10..rayon::iter::plumbing::bridge_producer_consumer::helper (12,036,108 samples, 4.38%)rayon.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (12,036,108 samples, 4.38%)_ZN10..rayon_core::registry::WorkerThread::wait_until_cold (1,003,009 samples, 0.36%)__sched_yield (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[ld-linux-x86-64.so.2] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[ld-linux-x86-64.so.2] (3,009,027 samples, 1.09%)[ld-linux-x86-64.so.2] (3,009,027 samples, 1.09%)[ld-linux-x86-64.so.2] (3,009,027 samples, 1.09%)[ld-linux-x86-64.so.2] (3,009,027 samples, 1.09%)_dl_allocate_tls_init (1,003,009 samples, 0.36%)[ld-linux-x86-64.so.2] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)_ZN3std2fs10DirBuilder14create_dir_all17hcd4e140c79f0b14cE.llvm.11825420043304724426 (1,003,009 samples, 0.36%)_ZN3std2fs10DirBuilder14create_dir_all17hcd4e140c79f0b14cE.llvm.11825420043304724426 (1,003,009 samples, 0.36%)_ZN3std2fs10DirBuilder14create_dir_all17hcd4e140c79f0b14cE.llvm.11825420043304724426 (1,003,009 samples, 0.36%)mkdir (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)std::sys::pal::unix::fs::readdir (1,003,009 samples, 0.36%)opendir (1,003,009 samples, 0.36%)__open64_nocancel (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)reth_db::lockfile::StorageLock::try_acquire (2,006,018 samples, 0.73%)std::sync::once_lock::OnceLock<T>::initialize (2,006,018 samples, 0.73%)std::sys::sync::once::futex::Once::call (2,006,018 samples, 0.73%)std::sync::once::Once::call_once_force::_{{closure}} (2,006,018 samples, 0.73%)sysinfo::unix::linux::process::refresh_procs (2,006,018 samples, 0.73%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (2,006,018 samples, 0.73%)<core::iter::adapters::filter_map::FilterMap<I,F> as core::iter::traits::iterator::Iterator>::next (2,006,018 samples, 0.73%)<core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold (2,006,018 samples, 0.73%)sysinfo::unix::linux::process::get_all_pid_entries (2,006,018 samples, 0.73%)sysinfo::unix::linux::process::get_all_pid_entries (1,003,009 samples, 0.36%)std::sys::pal::unix::fs::readdir (1,003,009 samples, 0.36%)opendir (1,003,009 samples, 0.36%)__open64_nocancel (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<core::future::poll_fn::PollFn<F> as core::future::future::Future>::poll (5,015,045 samples, 1.82%)<..reth_db::mdbx::init_db (5,015,045 samples, 1.82%)r..reth_db::implementation::mdbx::DatabaseEnv::open (4,012,036 samples, 1.46%)reth_libmdbx::environment::EnvironmentBuilder::open_with_permissions (2,006,018 samples, 0.73%)mdbx_env_open (2,006,018 samples, 0.73%)osal_mmap (1,003,009 samples, 0.36%)osal_check_fs_local (1,003,009 samples, 0.36%)__getmntent_r (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)fgets_unlocked (1,003,009 samples, 0.36%)_IO_getline_info (1,003,009 samples, 0.36%)_IO_default_uflow (1,003,009 samples, 0.36%)_IO_file_underflow (1,003,009 samples, 0.36%)__read_nocancel (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<&mut serde_json::de::Deserializer<R> as serde::de::Deserializer>::deserialize_struct (2,006,018 samples, 0.73%)ruint::support::serde::<impl serde::de::Deserialize for ruint::Uint<_,_>>::deserialize (2,006,018 samples, 0.73%)ruint::string::<impl core::str::traits::FromStr for ruint::Uint<_,_>>::from_str (2,006,018 samples, 0.73%)core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert (1,003,009 samples, 0.36%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (1,003,009 samples, 0.36%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::KV>::split (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<reth_chainspec::spec::ChainSpec as core::convert::From<alloy_genesis::Genesis>>::from (5,015,045 samples, 1.82%)<..<reth_chainspec::spec::ChainSpec as core::default::Default>::default (5,015,045 samples, 1.82%)<..std::sys::sync::once::futex::Once::call (5,015,045 samples, 1.82%)s..std::sync::once::Once::call_once::_{{closure}} (5,015,045 samples, 1.82%)s..core::ops::function::FnOnce::call_once (5,015,045 samples, 1.82%)c..serde_json::de::from_trait (5,015,045 samples, 1.82%)s..<&mut serde_json::de::Deserializer<R> as serde::de::Deserializer>::deserialize_struct (5,015,045 samples, 1.82%)<..<&mut serde_json::de::Deserializer<R> as serde::de::Deserializer>::deserialize_map (5,015,045 samples, 1.82%)<..const_hex::decode_to_slice_inner (1,003,009 samples, 0.36%)<reth_node_builder::components::builder::ComponentsBuilder<Node,PoolB,PayloadB,NetworkB,ExecB,ConsB> as reth_node_builder::components::builder::NodeComponentsBuilder<Node>>::build_components::_{{closure}} (1,003,009 samples, 0.36%)<reth_node_ethereum::node::EthereumNetworkBuilder as reth_node_builder::components::network::NetworkBuilder<Node,Pool>>::build_network::_{{closure}}::_{{closure}} (1,003,009 samples, 0.36%)<tracing_subscriber::layer::layered::Layered<L,S> as tracing_core::subscriber::Subscriber>::event (1,003,009 samples, 0.36%)<tracing_subscriber::fmt::fmt_layer::Layer<S,N,E,W> as tracing_subscriber::layer::Layer<S>>::on_event (1,003,009 samples, 0.36%)<tracing_subscriber::fmt::format::Format<tracing_subscriber::fmt::format::Full,T> as tracing_subscriber::fmt::format::FormatEvent<S,N>>::format_event (1,003,009 samples, 0.36%)<tracing_subscriber::fmt::format::DefaultVisitor as tracing_core::field::Visit>::record_debug (1,003,009 samples, 0.36%)<&mut W as core::fmt::Write>::write_fmt (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)reth_db_common::init::init_genesis (1,003,009 samples, 0.36%)reth_db_common::init::insert_genesis_header (1,003,009 samples, 0.36%)reth_provider::providers::static_file::writer::StaticFileProviderRW<N>::append_header (1,003,009 samples, 0.36%)reth_nippy_jar::writer::NippyJarWriter<H>::append_column (1,003,009 samples, 0.36%)<reth_nippy_jar::compression::Compressors as reth_nippy_jar::compression::Compression>::compress_to (1,003,009 samples, 0.36%)<reth_nippy_jar::compression::lz4::Lz4 as reth_nippy_jar::compression::Compression>::compress_to (1,003,009 samples, 0.36%)_rjem_calloc (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)reth_engine_local::service::LocalEngineService<N>::new (1,003,009 samples, 0.36%)reth_engine_tree::persistence::PersistenceHandle<T>::spawn_service (1,003,009 samples, 0.36%)std::sys::pal::unix::thread::Thread::new (1,003,009 samples, 0.36%)pthread_create (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<reth_node_builder::launch::engine::EngineNodeLauncher as reth_node_builder::launch::LaunchNode<reth_node_builder::builder::states::NodeBuilderWithComponents<T,CB,AO>>>::launch_node::_{{closure}} (3,009,027 samples, 1.09%)reth_node_builder::launch::common::LaunchContextWith<reth_node_builder::launch::common::Attached<reth_node_builder::launch::common::WithConfigs<ChainSpec>,DB>>::with_provider_factory::_{{closure}} (1,003,009 samples, 0.36%)reth_provider::providers::static_file::manager::StaticFileProvider<N>::check_consistency (1,003,009 samples, 0.36%)<reth_provider::providers::static_file::manager::StaticFileProvider<N> as reth_provider::providers::static_file::manager::StaticFileWriter>::get_writer (1,003,009 samples, 0.36%)reth_provider::providers::static_file::writer::StaticFileWriters<N>::get_or_create (1,003,009 samples, 0.36%)reth_provider::providers::static_file::writer::StaticFileProviderRW<N>::open (1,003,009 samples, 0.36%)reth_nippy_jar::writer::NippyJarWriter<H>::new (1,003,009 samples, 0.36%)write (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<reth_node_core::args::rpc_server::RpcServerArgs as clap_builder::derive::Args>::augment_args (1,003,009 samples, 0.36%)std::sync::once_lock::OnceLock<T>::initialize (1,003,009 samples, 0.36%)std::sys::sync::once::futex::Once::call (1,003,009 samples, 0.36%)_ZN3std4sync4once4Once15call_once_force28_$u7b$$u7b$closure$u7d$$u7d$17hbd52b5bfb5f89345E.llvm.5058068804937889998 (1,003,009 samples, 0.36%)core::fmt::write (1,003,009 samples, 0.36%)core::fmt::num::imp::<impl core::fmt::Display for u32>::fmt (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)reth_node_core::args::log::LogArgs::init_tracing (1,003,009 samples, 0.36%)<reth_tracing::RethTracer as reth_tracing::Tracer>::init (1,003,009 samples, 0.36%)reth_tracing::layers::build_env_filter (1,003,009 samples, 0.36%)<core::iter::adapters::chain::Chain<A,B> as core::iter::traits::iterator::Iterator>::try_fold (1,003,009 samples, 0.36%)core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut (1,003,009 samples, 0.36%)tracing_subscriber::filter::env::directive::Directive::parse (1,003,009 samples, 0.36%)regex::regex::string::Regex::captures_at (1,003,009 samples, 0.36%)<regex_automata::meta::strategy::Core as regex_automata::meta::strategy::Strategy>::search_slots (1,003,009 samples, 0.36%)_ZN14regex_automata3nfa8thompson6pikevm6PikeVM12search_slots17h37ecedc68ddaccadE.llvm.9668037086439293821 (1,003,009 samples, 0.36%)regex_automata::nfa::thompson::pikevm::PikeVM::search_slots_imp (1,003,009 samples, 0.36%)regex_automata::nfa::thompson::pikevm::PikeVM::search_imp (1,003,009 samples, 0.36%)regex_automata::nfa::thompson::pikevm::PikeVM::next (1,003,009 samples, 0.36%)regex_automata::nfa::thompson::pikevm::PikeVM::epsilon_closure (1,003,009 samples, 0.36%)reth::cli::Cli<C,Ext>::run (2,006,018 samples, 0.73%)std::sys::sync::once::futex::Once::call (1,003,009 samples, 0.36%)_ZN3std4sync4once4Once9call_once28_$u7b$$u7b$closure$u7d$$u7d$17hbc08a47157c9a025E.llvm.18436661035813783525 (1,003,009 samples, 0.36%)core::ops::function::FnOnce::call_once (1,003,009 samples, 0.36%)reth_node_metrics::recorder::PrometheusRecorder::install (1,003,009 samples, 0.36%)metrics_exporter_prometheus::exporter::builder::PrometheusBuilder::build_recorder (1,003,009 samples, 0.36%)once_cell::imp::OnceCell<T>::initialize (1,003,009 samples, 0.36%)once_cell::imp::initialize_or_wait (1,003,009 samples, 0.36%)_ZN9once_cell3imp17OnceCell$LT$T$GT$10initialize28_$u7b$$u7b$closure$u7d$$u7d$17h44f729cbca0cf91aE.llvm.16545332737216348194 (1,003,009 samples, 0.36%)quanta::Calibration::calibrate (1,003,009 samples, 0.36%)clock_gettime (1,003,009 samples, 0.36%)[[vdso]] (1,003,009 samples, 0.36%)reth_cli_runner::CliRunner::run_command_until_exit (1,003,009 samples, 0.36%)reth_cli_runner::AsyncCliRunner::new (1,003,009 samples, 0.36%)tokio::runtime::builder::Builder::build (1,003,009 samples, 0.36%)tokio::runtime::scheduler::multi_thread::worker::Launch::launch (1,003,009 samples, 0.36%)tokio::runtime::blocking::pool::spawn_blocking (1,003,009 samples, 0.36%)tokio::runtime::blocking::pool::Spawner::spawn_blocking (1,003,009 samples, 0.36%)tokio::runtime::blocking::pool::Spawner::spawn_task (1,003,009 samples, 0.36%)std::thread::Builder::spawn_unchecked (1,003,009 samples, 0.36%)std::sys::pal::unix::thread::Thread::new (1,003,009 samples, 0.36%)pthread_create (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)reth_node_builder::launch::common::LaunchContextWith<reth_node_builder::launch::common::Attached<reth_node_builder::launch::common::WithConfigs<ChainSpec>,DB>>::with_provider_factory::_{{closure}} (1,003,009 samples, 0.36%)reth_provider::providers::static_file::manager::StaticFileProvider<N>::check_consistency (1,003,009 samples, 0.36%)<reth_provider::providers::static_file::manager::StaticFileProvider<N> as reth_provider::providers::static_file::manager::StaticFileWriter>::get_writer (1,003,009 samples, 0.36%)reth_provider::providers::static_file::writer::StaticFileWriters<N>::get_or_create (1,003,009 samples, 0.36%)reth_provider::providers::static_file::writer::StaticFileProviderRW<N>::open (1,003,009 samples, 0.36%)reth_nippy_jar::writer::NippyJarWriter<H>::new (1,003,009 samples, 0.36%)_rjem_je_malloc_default (1,003,009 samples, 0.36%)_rjem_je_large_palloc (1,003,009 samples, 0.36%)_rjem_je_arena_extent_alloc_large (1,003,009 samples, 0.36%)_rjem_je_pa_alloc (1,003,009 samples, 0.36%)pac_alloc_impl (1,003,009 samples, 0.36%)pac_alloc_real (1,003,009 samples, 0.36%)_rjem_je_ecache_alloc_grow (1,003,009 samples, 0.36%)_rjem_je_emap_register_boundary (1,003,009 samples, 0.36%)_rjem_je_rtree_leaf_elm_lookup_hard (1,003,009 samples, 0.36%)base_alloc_impl (1,003,009 samples, 0.36%)base_block_alloc.isra.0 (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<futures_util::future::try_join::TryJoin<Fut1,Fut2> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)_ZN117_$LT$futures_util..future..try_future..into_future..IntoFuture$LT$Fut$GT$$u20$as$u20$core..future..future..Future$GT$4poll17h07a87b426cc2519fE.llvm.10351110023459563463 (1,003,009 samples, 0.36%)core::ptr::drop_in_place<reth_rpc_builder::auth::AuthServerConfig::start::{{closure}}> (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (22,066,198 samples, 8.03%)[unknown]reth_node_builder::rpc::RpcAddOns<N,EthApi,EV>::launch_add_ons_with::_{{closure}} (2,006,018 samples, 0.73%)reth_rpc::eth::helpers::signer::<impl reth_rpc_eth_api::helpers::signer::AddDevSigners for reth_rpc::eth::core::EthApi<Provider,Pool,Network,EvmConfig>>::with_dev_accounts (1,003,009 samples, 0.36%)reth_rpc::eth::helpers::signer::DevSigner::random_signers (1,003,009 samples, 0.36%)k256::arithmetic::mul::<impl core::ops::arith::Mul<&k256::arithmetic::scalar::Scalar> for k256::arithmetic::projective::ProjectivePoint>::mul (1,003,009 samples, 0.36%)k256::arithmetic::mul::lincomb (1,003,009 samples, 0.36%)k256::arithmetic::projective::ProjectivePoint::double (1,003,009 samples, 0.36%)reth (27,081,243 samples, 9.85%)reth_start (1,003,009 samples, 0.36%)__libc_start_main (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)exit (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)[ld-linux-x86-64.so.2] (1,003,009 samples, 0.36%)mdbx_global_destructor (1,003,009 samples, 0.36%)__sched_yield (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[libc.so.6] (2,006,018 samples, 0.73%)_rjem_je_tsd_cleanup (2,006,018 samples, 0.73%)_rjem_je_arena_decay (2,006,018 samples, 0.73%)_rjem_je_pac_decay_all (2,006,018 samples, 0.73%)pac_decay_to_limit.part.0 (2,006,018 samples, 0.73%)_rjem_je_extent_dalloc_wrapper (2,006,018 samples, 0.73%)_rjem_je_pages_purge_forced (2,006,018 samples, 0.73%)__madvise (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)parking_lot::condvar::Condvar::wait_until_internal (2,006,018 samples, 0.73%)syscall (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<futures_util::future::select::Select<A,B> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<tracing_futures::Instrumented<T> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)reth_transaction_pool::validate::eth::EthTransactionValidatorBuilder::build_with_tasks::_{{closure}} (1,003,009 samples, 0.36%)reth_transaction_pool::validate::task::ValidationTask::run::_{{closure}} (1,003,009 samples, 0.36%)<reth_transaction_pool::validate::task::TransactionValidationTaskExecutor<V> as reth_transaction_pool::validate::TransactionValidator>::validate_transaction::_{{closure}}::_{{closure}} (1,003,009 samples, 0.36%)tokio::sync::oneshot::Sender<T>::send (1,003,009 samples, 0.36%)tokio::runtime::task::raw::schedule (1,003,009 samples, 0.36%)tokio::runtime::context::with_scheduler (1,003,009 samples, 0.36%)parking_lot::condvar::Condvar::notify_one_slow (1,003,009 samples, 0.36%)syscall (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<metrics_util::registry::recency::Generational<T> as metrics::handles::CounterFn>::increment (1,003,009 samples, 0.36%)_ZN16reth_rpc_eth_api7helpers13blocking_task13SpawnBlocking17spawn_blocking_io28_$u7b$$u7b$closure$u7d$$u7d$17h0bc2aadd356347c3E.llvm.438779863700274100 (4,012,036 samples, 1.46%)reth_rpc_eth_api::helpers::state::LoadState::state_at_block_id_or_latest (4,012,036 samples, 1.46%)reth_storage_api::state::StateProviderFactory::state_by_block_id (4,012,036 samples, 1.46%)<reth_provider::providers::blockchain_provider::BlockchainProvider2<N> as reth_storage_api::state::StateProviderFactory>::latest (4,012,036 samples, 1.46%)reth_provider::providers::database::ProviderFactory<N>::history_by_block_hash (4,012,036 samples, 1.46%)<reth_db::implementation::mdbx::tx::Tx<K> as reth_db_api::transaction::DbTx>::get (4,012,036 samples, 1.46%)reth_db::metrics::DatabaseEnvMetrics::record_operation (4,012,036 samples, 1.46%)reth_db::implementation::mdbx::tx::Tx<K>::execute_with_operation_metric::_{{closure}} (3,009,027 samples, 1.09%)reth_libmdbx::transaction::Transaction<K>::get (3,009,027 samples, 1.09%)mdbx_get (2,006,018 samples, 0.73%)cursor_init (2,006,018 samples, 0.73%)page_search (2,006,018 samples, 0.73%)fetch_sdb (1,003,009 samples, 0.36%)node_search (1,003,009 samples, 0.36%)cmp_lexical (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)<futures_util::lock::mutex::MutexGuard<T> as core::ops::drop::Drop>::drop (2,006,018 samples, 0.73%)_ZN5tokio7runtime4park4wake17he4ba08c2e829f32cE.llvm.472134555349281347 (2,006,018 samples, 0.73%)parking_lot::condvar::Condvar::notify_one_slow (2,006,018 samples, 0.73%)syscall (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<reth_db::implementation::mdbx::tx::Tx<K> as reth_db_api::transaction::DbTx>::get (1,003,009 samples, 0.36%)reth_db::metrics::DatabaseEnvMetrics::record_operation (1,003,009 samples, 0.36%)reth_db::implementation::mdbx::tx::Tx<K>::execute_with_operation_metric::_{{closure}} (1,003,009 samples, 0.36%)reth_libmdbx::database::Database::new (1,003,009 samples, 0.36%)<reth_provider::providers::database::provider::DatabaseProvider<TX,N> as reth_storage_api::block_id::BlockNumReader>::last_block_number (2,006,018 samples, 0.73%)<reth_db::implementation::mdbx::tx::Tx<K> as reth_db_api::transaction::DbTx>::cursor_read (2,006,018 samples, 0.73%)reth_libmdbx::cursor::Cursor<K>::new (1,003,009 samples, 0.36%)mdbx_cursor_open (1,003,009 samples, 0.36%)mdbx_cursor_create (1,003,009 samples, 0.36%)__libc_calloc (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)<reth_provider::providers::database::provider::DatabaseProvider<TX,N> as reth_storage_api::state::TryIntoHistoricalStateProvider>::try_into_history_at_block (3,009,027 samples, 1.09%)<reth_provider::providers::database::provider::DatabaseProvider<TX,N> as reth_storage_api::stage_checkpoint::StageCheckpointReader>::get_stage_checkpoint (1,003,009 samples, 0.36%)_ZN4core3ptr65drop_in_place$LT$reth_storage_errors..provider..ProviderError$GT$17h75188b5d925dd0e7E.llvm.1606467394959726285 (1,003,009 samples, 0.36%)reth_transaction_pool::validate::eth::EthTransactionValidator<Client,Tx>::validate_one (6,018,054 samples, 2.19%)r..<reth_provider::providers::blockchain_provider::BlockchainProvider2<N> as reth_storage_api::state::StateProviderFactory>::latest (6,018,054 samples, 2.19%)<..reth_provider::providers::database::ProviderFactory<N>::history_by_block_hash (6,018,054 samples, 2.19%)r..reth_provider::providers::database::ProviderFactory<N>::provider (1,003,009 samples, 0.36%)<reth_db::implementation::mdbx::DatabaseEnv as reth_db_api::database::Database>::tx (1,003,009 samples, 0.36%)reth_libmdbx::transaction::Transaction<K>::new (1,003,009 samples, 0.36%)mdbx_txn_begin_ex (1,003,009 samples, 0.36%)txn_renew (1,003,009 samples, 0.36%)coherency_check (1,003,009 samples, 0.36%)tokio::runtime::task::raw::schedule (1,003,009 samples, 0.36%)tokio::runtime::context::with_scheduler (1,003,009 samples, 0.36%)parking_lot::condvar::Condvar::notify_one_slow (1,003,009 samples, 0.36%)syscall (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<tracing_futures::Instrumented<T> as core::future::future::Future>::poll (14,042,126 samples, 5.11%)<traci..<futures_util::future::select::Select<A,B> as core::future::future::Future>::poll (14,042,126 samples, 5.11%)<futur..reth_transaction_pool::validate::eth::EthTransactionValidatorBuilder::build_with_tasks::_{{closure}} (10,030,090 samples, 3.65%)reth..reth_transaction_pool::validate::task::ValidationTask::run::_{{closure}} (10,030,090 samples, 3.65%)reth..<reth_transaction_pool::validate::task::TransactionValidationTaskExecutor<V> as reth_transaction_pool::validate::TransactionValidator>::validate_transaction::_{{closure}}::_{{closure}} (8,024,072 samples, 2.92%)<r..tokio::sync::oneshot::Sender<T>::send (2,006,018 samples, 0.73%)tokio::runtime::task::waker::wake_by_ref (1,003,009 samples, 0.36%)tokio::runtime::context::runtime::enter_runtime (22,066,198 samples, 8.03%)tokio::runt..tokio::runtime::park::CachedParkThread::block_on (22,066,198 samples, 8.03%)tokio::runt.._ZN5tokio7runtime4park5Inner4park17hbe96bd356c4e7d49E.llvm.472134555349281347 (7,021,063 samples, 2.55%)_Z..parking_lot::condvar::Condvar::wait_until_internal (7,021,063 samples, 2.55%)pa..syscall (7,021,063 samples, 2.55%)sy..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (6,018,054 samples, 2.19%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..__floattidf (1,003,009 samples, 0.36%)_ZN5tokio7runtime2io6driver6Driver4turn17h9c93a9ec06411625E.llvm.11553916271539853387 (11,033,099 samples, 4.01%)_ZN5..epoll_wait (10,030,090 samples, 3.65%)epol..[unknown] (10,030,090 samples, 3.65%)[unk..[unknown] (10,030,090 samples, 3.65%)[unk..[unknown] (10,030,090 samples, 3.65%)[unk..[unknown] (10,030,090 samples, 3.65%)[unk..[unknown] (9,027,081 samples, 3.28%)[un..[unknown] (9,027,081 samples, 3.28%)[un..[unknown] (8,024,072 samples, 2.92%)[u..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (6,018,054 samples, 2.19%)[.._ZN5tokio7runtime4time6Driver13park_internal17hc2f7e553e26f963aE.llvm.1187048005086314035 (13,039,117 samples, 4.74%)_ZN5to.._ZN5tokio7runtime4time5wheel5Wheel15next_expiration17h2d94ea06e57a4927E.llvm.17468179975562877380 (1,003,009 samples, 0.36%)parking_lot::condvar::Condvar::wait_until_internal (5,015,045 samples, 1.82%)p..syscall (5,015,045 samples, 1.82%)s..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)_ZN3std3sys3pal4unix4time8Timespec3now17h41af0ae2fd2a5c35E.llvm.11825420043304724426 (1,003,009 samples, 0.36%)clock_gettime (1,003,009 samples, 0.36%)[[vdso]] (1,003,009 samples, 0.36%)tokio::runtime::scheduler::multi_thread::worker::Context::park_timeout (20,060,180 samples, 7.30%)tokio::run..tokio::runtime::scheduler::multi_thread::park::Parker::park (20,060,180 samples, 7.30%)tokio::run..tokio::runtime::time::<impl tokio::runtime::time::handle::Handle>::process (2,006,018 samples, 0.73%)tokio::runtime::time::<impl tokio::runtime::time::handle::Handle>::process_at_sharded_time (1,003,009 samples, 0.36%)_ZN5tokio7runtime4time5wheel5Wheel15next_expiration17h2d94ea06e57a4927E.llvm.17468179975562877380 (1,003,009 samples, 0.36%)parking_lot_core::parking_lot::lock_bucket_pair (1,003,009 samples, 0.36%)parking_lot::condvar::Condvar::notify_one_slow (2,006,018 samples, 0.73%)syscall (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)tokio::runtime::driver::IoHandle::unpark (3,009,027 samples, 1.09%)mio::sys::unix::waker::Waker::wake (3,009,027 samples, 1.09%)write (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)<core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold (1,003,009 samples, 0.36%)alloc::raw_vec::RawVec<T,A>::grow_one (1,003,009 samples, 0.36%)_ZN5alloc7raw_vec11finish_grow17h0836cc0428228076E.llvm.267818569104351975 (1,003,009 samples, 0.36%)do_rallocx (1,003,009 samples, 0.36%)_rjem_je_arena_ralloc (1,003,009 samples, 0.36%)metrics_exporter_prometheus::formatting::key_to_parts (4,012,036 samples, 1.46%)indexmap::map::IndexMap<K,V,S>::insert_full (1,003,009 samples, 0.36%)indexmap::map::core::IndexMapCore<K,V>::insert_full (1,003,009 samples, 0.36%)hashbrown::raw::RawTable<T,A>::reserve_rehash (1,003,009 samples, 0.36%)hashbrown::raw::RawTableInner::fallible_with_capacity (1,003,009 samples, 0.36%)_rjem_malloc (1,003,009 samples, 0.36%)metrics_util::bucket::AtomicBucket<T>::clear_with (1,003,009 samples, 0.36%)sketches_ddsketch::ddsketch::DDSketch::add (1,003,009 samples, 0.36%)[libm.so.6] (1,003,009 samples, 0.36%)tokio::runtime::task::harness::Harness<T,S>::poll (6,018,054 samples, 2.19%)t..tokio::runtime::task::core::Core<T,S>::poll (6,018,054 samples, 2.19%)t.._ZN17reth_node_metrics8recorder18PrometheusRecorder12spawn_upkeep28_$u7b$$u7b$closure$u7d$$u7d$17h3ac0867fabb3d3ffE.llvm.15390170818660464992 (6,018,054 samples, 2.19%)_.._ZN27metrics_exporter_prometheus8recorder5Inner33drain_histograms_to_distributions17hee534b949b8a13c3E.llvm.6344540606985295957 (6,018,054 samples, 2.19%)_..metrics_util::registry::Registry<K,S>::get_histogram_handles (1,003,009 samples, 0.36%)hashbrown::raw::RawTable<T,A>::reserve_rehash (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)tokio::runtime::context::with_scheduler (6,018,054 samples, 2.19%)t..parking_lot::condvar::Condvar::notify_one_slow (5,015,045 samples, 1.82%)p..syscall (5,015,045 samples, 1.82%)s..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[.._ZN10reth_tasks12TaskExecutor17spawn_critical_as28_$u7b$$u7b$closure$u7d$$u7d$17h1c2428023a6af2d8E.llvm.6325698203083743441 (1,003,009 samples, 0.36%)<futures_util::future::select::Select<A,B> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<tracing_futures::Instrumented<T> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<core::panic::unwind_safe::AssertUnwindSafe<F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<core::future::poll_fn::PollFn<F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<reth_engine_local::service::LocalEngineService<N> as futures_core::stream::Stream>::poll_next (1,003,009 samples, 0.36%)std::sync::mpmc::Sender<T>::send (1,003,009 samples, 0.36%)std::sync::mpmc::list::Channel<T>::send (1,003,009 samples, 0.36%)std::sync::mpmc::waker::SyncWaker::notify (1,003,009 samples, 0.36%)syscall (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)_ZN10reth_tasks12TaskExecutor17spawn_critical_as28_$u7b$$u7b$closure$u7d$$u7d$17h2e9525ea0d8c4b9fE.llvm.6325698203083743441 (1,003,009 samples, 0.36%)<futures_util::future::select::Select<A,B> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<tracing_futures::Instrumented<T> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)_ZN15reth_stages_api7metrics8listener15MetricsListener12handle_event17hcac613dda2a999daE.llvm.16351050675857583936 (1,003,009 samples, 0.36%)_ZN15reth_stages_api7metrics8listener15MetricsListener12handle_event17hcac613dda2a999daE.llvm.16351050675857583936 (1,003,009 samples, 0.36%)reth_stages_api::metrics::sync_metrics::SyncMetrics::get_stage_metrics (1,003,009 samples, 0.36%)<metrics_util::layers::prefix::Prefix<R> as metrics::recorder::Recorder>::register_gauge (1,003,009 samples, 0.36%)metrics_util::registry::Registry<K,S>::get_or_create_gauge (1,003,009 samples, 0.36%)<metrics::key::Key as core::cmp::PartialEq>::eq (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)_rjem_je_eset_fit (1,003,009 samples, 0.36%)_rjem_je_sz_psz_quantize_ceil (1,003,009 samples, 0.36%)_ZN10reth_tasks12TaskExecutor17spawn_critical_as28_$u7b$$u7b$closure$u7d$$u7d$17h78d1039c30b3cab2E.llvm.6325698203083743441 (3,009,027 samples, 1.09%)<futures_util::future::select::Select<A,B> as core::future::future::Future>::poll (3,009,027 samples, 1.09%)<tracing_futures::Instrumented<T> as core::future::future::Future>::poll (3,009,027 samples, 1.09%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (3,009,027 samples, 1.09%)<reth_network::transactions::TransactionsManager<Pool,N> as core::future::future::Future>::poll (3,009,027 samples, 1.09%)hashbrown::raw::RawTable<T,A>::with_capacity_in (3,009,027 samples, 1.09%)_rjem_je_malloc_default (2,006,018 samples, 0.73%)_rjem_je_large_palloc (2,006,018 samples, 0.73%)_rjem_je_arena_extent_alloc_large (2,006,018 samples, 0.73%)_rjem_je_pa_alloc (2,006,018 samples, 0.73%)pac_alloc_impl (2,006,018 samples, 0.73%)pac_alloc_real (2,006,018 samples, 0.73%)_rjem_je_ecache_alloc (2,006,018 samples, 0.73%)extent_recycle (2,006,018 samples, 0.73%)extent_split_interior.constprop.0 (1,003,009 samples, 0.36%)extent_split_impl.constprop.0 (1,003,009 samples, 0.36%)_rjem_je_edata_cache_get (1,003,009 samples, 0.36%)_rjem_je_edata_avail_remove (1,003,009 samples, 0.36%)_ZN10reth_tasks12TaskExecutor17spawn_critical_as28_$u7b$$u7b$closure$u7d$$u7d$17hd7da2189a867f2eaE.llvm.6325698203083743441 (1,003,009 samples, 0.36%)<futures_util::future::select::Select<A,B> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<tracing_futures::Instrumented<T> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<reth_payload_builder::service::PayloadBuilderService<Gen,St,T> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<reth_basic_payload_builder::metrics::PayloadBuilderMetrics as core::default::Default>::default (1,003,009 samples, 0.36%)<metrics_util::layers::prefix::Prefix<R> as metrics::recorder::Recorder>::register_counter (1,003,009 samples, 0.36%)metrics_util::registry::Registry<K,S>::get_or_create_counter (1,003,009 samples, 0.36%)_ZN10reth_tasks12TaskExecutor17spawn_critical_as28_$u7b$$u7b$closure$u7d$$u7d$17hed3209be9b50a5b6E.llvm.6325698203083743441 (1,003,009 samples, 0.36%)<futures_util::future::select::Select<A,B> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<tracing_futures::Instrumented<T> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)_ZN21reth_transaction_pool8maintain32maintain_transaction_pool_future28_$u7b$$u7b$closure$u7d$$u7d$17h23aa50849627889fE.llvm.9321060313343939033 (1,003,009 samples, 0.36%)reth_transaction_pool::maintain::maintain_transaction_pool::_{{closure}} (1,003,009 samples, 0.36%)<reth_transaction_pool::Pool<V,T,S> as reth_transaction_pool::traits::TransactionPoolExt>::on_canonical_state_change (1,003,009 samples, 0.36%)reth_transaction_pool::pool::txpool::TxPool<T>::on_canonical_state_change (1,003,009 samples, 0.36%)reth_transaction_pool::pool::txpool::TxPool<T>::prune_transaction_by_hash (1,003,009 samples, 0.36%)alloc::collections::btree::map::BTreeMap<K,V,A>::remove (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)__close (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)_ZN16jsonrpsee_server6server18process_connection28_$u7b$$u7b$closure$u7d$$u7d$17h114cbc50ca9fe822E.llvm.6325698203083743441 (4,012,036 samples, 1.46%)_ZN4core3ptr2286drop_in_place$LT$hyper_util..server..conn..auto..UpgradeableConnection$LT$hyper_util..rt..tokio..TokioIo$LT$tokio..net..tcp..stream..TcpStream$GT$$C$jsonrpsee_server..utils..TowerToHyperService$LT$tower..util..either..Either$LT$tower_http..cors..Cors$LT$tower..util..either..Either$LT$reth_rpc_layer..auth_layer..AuthService$LT$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$reth_rpc_layer..jwt_validator..JwtAuthValidator$GT$$C$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$GT$$GT$$C$tower..util..either..Either$LT$reth_rpc_layer..auth_layer..AuthService$LT$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$reth_rpc_layer..jwt_validator..JwtAuthValidator$GT$$C$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$GT$$GT$$GT$$C$hyper_util..rt..tokio..TokioExecutor$GT$$GT$17hf64e3a6234682aeeE (3,009,027 samples, 1.09%)core::ptr::drop_in_place<hyper::proto::h1::conn::Conn<hyper_util::common::rewind::Rewind<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>,bytes::bytes::Bytes,hyper::proto::h1::role::Server>> (3,009,027 samples, 1.09%)_ZN4core3ptr135drop_in_place$LT$hyper_util..common..rewind..Rewind$LT$hyper_util..rt..tokio..TokioIo$LT$tokio..net..tcp..stream..TcpStream$GT$$GT$$GT$17hcf87fb5582fe692aE.llvm.6325698203083743441 (3,009,027 samples, 1.09%)<tokio::io::poll_evented::PollEvented<E> as core::ops::drop::Drop>::drop (3,009,027 samples, 1.09%)epoll_ctl (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)_ZN16jsonrpsee_server6server44Server$LT$HttpMiddleware$C$RpcMiddleware$GT$11start_inner28_$u7b$$u7b$closure$u7d$$u7d$17h1250bc494faccf83E.llvm.6325698203083743441 (3,009,027 samples, 1.09%)jsonrpsee_server::server::try_accept_conn::_{{closure}} (3,009,027 samples, 1.09%)_ZN5tokio3net3tcp8listener11TcpListener6accept28_$u7b$$u7b$closure$u7d$$u7d$17hfc8368bcf3793592E.llvm.905805775822348456 (3,009,027 samples, 1.09%)accept4 (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[libc.so.6] (83,249,747 samples, 30.29%)[libc.so.6][libc.so.6] (83,249,747 samples, 30.29%)[libc.so.6]std::sys::pal::unix::thread::Thread::new::thread_start (81,243,729 samples, 29.56%)std::sys::pal::unix::thread::Thread::new::thread..core::ops::function::FnOnce::call_once{{vtable.shim}} (81,243,729 samples, 29.56%)core::ops::function::FnOnce::call_once{{vtable.s..std::sys::backtrace::__rust_begin_short_backtrace (81,243,729 samples, 29.56%)std::sys::backtrace::__rust_begin_short_backtracetokio::runtime::blocking::pool::Inner::run (81,243,729 samples, 29.56%)tokio::runtime::blocking::pool::Inner::runtokio::runtime::task::harness::Harness<T,S>::poll (79,237,711 samples, 28.83%)tokio::runtime::task::harness::Harness<T,S>::p..tokio::runtime::task::core::Core<T,S>::poll (79,237,711 samples, 28.83%)tokio::runtime::task::core::Core<T,S>::poll<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll (79,237,711 samples, 28.83%)<tokio::runtime::blocking::task::BlockingTask<..tokio::runtime::scheduler::multi_thread::worker::run (57,171,513 samples, 20.80%)tokio::runtime::scheduler::multi_..tokio::runtime::context::runtime::enter_runtime (57,171,513 samples, 20.80%)tokio::runtime::context::runtime:..tokio::runtime::scheduler::multi_thread::worker::Context::run (57,171,513 samples, 20.80%)tokio::runtime::scheduler::multi_..tokio::runtime::scheduler::multi_thread::worker::Context::run_task (32,096,288 samples, 11.68%)tokio::runtime::s..tokio::runtime::task::raw::poll (21,063,189 samples, 7.66%)tokio::run..tokio::runtime::task::core::Core<T,S>::poll (15,045,135 samples, 5.47%)tokio::.._ZN17reth_engine_local5miner40LocalMiner$LT$EngineT$C$Provider$C$B$GT$3run28_$u7b$$u7b$closure$u7d$$u7d$17hdc6f8a2c46d2103dE.llvm.6325698203083743441 (1,003,009 samples, 0.36%)<core::future::poll_fn::PollFn<F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<jsonrpsee_server::utils::TowerToHyperServiceFuture<S,R> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<tower::util::either::Either<A,B> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)_ZN177_$LT$reth_rpc_layer..compression_layer..CompressionService$LT$S$GT$$u20$as$u20$tower_service..Service$LT$http..request..Request$LT$jsonrpsee_core..http_helpers..Body$GT$$GT$$GT$4call28_$u7b$$u7b$closure$u7d$$u7d$17h17b345a84b485c53E.llvm.12732622006199615693 (1,003,009 samples, 0.36%)_rjem_je_malloc_default (1,003,009 samples, 0.36%)_rjem_je_te_event_trigger (1,003,009 samples, 0.36%)_rjem_je_tcache_gc_event_handler (1,003,009 samples, 0.36%)tcache_gc_small (1,003,009 samples, 0.36%)_rjem_je_tcache_bin_flush_small (1,003,009 samples, 0.36%)_rjem_je_arena_slab_dalloc (1,003,009 samples, 0.36%)_rjem_je_pa_dalloc (1,003,009 samples, 0.36%)_rjem_je_emap_deregister_interior (1,003,009 samples, 0.36%)<hyper_util::server::conn::auto::UpgradeableConnection<I,S,E> as core::future::future::Future>::poll (3,009,027 samples, 1.09%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_head (2,006,018 samples, 0.73%)hyper::proto::h1::io::Buffered<T,B>::parse (2,006,018 samples, 0.73%)hyper::proto::h1::role::parse_headers (2,006,018 samples, 0.73%)<hyper::proto::h1::role::Server as hyper::proto::h1::Http1Transaction>::parse (2,006,018 samples, 0.73%)http::header::name::HeaderName::from_bytes (1,003,009 samples, 0.36%)http::header::name::parse_hdr (1,003,009 samples, 0.36%)core::ptr::drop_in_place<reth_rpc_builder::metrics::RpcRequestMetricsService<jsonrpsee_server::middleware::rpc::layer::rpc_service::RpcService>> (1,003,009 samples, 0.36%)<http_body_util::limited::Limited<B> as http_body::Body>::poll_frame (2,006,018 samples, 0.73%)_ZN93_$LT$http_body_util..combinators..map_err..MapErr$LT$B$C$F$GT$$u20$as$u20$http_body..Body$GT$10poll_frame17hfee23e936a3a3af6E.llvm.12001642851839036941 (2,006,018 samples, 0.73%)_ZN93_$LT$http_body_util..combinators..map_err..MapErr$LT$B$C$F$GT$$u20$as$u20$http_body..Body$GT$10poll_frame17h385671a4de32e41eE.llvm.12001642851839036941 (2,006,018 samples, 0.73%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (2,006,018 samples, 0.73%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (2,006,018 samples, 0.73%)_ZN15futures_channel4mpsc17Receiver$LT$T$GT$12next_message17h3cc6e552f12dd691E.llvm.4115903468384367700 (2,006,018 samples, 0.73%)futures_channel::mpsc::queue::Queue<T>::pop_spin (1,003,009 samples, 0.36%)jsonrpsee_core::http_helpers::read_body::_{{closure}} (3,009,027 samples, 1.09%)_rjem_je_malloc_default (1,003,009 samples, 0.36%)_rjem_je_tcache_alloc_small_hard (1,003,009 samples, 0.36%)_rjem_je_arena_cache_bin_fill_small (1,003,009 samples, 0.36%)arena_slab_alloc (1,003,009 samples, 0.36%)_rjem_je_pa_alloc (1,003,009 samples, 0.36%)pac_alloc_impl (1,003,009 samples, 0.36%)pac_alloc_real (1,003,009 samples, 0.36%)_rjem_je_ecache_alloc (1,003,009 samples, 0.36%)extent_recycle (1,003,009 samples, 0.36%)extent_split_interior.constprop.0 (1,003,009 samples, 0.36%)extent_split_impl.constprop.0 (1,003,009 samples, 0.36%)_rjem_je_base_alloc_edata (1,003,009 samples, 0.36%)base_alloc_impl (1,003,009 samples, 0.36%)base_extent_bump_alloc_post (1,003,009 samples, 0.36%)jsonrpsee_core::server::method_response::MethodResponse::into_result (1,003,009 samples, 0.36%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (1,003,009 samples, 0.36%)core::ptr::drop_in_place<jsonrpsee_server::future::ConnectionGuard> (1,003,009 samples, 0.36%)<hashbrown::map::HashMap<K,V,S,A> as core::clone::Clone>::clone (1,003,009 samples, 0.36%)_ZN643_$LT$T$u20$as$u20$reth_rpc_eth_api..core..EthApiServer$LT$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..TransactionResponse$C$alloy_rpc_types_eth..block..Block$LT$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..TransactionResponse$C$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..HeaderResponse$GT$$C$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..ReceiptResponse$GT$$GT$17transaction_count28_$u7b$$u7b$closure$u7d$$u7d$17h563b764548d20dafE.llvm.438779863700274100 (1,003,009 samples, 0.36%)reth_rpc_eth_api::helpers::state::LoadState::transaction_count (1,003,009 samples, 0.36%)_ZN10reth_tasks12TaskExecutor13spawn_task_as17heb80c8e346649bb1E.llvm.3640934217245567238 (1,003,009 samples, 0.36%)tokio::runtime::blocking::pool::Spawner::spawn_blocking (1,003,009 samples, 0.36%)tokio::runtime::blocking::pool::Spawner::spawn_task (1,003,009 samples, 0.36%)syscall (1,003,009 samples, 0.36%)reth_primitives::transaction::pooled::PooledTransactionsElement::signature_hash (1,003,009 samples, 0.36%)tiny_keccak::KeccakState<P>::squeeze (1,003,009 samples, 0.36%)tiny_keccak::keccakf::keccakf (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_ecdsa_recover (1,003,009 samples, 0.36%)_ZN643_$LT$T$u20$as$u20$reth_rpc_eth_api..core..EthApiServer$LT$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..TransactionResponse$C$alloy_rpc_types_eth..block..Block$LT$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..TransactionResponse$C$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..HeaderResponse$GT$$C$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..ReceiptResponse$GT$$GT$20send_raw_transaction28_$u7b$$u7b$closure$u7d$$u7d$17h4c032d432beb1781E.llvm.438779863700274100 (3,009,027 samples, 1.09%)reth_rpc_eth_types::utils::recover_raw_transaction (3,009,027 samples, 1.09%)reth_primitives::transaction::pooled::PooledTransactionsElement::try_into_ecrecovered (3,009,027 samples, 1.09%)reth_primitives::transaction::signature::recover_signer_unchecked (2,006,018 samples, 0.73%)reth_primitives::transaction::util::impl_secp256k1::recover_signer_unchecked (2,006,018 samples, 0.73%)tiny_keccak::KeccakState<P>::squeeze (1,003,009 samples, 0.36%)tiny_keccak::keccakf::keccakf (1,003,009 samples, 0.36%)jsonrpsee_core::server::method_response::MethodResponse::response (1,003,009 samples, 0.36%)<jsonrpsee_types::response::Response<T> as serde::ser::Serialize>::serialize (1,003,009 samples, 0.36%)_ZN86_$LT$serde_json..ser..Compound$LT$W$C$F$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hc1f3aa9532feee81E.llvm.9628542176372663265 (1,003,009 samples, 0.36%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1,003,009 samples, 0.36%)jsonrpsee_types::params::ParamsSequence::next (2,006,018 samples, 0.73%)_ZN16alloy_primitives6bytes_5serde84_$LT$impl$u20$serde..de..Deserialize$u20$for$u20$alloy_primitives..bytes_..Bytes$GT$11deserialize17h1f2d650c3a2633b5E.llvm.7291770557919418192 (2,006,018 samples, 0.73%)const_hex::decode::decode_inner (1,003,009 samples, 0.36%)<reth_rpc_builder::metrics::MeteredRequestFuture<F> as core::future::future::Future>::poll (10,030,090 samples, 3.65%)<ret..jsonrpsee_core::server::rpc_module::RpcModule<Context>::register_async_method::_{{closure}}::_{{closure}} (10,030,090 samples, 3.65%)json..jsonrpsee_types::params::ParamsSequence::optional_next (1,003,009 samples, 0.36%)<reth_rpc_builder::metrics::RpcRequestMetricsService<S> as jsonrpsee_server::middleware::rpc::RpcServiceT>::call (1,003,009 samples, 0.36%)<jsonrpsee_server::middleware::rpc::layer::rpc_service::RpcService as jsonrpsee_server::middleware::rpc::RpcServiceT>::call (1,003,009 samples, 0.36%)_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$9get_inner17hb34623f3db45bb0cE.llvm.575225172433560976 (1,003,009 samples, 0.36%)<tower_http::compression::future::ResponseFuture<F,P> as core::future::future::Future>::poll (19,057,171 samples, 6.93%)<tower_ht..<jsonrpsee_server::server::TowerServiceNoHttp<RpcMiddleware> as tower_service::Service<http::request::Request<Body>>>::call::_{{closure}} (19,057,171 samples, 6.93%)<jsonrpse..jsonrpsee_server::server::handle_rpc_call::_{{closure}} (13,039,117 samples, 4.74%)jsonrp..jsonrpsee_server::utils::deserialize::from_slice_with_extensions (2,006,018 samples, 0.73%)serde_json::de::from_trait (2,006,018 samples, 0.73%)<&mut serde_json::de::Deserializer<R> as serde::de::Deserializer>::deserialize_struct (2,006,018 samples, 0.73%)serde::de::impls::<impl serde::de::Deserialize for core::option::Option<T>>::deserialize (2,006,018 samples, 0.73%)_ZN10serde_json2de21Deserializer$LT$R$GT$12ignore_value17h8290a05674bb52f0E.llvm.15521527588601657747 (1,003,009 samples, 0.36%)reth_transaction_pool::pool::txpool::TxPool<T>::add_transaction_to_subpool (2,006,018 samples, 0.73%)_ZN643_$LT$T$u20$as$u20$reth_rpc_eth_api..core..EthApiServer$LT$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..TransactionResponse$C$alloy_rpc_types_eth..block..Block$LT$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..TransactionResponse$C$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..HeaderResponse$GT$$C$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..ReceiptResponse$GT$$GT$20send_raw_transaction28_$u7b$$u7b$closure$u7d$$u7d$17h4c032d432beb1781E.llvm.438779863700274100 (4,012,036 samples, 1.46%)<reth_transaction_pool::Pool<V,T,S> as reth_transaction_pool::traits::TransactionPool>::add_transaction::_{{closure}} (4,012,036 samples, 1.46%)reth_transaction_pool::pool::PoolInner<V,T,S>::add_transactions (4,012,036 samples, 1.46%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (4,012,036 samples, 1.46%)reth_transaction_pool::pool::PoolInner<V,T,S>::add_transaction (3,009,027 samples, 1.09%)reth_transaction_pool::pool::txpool::TxPool<T>::add_transaction (3,009,027 samples, 1.09%)reth_transaction_pool::pool::txpool::TxPool<T>::update_size_metrics (1,003,009 samples, 0.36%)<metrics_util::registry::recency::Generational<T> as metrics::handles::GaugeFn>::set (1,003,009 samples, 0.36%)reth_transaction_pool::pool::PoolInner<V,T,S>::add_transactions (1,003,009 samples, 0.36%)reth_transaction_pool::pool::PoolInner<V,T,S>::discard_worst (1,003,009 samples, 0.36%)reth_transaction_pool::pool::PoolInner<V,T,S>::delete_discarded_blobs (1,003,009 samples, 0.36%)<reth_transaction_pool::blobstore::disk::DiskFileBlobStore as reth_transaction_pool::blobstore::BlobStore>::delete_all (1,003,009 samples, 0.36%)core::iter::traits::iterator::Iterator::partition (1,003,009 samples, 0.36%)<reth_transaction_pool::Pool<V,T,S> as reth_transaction_pool::traits::TransactionPool>::add_transaction::_{{closure}} (2,006,018 samples, 0.73%)reth_transaction_pool::validate::task::ValidationJobSender::send::_{{closure}} (1,003,009 samples, 0.36%)_ZN5tokio7runtime4park4wake17he4ba08c2e829f32cE.llvm.472134555349281347 (1,003,009 samples, 0.36%)parking_lot::condvar::Condvar::notify_one_slow (1,003,009 samples, 0.36%)syscall (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (7,021,063 samples, 2.55%)ru..rustsecp256k1_v0_10_0_fe_sqr_inner (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (5,015,045 samples, 1.82%)r..rustsecp256k1_v0_10_0_gej_add_ge_var (8,024,072 samples, 2.92%)ru..rustsecp256k1_v0_10_0_fe_sqr_inner (2,006,018 samples, 0.73%)rustsecp256k1_v0_10_0_fe_mul_inner (3,009,027 samples, 1.09%)rustsecp256k1_v0_10_0_ecmult_strauss_wnaf.constprop.0 (29,087,261 samples, 10.58%)rustsecp256k1_v..rustsecp256k1_v0_10_0_gej_add_zinv_var (4,012,036 samples, 1.46%)rustsecp256k1_v0_10_0_fe_sqr_inner (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_ge_set_gej_var (3,009,027 samples, 1.09%)rustsecp256k1_v0_10_0_fe_impl_inv_var (3,009,027 samples, 1.09%)rustsecp256k1_v0_10_0_ge_set_xo_var (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_sqrt (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_scalar_get_b32 (1,003,009 samples, 0.36%)jsonrpsee_core::server::rpc_module::RpcModule<Context>::register_async_method::_{{closure}}::_{{closure}} (37,111,333 samples, 13.50%)jsonrpsee_core::serv.._ZN643_$LT$T$u20$as$u20$reth_rpc_eth_api..core..EthApiServer$LT$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..TransactionResponse$C$alloy_rpc_types_eth..block..Block$LT$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..TransactionResponse$C$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..HeaderResponse$GT$$C$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..ReceiptResponse$GT$$GT$20send_raw_transaction28_$u7b$$u7b$closure$u7d$$u7d$17h4c032d432beb1781E.llvm.438779863700274100 (37,111,333 samples, 13.50%)_ZN643_$LT$T$u20$as$..reth_rpc_eth_types::utils::recover_raw_transaction (35,105,315 samples, 12.77%)reth_rpc_eth_types:..reth_primitives::transaction::pooled::PooledTransactionsElement::try_into_ecrecovered (35,105,315 samples, 12.77%)reth_primitives::tr..reth_primitives::transaction::signature::recover_signer_unchecked (35,105,315 samples, 12.77%)reth_primitives::tr..reth_primitives::transaction::util::impl_secp256k1::recover_signer_unchecked (35,105,315 samples, 12.77%)reth_primitives::tr..rustsecp256k1_v0_10_0_ecdsa_recover (35,105,315 samples, 12.77%)rustsecp256k1_v0_10..rustsecp256k1_v0_10_0_ecdsa_sig_recover (35,105,315 samples, 12.77%)rustsecp256k1_v0_10..rustsecp256k1_v0_10_0_scalar_inverse_var (1,003,009 samples, 0.36%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (1,003,009 samples, 0.36%)alloy_trie::hash_builder::HashBuilder::add_leaf (2,006,018 samples, 0.73%)_ZN10alloy_trie12hash_builder11HashBuilder6update17h55f230d2209f9656E.llvm.16336768008158044780 (2,006,018 samples, 0.73%)tiny_keccak::KeccakState<P>::squeeze (1,003,009 samples, 0.36%)tiny_keccak::keccakf::keccakf (1,003,009 samples, 0.36%)<reth_chain_state::memory_overlay::MemoryOverlayStateProvider<N> as reth_storage_api::trie::StateRootProvider>::state_root_with_updates (3,009,027 samples, 1.09%)<reth_provider::providers::state::latest::LatestStateProvider<Provider> as reth_storage_api::trie::StateRootProvider>::state_root_from_nodes_with_updates (3,009,027 samples, 1.09%)<reth_trie::trie::StateRoot<reth_trie_db::trie_cursor::DatabaseTrieCursorFactory<TX>,reth_trie_db::hashed_cursor::DatabaseHashedCursorFactory<TX>> as reth_trie_db::state::DatabaseStateRoot<TX>>::overlay_root_from_nodes_with_updates (3,009,027 samples, 1.09%)reth_trie::trie::StateRoot<T,H>::calculate (3,009,027 samples, 1.09%)reth_trie::trie::StorageRoot<T,H>::calculate (1,003,009 samples, 0.36%)<reth_trie::hashed_cursor::post_state::HashedPostStateCursorFactory<CF> as reth_trie::hashed_cursor::HashedCursorFactory>::hashed_storage_cursor (1,003,009 samples, 0.36%)_ZN7reth_db14implementation4mdbx2tx11Tx$LT$K$GT$10new_cursor17hd3f6fda417c9c402E.llvm.9863100019090468457 (1,003,009 samples, 0.36%)reth_libmdbx::cursor::Cursor<K>::new (1,003,009 samples, 0.36%)mdbx_cursor_open (1,003,009 samples, 0.36%)mdbx_cursor_bind (1,003,009 samples, 0.36%)cursor_init (1,003,009 samples, 0.36%)cursor_xinit0 (1,003,009 samples, 0.36%)reth_primitives::receipt::Receipts<T>::root_slow (1,003,009 samples, 0.36%)alloy_trie::root::ordered_trie_root_with_encoder (1,003,009 samples, 0.36%)alloy_trie::hash_builder::HashBuilder::add_leaf (1,003,009 samples, 0.36%)_ZN10alloy_trie12hash_builder11HashBuilder6update17h55f230d2209f9656E.llvm.16336768008158044780 (1,003,009 samples, 0.36%)tiny_keccak::KeccakState<P>::squeeze (1,003,009 samples, 0.36%)tiny_keccak::keccakf::keccakf (1,003,009 samples, 0.36%)revm::db::states::cache::CacheState::apply_evm_state (1,003,009 samples, 0.36%)reth_ethereum_payload_builder::default_ethereum_payload (6,018,054 samples, 2.19%)r..revm::evm::Evm<EXT,DB>::transact (1,003,009 samples, 0.36%)revm::evm::Evm<EXT,DB>::transact_preverified_inner (1,003,009 samples, 0.36%)core::ops::function::Fn::call (1,003,009 samples, 0.36%)revm::handler::mainnet::pre_execution::deduct_caller_inner (1,003,009 samples, 0.36%)tokio::runtime::task::core::Core<T,S>::poll (1,003,009 samples, 0.36%)_ZN16jsonrpsee_server6server18process_connection28_$u7b$$u7b$closure$u7d$$u7d$17h114cbc50ca9fe822E.llvm.6325698203083743441 (1,003,009 samples, 0.36%)<hyper_util::server::conn::auto::UpgradeableConnection<I,S,E> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_head (1,003,009 samples, 0.36%)hyper::proto::h1::io::Buffered<T,B>::parse (1,003,009 samples, 0.36%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (1,003,009 samples, 0.36%)bytes::bytes_mut::BytesMut::reserve_inner (1,003,009 samples, 0.36%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1,003,009 samples, 0.36%)_ZN5alloc7raw_vec11finish_grow17hf67c452e342585cdE.llvm.1341633655988347409 (1,003,009 samples, 0.36%)do_rallocx (1,003,009 samples, 0.36%)_rjem_je_arena_ralloc (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)_ZN10reth_tasks12TaskExecutor17spawn_critical_as28_$u7b$$u7b$closure$u7d$$u7d$17h78d1039c30b3cab2E.llvm.6325698203083743441 (1,003,009 samples, 0.36%)<futures_util::future::select::Select<A,B> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<tracing_futures::Instrumented<T> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<reth_network::transactions::TransactionsManager<Pool,N> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)reth_network::transactions::TransactionsManager<Pool,N>::on_new_pending_transactions (1,003,009 samples, 0.36%)reth_network::transactions::TransactionsManager<Pool,N>::propagate_all (1,003,009 samples, 0.36%)<hyper_util::server::conn::auto::ReadVersion<I> as core::future::future::Future>::poll (2,006,018 samples, 0.73%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (2,006,018 samples, 0.73%)tokio::io::poll_evented::PollEvented<E>::poll_read (2,006,018 samples, 0.73%)recv (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<jsonrpsee_server::utils::TowerToHyperServiceFuture<S,R> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)_ZN4core3ptr2161drop_in_place$LT$tower..util..oneshot..State$LT$tower..util..either..Either$LT$tower_http..cors..Cors$LT$tower..util..either..Either$LT$reth_rpc_layer..auth_layer..AuthService$LT$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$reth_rpc_layer..jwt_validator..JwtAuthValidator$GT$$C$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$GT$$GT$$C$tower..util..either..Either$LT$reth_rpc_layer..auth_layer..AuthService$LT$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$reth_rpc_layer..jwt_validator..JwtAuthValidator$GT$$C$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$GT$$GT$$C$http..request..Request$LT$jsonrpsee_core..http_helpers..Body$GT$$GT$$GT$17hd718d6695c58f3c8E (1,003,009 samples, 0.36%)_ZN4core3ptr1006drop_in_place$LT$tower..util..either..Either$LT$reth_rpc_layer..auth_layer..AuthService$LT$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$reth_rpc_layer..jwt_validator..JwtAuthValidator$GT$$C$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$GT$$GT$17hcbdd05f03e3530e5E (1,003,009 samples, 0.36%)_ZN93_$LT$http_body_util..combinators..map_err..MapErr$LT$B$C$F$GT$$u20$as$u20$http_body..Body$GT$13is_end_stream17h849bac588eae8af5E.llvm.12001642851839036941 (1,003,009 samples, 0.36%)hyper::proto::h1::conn::Conn<I,B,T>::poll_flush (15,045,135 samples, 5.47%)hyper::..hyper::proto::h1::io::Buffered<T,B>::poll_flush (15,045,135 samples, 5.47%)hyper::..tokio::runtime::io::registration::Registration::poll_io (14,042,126 samples, 5.11%)tokio:..writev (14,042,126 samples, 5.11%)writev[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (13,039,117 samples, 4.74%)[unkno..[unknown] (13,039,117 samples, 4.74%)[unkno..[unknown] (13,039,117 samples, 4.74%)[unkno..[unknown] (13,039,117 samples, 4.74%)[unkno..[unknown] (13,039,117 samples, 4.74%)[unkno..[unknown] (12,036,108 samples, 4.38%)[unkn..[unknown] (12,036,108 samples, 4.38%)[unkn..[unknown] (12,036,108 samples, 4.38%)[unkn..[unknown] (12,036,108 samples, 4.38%)[unkn..[unknown] (12,036,108 samples, 4.38%)[unkn..[unknown] (12,036,108 samples, 4.38%)[unkn..[unknown] (12,036,108 samples, 4.38%)[unkn..[unknown] (11,033,099 samples, 4.01%)[unk..[unknown] (11,033,099 samples, 4.01%)[unk..[unknown] (11,033,099 samples, 4.01%)[unk..[unknown] (11,033,099 samples, 4.01%)[unk..[unknown] (11,033,099 samples, 4.01%)[unk..[unknown] (11,033,099 samples, 4.01%)[unk..[unknown] (10,030,090 samples, 3.65%)[unk..[unknown] (10,030,090 samples, 3.65%)[unk..[unknown] (9,027,081 samples, 3.28%)[un..[unknown] (9,027,081 samples, 3.28%)[un..[unknown] (6,018,054 samples, 2.19%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (4,012,036 samples, 1.46%)[unknown] (4,012,036 samples, 1.46%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)recv (4,012,036 samples, 1.46%)[unknown] (4,012,036 samples, 1.46%)[unknown] (4,012,036 samples, 1.46%)[unknown] (4,012,036 samples, 1.46%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_head (6,018,054 samples, 2.19%)h..hyper::proto::h1::io::Buffered<T,B>::parse (6,018,054 samples, 2.19%)h..hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (6,018,054 samples, 2.19%)h..<hyper_util::common::rewind::Rewind<T> as hyper::rt::io::Read>::poll_read (6,018,054 samples, 2.19%)<..<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (6,018,054 samples, 2.19%)<..tokio::io::poll_evented::PollEvented<E>::poll_read (6,018,054 samples, 2.19%)t..tokio::runtime::io::registration::Registration::poll_ready (1,003,009 samples, 0.36%)hyper::proto::h1::conn::Conn<I,B,T>::poll_shutdown (3,009,027 samples, 1.09%)shutdown (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (105,315,945 samples, 38.32%)[unknown]tokio::runtime::task::raw::poll (35,105,315 samples, 12.77%)tokio::runtime::tas..tokio::runtime::task::core::Core<T,S>::poll (35,105,315 samples, 12.77%)tokio::runtime::tas.._ZN16jsonrpsee_server6server18process_connection28_$u7b$$u7b$closure$u7d$$u7d$17h114cbc50ca9fe822E.llvm.6325698203083743441 (34,102,306 samples, 12.41%)_ZN16jsonrpsee_serv..<hyper_util::server::conn::auto::UpgradeableConnection<I,S,E> as core::future::future::Future>::poll (34,102,306 samples, 12.41%)<hyper_util::server..hyper::proto::h1::conn::Conn<I,B,T>::write_head (1,003,009 samples, 0.36%)tokio-runtime-w (189,568,701 samples, 68.98%)tokio-runtime-wbase_alloc_impl (1,003,009 samples, 0.36%)_rjem_je_edata_heap_remove_first (1,003,009 samples, 0.36%)_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$9flush_buf17h5b43b2f3e9d41c6fE.llvm.6717257651735023684 (1,003,009 samples, 0.36%)write (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)_rjem_sdallocx (1,003,009 samples, 0.36%)all (274,824,466 samples, 100%)tracing-appende (4,012,036 samples, 1.46%)[libc.so.6] (4,012,036 samples, 1.46%)[libc.so.6] (4,012,036 samples, 1.46%)std::sys::pal::unix::thread::Thread::new::thread_start (4,012,036 samples, 1.46%)core::ops::function::FnOnce::call_once{{vtable.shim}} (4,012,036 samples, 1.46%)std::sys::backtrace::__rust_begin_short_backtrace (4,012,036 samples, 1.46%)tracing_appender::worker::Worker<T>::work (4,012,036 samples, 1.46%)crossbeam_channel::channel::Receiver<T>::recv (2,006,018 samples, 0.73%)__sched_yield (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%) \ No newline at end of file diff --git a/pages/index.html b/pages/index.html new file mode 100644 index 0000000000..f527e094c1 --- /dev/null +++ b/pages/index.html @@ -0,0 +1,7 @@ + + + +

Flamegraphs

+A flamegraph + + From b128f48efed41d60c564bab2097c7a45c38b9608 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 5 Dec 2024 10:28:18 -0300 Subject: [PATCH 19/80] Update deployed page with generated flamegraphs --- .github/scripts/flamegraph.sh | 6 ++- .github/scripts/flamegraph_reth.sh | 3 +- .github/workflows/deploy_page.yaml | 41 -------------- .github/workflows/flamegraph_reporter.yaml | 57 ++++++++++++++++++-- pages/index.html | 49 +++++++++++++++-- pages/style.css | 62 ++++++++++++++++++++++ 6 files changed, 165 insertions(+), 53 deletions(-) delete mode 100644 .github/workflows/deploy_page.yaml create mode 100644 pages/style.css diff --git a/.github/scripts/flamegraph.sh b/.github/scripts/flamegraph.sh index 4d41d1dea1..82a592d53c 100644 --- a/.github/scripts/flamegraph.sh +++ b/.github/scripts/flamegraph.sh @@ -10,10 +10,12 @@ ethrex_l2 test load --path ./test_data/private_keys.txt -i $iterations -v --val echo "Waiting for transactions to be processed..." output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) -while [[ $output -le $end_val ]]; do +retries=0 +while [[ $output -le $end_val && $retries -lt 30 ]]; do sleep 5 output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) + echo "balance was $output still not reached value of $end_val" done echo "Done. Balance of $output reached, killing process ethrex" -sudo pkill ethrex && while pgrep -l "cargo-flamegraph"; do sleep 1;done; +sudo pkill ethrex && while pgrep -l "cargo-flamegraph"; do echo "waiting for reth to exit... "; sleep 1;done; echo "ethrex killed" diff --git a/.github/scripts/flamegraph_reth.sh b/.github/scripts/flamegraph_reth.sh index 93b69a5456..77e481cc97 100644 --- a/.github/scripts/flamegraph_reth.sh +++ b/.github/scripts/flamegraph_reth.sh @@ -12,7 +12,8 @@ output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) while [[ $output -le $end_val ]]; do sleep 5 output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) + echo "balance was $output still not reached value of $end_val" done echo "Balance of $output reached, killing process reth" -sudo pkill reth && while pgrep -l "cargo-flamegraph"; do sleep 1;done; +sudo pkill reth && while pgrep -l "cargo-flamegraph"; do echo "waiting for reth to exit... "; sleep 1;done; diff --git a/.github/workflows/deploy_page.yaml b/.github/workflows/deploy_page.yaml deleted file mode 100644 index 90e474d76d..0000000000 --- a/.github/workflows/deploy_page.yaml +++ /dev/null @@ -1,41 +0,0 @@ -# Simple workflow for deploying static content to GitHub Pages -name: Deploy static content to Pages - -on: - # Runs on pushes targeting the default branch - push: - branches: [ "automate-perf-tests" ] - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write - -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - # Single deploy job since we're just deploying - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup Pages - uses: actions/configure-pages@v5 - - name: Upload artifact - uses: actions/upload-pages-artifact@v3 - with: - path: 'pages/' - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 06f3c511c9..3f2aad99fe 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -1,5 +1,10 @@ name: Daily Flamegraph Reporter +permissions: + contents: read + pages: write + id-token: write + on: push: branches: [ "main" ] @@ -65,14 +70,14 @@ jobs: echo "running perf" perf script -v -i perf.data --no-inline > stack.data inferno-collapse-perf < stack.data > collapsed.data - inferno-flamegraph < collapsed.data > flamegraph.svg - file flamegraph.svg + inferno-flamegraph < collapsed.data > flamegraph_ethrex.svg + file flamegraph_ethrex.svg - - name: Upload artifacts - flamegraph.svg + - name: Upload artifacts - flamegraph_ethrex.svg uses: actions/upload-artifact@v4 with: - name: flamegraph.svg - path: ./flamegraph.svg + name: flamegraph_ethrex.svg + path: ./flamegraph_ethrex.svg flamegraph-reth: name: Generate Flamegraph for Reth @@ -147,3 +152,45 @@ jobs: with: name: flamegraph_reth.svg path: ./flamegraph_reth.svg + + upload-static-page: + name: Upload artifacts for static page + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + needs: [ flamegraph, flamegraph-reth ] + steps: + - name: Checkout sources + uses: actions/checkout@v4 + + - name: Download ethrex flamegraph artifact + uses: actions/download-artifact@v4 + with: + name: flamegraph_ethrex + path: flamegraph_ethrex.svg + + - name: Download reth flamegraph artifact + uses: actions/download-artifact@v4 + with: + name: flamegraph_reth + path: flamegraph_reth.svg + + - name: Update static page locally with new data + run: | + cp flamegraph_ethrex.svg pages/ + cp flamegraph_reth.svg pages/ + echo "NOW=$(date +'%Y-%m-%dT%H:%M:%S')" >> $GITHUB_ENV + sed -i "s/{{LAST_UPDATE}}/$NOW/g" pages/index.html + + - name: Setup Pages + uses: actions/configure-pages@v5 + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: 'pages/' + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/pages/index.html b/pages/index.html index f527e094c1..21b9408f96 100644 --- a/pages/index.html +++ b/pages/index.html @@ -1,7 +1,48 @@ - - + + + + + + Ethrex Flamegraph Comparison + + -

Flamegraphs

-A flamegraph +
+

Ethrex Flamegraph Comparison

+

Last update: {{LAST_UPDATE}}

+
+
+
+
+

Ethrex

+ Download +
+ +
+
+
+

Reth

+ Download +
+ +
+
+ + diff --git a/pages/style.css b/pages/style.css new file mode 100644 index 0000000000..c2c5a29aff --- /dev/null +++ b/pages/style.css @@ -0,0 +1,62 @@ +body { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + min-height: 100vh; + margin: 0; + font-family: Arial, sans-serif; + background-color: #f9f9f9; +} + +header { + text-align: center; + margin-bottom: 1.5em; +} + +h1 { + margin-bottom: 0; +} + +.last-updated { + margin-top: 0.5em; + font-weight: lighter; + color: dimgray; +} + +.container { + display: flex; + gap: 10px; + width: 90%; +} + +.column { + flex: 1; + text-align: center; + background: #fff; + border: 1px solid #ddd; + border-radius: 8px; + padding: 5px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + height: 80vh; +} + +img { + width: 80%; + height: auto; + max-width: 200px; + max-height: 150px; /* Prevent SVGs from being too tall */ +} + +h2 { + margin-bottom: 5px; + font-size: 1.5rem; +} + +.col-header { + margin-bottom: 2em; +} From 9a7c430683881450a5fd204ebdf1250cae091fa7 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 5 Dec 2024 11:05:35 -0300 Subject: [PATCH 20/80] Update deployed page with generated flamegraphs 2 --- .github/scripts/flamegraph.sh | 3 ++- .github/scripts/flamegraph_reth.sh | 6 ++++-- .github/workflows/flamegraph_reporter.yaml | 16 ++++++++++------ 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/.github/scripts/flamegraph.sh b/.github/scripts/flamegraph.sh index 82a592d53c..77f6aa5455 100644 --- a/.github/scripts/flamegraph.sh +++ b/.github/scripts/flamegraph.sh @@ -14,7 +14,8 @@ retries=0 while [[ $output -le $end_val && $retries -lt 30 ]]; do sleep 5 output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) - echo "balance was $output still not reached value of $end_val" + echo "balance was $output still not reached value of $end_val (retry $retries/30)" + ((retries++)) done echo "Done. Balance of $output reached, killing process ethrex" sudo pkill ethrex && while pgrep -l "cargo-flamegraph"; do echo "waiting for reth to exit... "; sleep 1;done; diff --git a/.github/scripts/flamegraph_reth.sh b/.github/scripts/flamegraph_reth.sh index 77e481cc97..3d57e914ee 100644 --- a/.github/scripts/flamegraph_reth.sh +++ b/.github/scripts/flamegraph_reth.sh @@ -9,10 +9,12 @@ ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_key echo "Monitoring..." output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) -while [[ $output -le $end_val ]]; do +retries=0 +while [[ $output -le $end_val && $retries -lt 30 ]]; do sleep 5 output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) - echo "balance was $output still not reached value of $end_val" + echo "balance was $output still not reached value of $end_val (retry $retries/30)" + ((retries++)) done echo "Balance of $output reached, killing process reth" diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 3f2aad99fe..0930a6b6c4 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -167,21 +167,25 @@ jobs: - name: Download ethrex flamegraph artifact uses: actions/download-artifact@v4 with: - name: flamegraph_ethrex + name: flamegraph_ethrex.svg path: flamegraph_ethrex.svg - name: Download reth flamegraph artifact uses: actions/download-artifact@v4 with: - name: flamegraph_reth + name: flamegraph_reth.svg path: flamegraph_reth.svg - name: Update static page locally with new data + shell: bash run: | - cp flamegraph_ethrex.svg pages/ - cp flamegraph_reth.svg pages/ - echo "NOW=$(date +'%Y-%m-%dT%H:%M:%S')" >> $GITHUB_ENV - sed -i "s/{{LAST_UPDATE}}/$NOW/g" pages/index.html + file flamegraph_ethrex.svg + file flamegraph_reth.svg + cp -r flamegraph_ethrex.svg pages/ + cp -r flamegraph_reth.svg pages/ + ls -las pages/ + date +'%Y-%m-%dT%H:%M:%S' + sed -i "s/{{LAST_UPDATE}}/$(date +'%Y-%m-%dT%H:%M:%S')/g" pages/index.html - name: Setup Pages uses: actions/configure-pages@v5 From 29d50a4033afd4d15af0b6d582d56fb1e8c50af0 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 5 Dec 2024 13:24:59 -0300 Subject: [PATCH 21/80] Fix .svg paths --- pages/index.html | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pages/index.html b/pages/index.html index 21b9408f96..6dc4dc3fb6 100644 --- a/pages/index.html +++ b/pages/index.html @@ -15,16 +15,19 @@

Ethrex Flamegraph Comparison

Ethrex

- Download + Download
- +

Reth

- Download + Download
- +
From 2d2160bcd4f0dcf64a186a22350b5645f311fb96 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 5 Dec 2024 14:30:22 -0300 Subject: [PATCH 22/80] Add elapsed time for each test to static page --- .github/scripts/flamegraph.sh | 19 +++++++++++++------ .github/scripts/flamegraph_reth.sh | 14 +++++++++++--- .github/workflows/flamegraph_reporter.yaml | 19 ++++++++++++++++++- pages/index.html | 6 ++++-- pages/style.css | 7 ++++++- 5 files changed, 52 insertions(+), 13 deletions(-) diff --git a/.github/scripts/flamegraph.sh b/.github/scripts/flamegraph.sh index 77f6aa5455..ef384d69d0 100644 --- a/.github/scripts/flamegraph.sh +++ b/.github/scripts/flamegraph.sh @@ -1,14 +1,13 @@ #!/bin/bash -iterations=3 +iterations=10 value=10000000 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((172 * $iterations * $value)) -echo "Sending to account $account" -ethrex_l2 test load --path ./test_data/private_keys.txt -i $iterations -v --value $value --to $account +ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_keys.txt -i $iterations -v --value $value --to $account -echo "Waiting for transactions to be processed..." +start_time=$(date +%s) output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) retries=0 while [[ $output -le $end_val && $retries -lt 30 ]]; do @@ -17,6 +16,14 @@ while [[ $output -le $end_val && $retries -lt 30 ]]; do echo "balance was $output still not reached value of $end_val (retry $retries/30)" ((retries++)) done -echo "Done. Balance of $output reached, killing process ethrex" +end_time=$(date +%s) +elapsed_time=$((end_time - start_time)) +minutes=$((elapsed_time / 60)) +seconds=$((elapsed_time % 60)) +echo "Balance of $output reached in $minutes min $seconds s, killing process ethrex" + sudo pkill ethrex && while pgrep -l "cargo-flamegraph"; do echo "waiting for reth to exit... "; sleep 1;done; -echo "ethrex killed" + +# We need this for the following job, to add to the static page +# Using Github Outputs would be easier, but I couldn't get it to work +echo -e "$minutes minutes $seconds seconds" >> /home/runner/work/ethrex/ethrex/times.txt diff --git a/.github/scripts/flamegraph_reth.sh b/.github/scripts/flamegraph_reth.sh index 3d57e914ee..38d6609c54 100644 --- a/.github/scripts/flamegraph_reth.sh +++ b/.github/scripts/flamegraph_reth.sh @@ -1,13 +1,13 @@ #!/bin/bash -iterations=3 +iterations=10 value=10000000 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((172 * $iterations * $value)) ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_keys.txt -i $iterations -v --value $value --to $account -echo "Monitoring..." +start_time=$(date +%s) output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) retries=0 while [[ $output -le $end_val && $retries -lt 30 ]]; do @@ -16,6 +16,14 @@ while [[ $output -le $end_val && $retries -lt 30 ]]; do echo "balance was $output still not reached value of $end_val (retry $retries/30)" ((retries++)) done -echo "Balance of $output reached, killing process reth" +end_time=$(date +%s) +elapsed_time=$((end_time - start_time)) +minutes=$((elapsed_time / 60)) +seconds=$((elapsed_time % 60)) +echo "Balance of $output reached in $minutes min $seconds s, killing process reth" sudo pkill reth && while pgrep -l "cargo-flamegraph"; do echo "waiting for reth to exit... "; sleep 1;done; + +# We need this for the following job, to add to the static page +# Using Github Outputs would be easier, but I couldn't get it to work +echo -e "$minutes minutes $seconds seconds" >> /home/runner/work/ethrex/ethrex/times.txt diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 0930a6b6c4..4e0605de68 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -54,7 +54,8 @@ jobs: - name: Build ethrex run: CARGO_PROFILE_RELEASE_DEBUG=true cargo build --release --bin ethrex --features dev - - name: Generate Flamegraph data for Ethrex + - id: generate-flamegraph + name: Generate Flamegraph data for Ethrex shell: bash run: | CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 & @@ -176,6 +177,18 @@ jobs: name: flamegraph_reth.svg path: flamegraph_reth.svg + - name: Download time reports for ethrex + uses: actions/download-artifact@v4 + with: + name: times_ethrex + path: times_ethrex.txt + + - name: Download time reports for reth + uses: actions/download-artifact@v4 + with: + name: times_reth + path: times_reth.txt + - name: Update static page locally with new data shell: bash run: | @@ -185,7 +198,11 @@ jobs: cp -r flamegraph_reth.svg pages/ ls -las pages/ date +'%Y-%m-%dT%H:%M:%S' + ethrex_time=$(cat times_ethrex.txt) + reth_time=$(cat times_reth.txt) sed -i "s/{{LAST_UPDATE}}/$(date +'%Y-%m-%dT%H:%M:%S')/g" pages/index.html + sed -i "s/{{ETHREX_TIME}}/$ethrex_time/g" pages/index.html + sed -i "s/{{RETH_TIME}}/$reth_time/g" pages/index.html - name: Setup Pages uses: actions/configure-pages@v5 diff --git a/pages/index.html b/pages/index.html index 6dc4dc3fb6..a2ed1046bf 100644 --- a/pages/index.html +++ b/pages/index.html @@ -18,7 +18,8 @@

Ethrex

Download - Time elapsed: {{ETHREX_MIN}}min {{ETHREX_SEC}}s

+
@@ -26,7 +27,8 @@

Ethrex

Reth

Download
- Time elapsed: {{RETH_MIN}}min {{RETH_SEC}}s

+ diff --git a/pages/style.css b/pages/style.css index c2c5a29aff..91dba15aaa 100644 --- a/pages/style.css +++ b/pages/style.css @@ -49,7 +49,7 @@ img { width: 80%; height: auto; max-width: 200px; - max-height: 150px; /* Prevent SVGs from being too tall */ + max-height: 150px; } h2 { @@ -60,3 +60,8 @@ h2 { .col-header { margin-bottom: 2em; } + +.time-elapsed { + font-size: 0.9em; + margin-bottom: 0.8em; +} From 320acecd603b7dc4d4edbf2717351b394b12951d Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 5 Dec 2024 15:32:40 -0300 Subject: [PATCH 23/80] Use Github Action Outputs for test times --- .github/scripts/flamegraph.sh | 3 +- .github/scripts/flamegraph_reth.sh | 3 +- .github/workflows/flamegraph_reporter.yaml | 36 +++++++++------------- pages/index.html | 4 +-- 4 files changed, 18 insertions(+), 28 deletions(-) diff --git a/.github/scripts/flamegraph.sh b/.github/scripts/flamegraph.sh index ef384d69d0..9f2ebbc301 100644 --- a/.github/scripts/flamegraph.sh +++ b/.github/scripts/flamegraph.sh @@ -25,5 +25,4 @@ echo "Balance of $output reached in $minutes min $seconds s, killing process eth sudo pkill ethrex && while pgrep -l "cargo-flamegraph"; do echo "waiting for reth to exit... "; sleep 1;done; # We need this for the following job, to add to the static page -# Using Github Outputs would be easier, but I couldn't get it to work -echo -e "$minutes minutes $seconds seconds" >> /home/runner/work/ethrex/ethrex/times.txt +echo "time=$minutes minutes $seconds seconds" >> "$GITHUB_OUTPUT" diff --git a/.github/scripts/flamegraph_reth.sh b/.github/scripts/flamegraph_reth.sh index 38d6609c54..b138eae7ba 100644 --- a/.github/scripts/flamegraph_reth.sh +++ b/.github/scripts/flamegraph_reth.sh @@ -25,5 +25,4 @@ echo "Balance of $output reached in $minutes min $seconds s, killing process ret sudo pkill reth && while pgrep -l "cargo-flamegraph"; do echo "waiting for reth to exit... "; sleep 1;done; # We need this for the following job, to add to the static page -# Using Github Outputs would be easier, but I couldn't get it to work -echo -e "$minutes minutes $seconds seconds" >> /home/runner/work/ethrex/ethrex/times.txt +echo "time=$minutes minutes $seconds seconds" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 4e0605de68..f407b2f083 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -17,9 +17,11 @@ env: RUST_RETH_VERSION: 1.82.0 jobs: - flamegraph: - name: Generate Flamegraph for load test + flamegraph-ethrex: + name: Generate Flamegraph for Ethrex runs-on: ubuntu-latest + outputs: + time: ${{steps.generate-flamegraph-ethrex.outputs.time}} steps: - name: Checkout sources uses: actions/checkout@v4 @@ -54,11 +56,12 @@ jobs: - name: Build ethrex run: CARGO_PROFILE_RELEASE_DEBUG=true cargo build --release --bin ethrex --features dev - - id: generate-flamegraph + - id: generate-flamegraph-ethrex name: Generate Flamegraph data for Ethrex shell: bash run: | - CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 & + CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \ + --bin ethrex --features dev -- --network /home/runner/work/ethrex/ethrex/test_data/genesis-l2.json --http.port 1729 & echo "waiting to execute load test..." sleep 30 && echo "executing load test..." @@ -83,6 +86,8 @@ jobs: flamegraph-reth: name: Generate Flamegraph for Reth runs-on: ubuntu-latest + outputs: + time: ${{steps.generate-flamegraph-reth.outputs.time}} steps: - name: Checkout sources uses: actions/checkout@v4 @@ -121,7 +126,8 @@ jobs: repository: paradigmxyz/reth path: 'reth' - - name: Build and test reth + - id: generate-flamegraph-reth + name: Build and test reth shell: bash run: | cd ./reth @@ -160,7 +166,7 @@ jobs: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} - needs: [ flamegraph, flamegraph-reth ] + needs: [ flamegraph-ethrex, flamegraph-reth ] steps: - name: Checkout sources uses: actions/checkout@v4 @@ -177,18 +183,6 @@ jobs: name: flamegraph_reth.svg path: flamegraph_reth.svg - - name: Download time reports for ethrex - uses: actions/download-artifact@v4 - with: - name: times_ethrex - path: times_ethrex.txt - - - name: Download time reports for reth - uses: actions/download-artifact@v4 - with: - name: times_reth - path: times_reth.txt - - name: Update static page locally with new data shell: bash run: | @@ -198,11 +192,9 @@ jobs: cp -r flamegraph_reth.svg pages/ ls -las pages/ date +'%Y-%m-%dT%H:%M:%S' - ethrex_time=$(cat times_ethrex.txt) - reth_time=$(cat times_reth.txt) sed -i "s/{{LAST_UPDATE}}/$(date +'%Y-%m-%dT%H:%M:%S')/g" pages/index.html - sed -i "s/{{ETHREX_TIME}}/$ethrex_time/g" pages/index.html - sed -i "s/{{RETH_TIME}}/$reth_time/g" pages/index.html + sed -i "s/{{ETHREX_TIME}}/${{ needs.flamegraph-ethrex.outputs.time }}/g" pages/index.html + sed -i "s/{{RETH_TIME}}/${{ needs.flamegraph-reth.outputs.time }}/g" pages/index.html - name: Setup Pages uses: actions/configure-pages@v5 diff --git a/pages/index.html b/pages/index.html index a2ed1046bf..846387eff6 100644 --- a/pages/index.html +++ b/pages/index.html @@ -18,7 +18,7 @@

Ethrex

Download -

Time elapsed: {{ETHREX_MIN}}min {{ETHREX_SEC}}s

+

Time elapsed: {{ETHREX_TIME}}

@@ -27,7 +27,7 @@

Ethrex

Reth

Download -

Time elapsed: {{RETH_MIN}}min {{RETH_SEC}}s

+

Time elapsed: {{RETH_TIME}}

From 5f6d547373dcb70af8de8e0523c66e26f1c3808a Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Fri, 6 Dec 2024 09:45:24 -0300 Subject: [PATCH 24/80] Run a 1000 iterations for the load tests. Previously I had capped this to 10 to test the CI more easily. --- .github/scripts/flamegraph.sh | 7 ++----- .github/scripts/flamegraph_reth.sh | 7 ++----- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/.github/scripts/flamegraph.sh b/.github/scripts/flamegraph.sh index 9f2ebbc301..18f1a0641b 100644 --- a/.github/scripts/flamegraph.sh +++ b/.github/scripts/flamegraph.sh @@ -1,6 +1,6 @@ #!/bin/bash -iterations=10 +iterations=1000 value=10000000 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((172 * $iterations * $value)) @@ -9,12 +9,9 @@ ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_key start_time=$(date +%s) output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) -retries=0 -while [[ $output -le $end_val && $retries -lt 30 ]]; do +while [[ $output -le $end_val ]]; do sleep 5 output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) - echo "balance was $output still not reached value of $end_val (retry $retries/30)" - ((retries++)) done end_time=$(date +%s) elapsed_time=$((end_time - start_time)) diff --git a/.github/scripts/flamegraph_reth.sh b/.github/scripts/flamegraph_reth.sh index b138eae7ba..3bd6bd7d3c 100644 --- a/.github/scripts/flamegraph_reth.sh +++ b/.github/scripts/flamegraph_reth.sh @@ -1,6 +1,6 @@ #!/bin/bash -iterations=10 +iterations=1000 value=10000000 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((172 * $iterations * $value)) @@ -9,12 +9,9 @@ ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_key start_time=$(date +%s) output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) -retries=0 -while [[ $output -le $end_val && $retries -lt 30 ]]; do +while [[ $output -le $end_val ]]; do sleep 5 output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) - echo "balance was $output still not reached value of $end_val (retry $retries/30)" - ((retries++)) done end_time=$(date +%s) elapsed_time=$((end_time - start_time)) From 201ab7aa50b5d3f37b75d933fa7dd60499e55bea Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Fri, 6 Dec 2024 10:22:57 -0300 Subject: [PATCH 25/80] Minor adjustments and cleanup for flamegraph_reporter.yaml * More quiet output in flamegraph commands * Remove some debug prints/ls/etc. * Wait more time for reth to compile before testing --- .github/workflows/flamegraph_reporter.yaml | 23 +++++----------------- 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index f407b2f083..50e521e227 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -71,11 +71,9 @@ jobs: - name: Generate SVG shell: bash run: | - echo "running perf" perf script -v -i perf.data --no-inline > stack.data - inferno-collapse-perf < stack.data > collapsed.data - inferno-flamegraph < collapsed.data > flamegraph_ethrex.svg - file flamegraph_ethrex.svg + inferno-collapse-perf -q < stack.data > collapsed.data + inferno-flamegraph --title "Ethrex Flamegraph" < collapsed.data > flamegraph_ethrex.svg - name: Upload artifacts - flamegraph_ethrex.svg uses: actions/upload-artifact@v4 @@ -102,7 +100,6 @@ jobs: - name: Change perf settings run: | - pwd sudo sysctl kernel.perf_event_paranoid=-1 sudo perf list hw @@ -137,22 +134,16 @@ jobs: --txpool.pending-max-count 100000000 --txpool.pending-max-size 10000000000 --txpool.basefee-max-count 100000000000 \ --txpool.basefee-max-size 1000000000000 --txpool.queued-max-count 1000000000 & echo "waiting to execute load test..." - sleep 120 && + sleep 180 && bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_reth.sh && echo "Load test finished" - ls -las - name: Generate SVG shell: bash run: | - pwd - echo "running perf 2" - ls -las /home/runner/work/ethrex/ - ls -las /home/runner/work/ethrex/ethrex/ perf script -v -i /home/runner/work/ethrex/ethrex/reth/perf.data --no-inline > stack.data - inferno-collapse-perf < stack.data > collapsed.data - inferno-flamegraph < collapsed.data > flamegraph_reth.svg - file flamegraph_reth.svg + inferno-collapse-perf -q < stack.data > collapsed.data + inferno-flamegraph --title "Reth Flamegraph" < collapsed.data > flamegraph_reth.svg - name: Upload artifacts - flamegraph_reth.svg uses: actions/upload-artifact@v4 @@ -186,12 +177,8 @@ jobs: - name: Update static page locally with new data shell: bash run: | - file flamegraph_ethrex.svg - file flamegraph_reth.svg cp -r flamegraph_ethrex.svg pages/ cp -r flamegraph_reth.svg pages/ - ls -las pages/ - date +'%Y-%m-%dT%H:%M:%S' sed -i "s/{{LAST_UPDATE}}/$(date +'%Y-%m-%dT%H:%M:%S')/g" pages/index.html sed -i "s/{{ETHREX_TIME}}/${{ needs.flamegraph-ethrex.outputs.time }}/g" pages/index.html sed -i "s/{{RETH_TIME}}/${{ needs.flamegraph-reth.outputs.time }}/g" pages/index.html From 6b0c5e28069fefda53442bee4924f25c935d79b6 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Fri, 6 Dec 2024 10:36:36 -0300 Subject: [PATCH 26/80] Simplify flamegraph script into a single one. --- .github/scripts/flamegraph_reth.sh | 25 - .../{flamegraph.sh => flamegraph_watcher.sh} | 18 +- .github/workflows/flamegraph_reporter.yaml | 8 +- test_data/genesis-load-test.json | 1126 ++++++++--------- 4 files changed, 580 insertions(+), 597 deletions(-) delete mode 100644 .github/scripts/flamegraph_reth.sh rename .github/scripts/{flamegraph.sh => flamegraph_watcher.sh} (57%) diff --git a/.github/scripts/flamegraph_reth.sh b/.github/scripts/flamegraph_reth.sh deleted file mode 100644 index 3bd6bd7d3c..0000000000 --- a/.github/scripts/flamegraph_reth.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -iterations=1000 -value=10000000 -account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd -end_val=$((172 * $iterations * $value)) - -ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_keys.txt -i $iterations -v --value $value --to $account - -start_time=$(date +%s) -output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) -while [[ $output -le $end_val ]]; do - sleep 5 - output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) -done -end_time=$(date +%s) -elapsed_time=$((end_time - start_time)) -minutes=$((elapsed_time / 60)) -seconds=$((elapsed_time % 60)) -echo "Balance of $output reached in $minutes min $seconds s, killing process reth" - -sudo pkill reth && while pgrep -l "cargo-flamegraph"; do echo "waiting for reth to exit... "; sleep 1;done; - -# We need this for the following job, to add to the static page -echo "time=$minutes minutes $seconds seconds" >> "$GITHUB_OUTPUT" diff --git a/.github/scripts/flamegraph.sh b/.github/scripts/flamegraph_watcher.sh similarity index 57% rename from .github/scripts/flamegraph.sh rename to .github/scripts/flamegraph_watcher.sh index 18f1a0641b..3f48ddac6c 100644 --- a/.github/scripts/flamegraph.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -1,5 +1,11 @@ #!/bin/bash +# This script sends 1000 transactions to a test account, per defined private key +# then polls the account balance until the expected balance has been reached +# and then kills the process. It also measures the elapsed time of the test and +# outputs it to Github Action's outputs. +SECONDS=0 + iterations=1000 value=10000000 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd @@ -7,19 +13,17 @@ end_val=$((172 * $iterations * $value)) ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_keys.txt -i $iterations -v --value $value --to $account -start_time=$(date +%s) output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) while [[ $output -le $end_val ]]; do sleep 5 output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) done -end_time=$(date +%s) -elapsed_time=$((end_time - start_time)) -minutes=$((elapsed_time / 60)) -seconds=$((elapsed_time % 60)) -echo "Balance of $output reached in $minutes min $seconds s, killing process ethrex" +elapsed=$SECONDS +minutes=$((elapsed / 60)) +seconds=$((elapsed % 60)) +echo "Balance of $output reached in $minutes min $seconds s, killing process" -sudo pkill ethrex && while pgrep -l "cargo-flamegraph"; do echo "waiting for reth to exit... "; sleep 1;done; +sudo pkill "$PROGRAM" && while pgrep -l "cargo-flamegraph"; do echo "waiting for $PROGRAM to exit... "; sleep 1;done; # We need this for the following job, to add to the static page echo "time=$minutes minutes $seconds seconds" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 50e521e227..8bd85b7dc1 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -20,6 +20,8 @@ jobs: flamegraph-ethrex: name: Generate Flamegraph for Ethrex runs-on: ubuntu-latest + env: + PROGRAM: ethrex outputs: time: ${{steps.generate-flamegraph-ethrex.outputs.time}} steps: @@ -65,7 +67,7 @@ jobs: echo "waiting to execute load test..." sleep 30 && echo "executing load test..." - bash .github/scripts/flamegraph.sh && + bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_watcher.sh && echo "Load test finished" - name: Generate SVG @@ -84,6 +86,8 @@ jobs: flamegraph-reth: name: Generate Flamegraph for Reth runs-on: ubuntu-latest + env: + PROGRAM: reth outputs: time: ${{steps.generate-flamegraph-reth.outputs.time}} steps: @@ -135,7 +139,7 @@ jobs: --txpool.basefee-max-size 1000000000000 --txpool.queued-max-count 1000000000 & echo "waiting to execute load test..." sleep 180 && - bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_reth.sh && + bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_watcher.sh && echo "Load test finished" - name: Generate SVG diff --git a/test_data/genesis-load-test.json b/test_data/genesis-load-test.json index f7a65c072c..3b35b21efe 100644 --- a/test_data/genesis-load-test.json +++ b/test_data/genesis-load-test.json @@ -1,565 +1,565 @@ { - "config": { - "chainId": 1729, - "homesteadBlock": 0, - "eip150Block": 0, - "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "eip155Block": 0, - "eip158Block": 0, - "daoForkBlock": 0, - "frontierBlock": 0, - "byzantiumBlock": 0, - "constantinopleBlock": 0, - "petersburgBlock": 0, - "muirGlacierBlock": 0, - "istanbulBlock": 0, - "berlinBlock": 0, - "londonBlock": 0, - "terminalTotalDifficulty": "0x0", - "mergeNetsplitBlock": 0, - "shanghaiTime": 0, - "cancunTime": 0, - "clique": { - "period": 0, - "epoch": 30000 - } - }, - "nonce": "0x0", - "timestamp": "0x5ca9158b", - "gasLimit": "0x37e11d600", - "difficulty": "0x0", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "coinbase": "0x0000000000000000000000000000000000000000", - "alloc": { - "0x0007a881CD95B1484fca47615B64803dad620C8d": { - "balance": "0xc097ce7bc90715b34b9f1000000000", - "nonce": "0" - }, - "0x0000bd19F707CA481886244bDd20Bd6B8a81bd3e": { - "balance": "0xc097ce7bc90715b34b9f1000000000", - "nonce": "0" - }, - "0x000cD1537A823Ae7609E3897DA8d95801B557a8a": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006d77295a0260ceAC113c5Aa15CFf0d28d9723": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000eA2e72065A2ceCA7f677Bc5E648279c2D843d": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000a52D537c4150ec274dcE3962a0d179B7E71B0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0009aEFF154De37C8e02E83f93D2FeC5EC96f8a3": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000f1EB7F258D4A7683E5D0FC3C01058841DDC6f": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000aC79590dCc656c00c4453f123AcBf10DBb086": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0002Bf507275217c9E5EE250bC1B5ca177bb4f74": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000a3fC3BFD55b37025E6F4f57B0B6121F54e5bF": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000b4C43cce938dfD3420F975591Ee46D872C136": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004b0C6de796fD980554cc7ff7B062b3B5079E1": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00025eea83bA285532F5054b238c938076833d13": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000352E93fe11f9B715fdc61864315970B3DC082": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000c0d6b7C4516a5B274C51EA331A9410fe69127": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000D06C23EeD09A7Fa81cADd7eD5C783E8a25635": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0003Ea7fDFCdb89E9ddAb0128ec5C628F8D09D45": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0005C34d7B8b06CE8019C3Bb232dE82B2748A560": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00079f33619F70F1DCE64EB6782E45D3498d807C": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0003E72436Ff296B3d39339784499D021b72Aca5": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00075af7E665F3Ca4A4b05520CD6d5c13BbFEAf8": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000b59AeD48ADCd6c36Ae5f437AbB9CA730a2c43": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004e4dfCed9d798767A4d7BA2B03495cE80A2b7": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000e73282F60E2CdE0D4FA9B323B6D54d860f330": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00010AB05661Bfde304A4d884DF99d3011A83C54": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000B9Ea41A9dF00b7ae597afc0D10AF42666081F": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00087C666bf7f52758DE186570979C4C79747157": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0008a52c83D34f0791D07FfeD04Fb6b14f94E2D4": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000A7Bbde38Fc53925D0De9cc1beE3038d36c2d2": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000Aa0154ed6560257d222B5dbE6ce4b66c48979": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000b681738e1f8aF387c41b2b1f0A04E0C33e9DB": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000D66A7706f2DD5F557d5b68e01E07E8FFDfaf5": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00069DA530A71Dc92D02090d7f5f63e326e9beD0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000db74a3da16609F183ACE7AF65B43D896349CE": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0003B1aB565508e095a543C89531e3fbc4a349DA": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0001c94c108BcE19CDb36b00F867A1798A81DedA": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000995137728C7C2a9142F4628f95c98Cac433d7": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000Ec60762AD0425A04C40c118Db5B9710Aa639e": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000Ebf88AE1BA960B06b0a9bbE576baa3B72E92E": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000e1a554572dd96fF3d1F2664832F3E4a66E7b7": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00032C03f3b02D816128Fb5D2752398E2919a03c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000A073dAC5ec2058a0De0e175874D5E297E086E": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000e06626Bb8618D9A1867362D46ddb1bF95ad75": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000212949b4866db43bAF7c4e0975426710ED081": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00094cc0653B52406170105F4eb96C5e2f31Ab74": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000E67E4b1A23A3826304099cb24f337c916CF4b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000885A4932ebeD6D760EA381e4EdAe51A53db05": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000883A40409Fa2193b698928459CB9E4DD5f8D8": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0002590DD45738F909115B163F1322A8A24a8B4E": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0005f132597da3152a6Da6beDB7C10bcC9B1B7f5": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00031470def99c1d4dfE1fd08DD7A8520Ce21DB7": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0001Ebe3a3bA36f57F5989B3F0e5BEEBc710569C": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006Bd0469166f63D0A1c33F71898D2b2E009b9b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00000A8d3f37af8DeF18832962Ee008d8dCa4F7b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000e490f26249951F8527779399aa8F281509aC0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0000638374f7dB166990BDc6aBeE884Ee01a8920": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00031dE95353DeE86dc9B1248e825500DE0B39aF": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000511B42328794337D8b6846E5cFFef30c2d77A": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000d0576AdEf7083d53F6676bfc7c30d03b6Db1B": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0001E8Ff6406a7cd9071F46B8255Db6C16178448": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000C47c771A8db282eC233b28AD8525dc74D13FE": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000798832bb08268dB237898b95A8DaE9D58b62c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000c877a5D9b9De61e5318B3f4330c56ecdC0865": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0003Ffc1f09d39FBFE87eD63E98249039C7b1d9A": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000d72403c18B2516d8ada074E1E7822bF1084DB": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00054e17Db8C8Db028B19cB0f631888AdEb35E4b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0002d9b2a816717C4d70040D66A714795F9B27a4": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0002AfCC1B0B608E86b5a1Dc45dE08184E629796": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000b1db69627F04688aA47951d847c8BFAB3fFaE": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000c2de896E4a92e796d6A9c1E4B01feB3e6Ed61": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000EDC52118DadB4B81f013005b6db2665B682ac": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0009e10C0D2F1a7A2b00b61c476aa8b608c60aDc": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000f2AbaA7581fAA2ad5C82b604C77ef68c3eAD9": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000F74AA6EE08C15076b3576eE33Ed3a80c9A1AD": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0001533C6C5b425815b2BaDdCdd42DFF3be04BCb": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0002D79686DeF20a0aB43FEA4a41a1Ad56529621": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00077A336FCA40F933a7A301F4a39C26594F3EB5": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000B05E15C62CBC266A4DD1804b017d1f6dB078b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000130badE00212bE1AA2F4aCFe965934635C9cD": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0008Bd31Ee6A758e168844cBEA107Ca4d87251aF": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000A390975F21371F1Cf3C783a4A7C1aF49074Fe": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000701F7d594Fb146e4d1c71342012e48A788055": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0005c6BeD054FEad199D72C6f663fC6fBf996153": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0009d862F87F26c638AAd14F2cc48FCa54DBf49d": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00029637dA962294449549f804f8184046F5fbB0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000279CB54E00B858774afEA4601034Db41c1A05": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0003dDe6f01e3B755e24891a5B0f2463BaD83e15": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000086Eeea461Ca48e4D319F9789F3Efd134E574": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004351AD413792131011CC7ed8299dd783C6487": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00097B4463159340Ac83B9bdf657C304cD70c11c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004ad0D0823e3d31C6ECA2A3495373fA76c43aC": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0005E815c1A3F40011Bd70C76062bbcBc51c546B": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006A070bAC6195b59d4bC7f73741DCBe4e16b5e": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006cEE23d8E9BC8d99E826cDa50481394aD9bDD": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000a523148845bEe3EE1e9F83df8257a1191C85B": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000D268F322F10925cdB5d2AD527E582259Da655": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000E5DE0a0175866d21F4Ec6c41F0422A05f14D6": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000cDF8Dba2393a40857cbCB0FCD9b998a941078": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000A341763112a5E3452c7AEE45c382a3fb7dc78": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000635BCbB109781Cea0Cd53e9f1370Dbac9937f": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000E0ea540095B3853c4cb09E5Cdd197330D3B55": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00044cbfb4Ef6054667994C37c0fe0B6BB639718": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00065fC4337dF331242bEE738031dAf35817Ee9e": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000815A8A659a51A8EF01F02441947Ea99182568": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004C8da21c68dED2F63efD9836De7D43e7cDa10": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006ed38815a9439c59bD917c12f77a9A7D39BCE": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004Aa0442d0d43222431b3017912EC6a099771C": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000b3F6da04b6261B4154C8FaEd119632C49DBd5": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000AEBc2568796FDB763CAB67B31e0feE58Fe17d": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000425E97fC6692891876012824a210451cC06C4": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000036e0f87f8Cd3e97f9cfDB2e4E5Ff193c217a": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000305CD7184aB37fdd3D826B92A640218D09527": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000c95f1D83De53B76a0828F1bCdB1DfE12C0ab3": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000882c5FbD315801e4C367BCB04dBD299B9F571": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0000E101815A78EbB9FBBa34F4871aD32d5eb6CD": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000A997c1ceCB1DA78C16249e032e77d1865646a": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00056bde49E3cAA9166C2a4C4951d0Cf067956A0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000e65342176C7dac47bc75113F569695d6A113C": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0008D608884cd733642ab17aCa0c8504850B94fA": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000dFE27e1b71a49B641ad762aB95558584878D1": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00085D9D1a71acf1080cED44CB501B350900627f": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0007d272a1f7Dfe862b030adE2922D149f3bDe3B": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004b230511F921934F33E8B4425E43295232680": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0007514395022786B59ff91408692462C48d872c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0005b34eB0d99dE72DB14d466f692009c4049D46": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0001a2c749FE0Ab1C09f1131BA17530f9D764fBC": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000c6c1D8F778D981968F9904772B0c455E1C17c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000e64e0a2Fd76B4883c800833c82c5F2420b813": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000577bDc84B4019F77D9D09BDD8ED6145E0e890": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000029bD811D292E7f1CF36c0FA08fd753C45074": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000cE6740261E297FaD4c975D6D8F89f95C29add": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0001d0bAE8B1B9fe61d0B788E562A987813cbD98": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000E3388598A0534275104Ad44745620AF31EC7E": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000791D3185781e14eBb342E5df3BC9910f62E6F": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000Df55E76cf6dfD9598DD2b54948dE937f50f2B": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000055acf237931902ceBf4B905BF59813180555": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00009074D8fc5Eeb25f1548Df05AD955E21FB08D": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000C1aE5FeCf09595C0C76Db609FEB2a5Af0962E": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000F76B2Fe7cCC13474de28586A877664EBA16B4": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000F7cFBa0B176Afc2eBadA9d4764d2eA6BBC5a1": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00002132cE94eEfB06eB15898C1AABd94feb0AC2": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00069dC0cc6b9d7B48B5348b12F625E8aB704104": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000A0191cf913E03bd594bC8817FC3B2895C0a25": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0007316aEDc52EB35c9B5c2E44e9fD712d1DF887": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000EBd066B6FEBB9d7f3B767DF06C08e369Dc20F": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00096af89fd96f0d6E1721d9145944e813317d46": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000C5e39879228A1Fc8dF2470822CB8ce2Af8e07": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000ea86B4A3d7e4AF8CFab052c8b9a040149b507": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000796370C839773893a2cEFA5fc81f2332936fB": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000990B05481b1661bc6211298f6429451B09425": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0008a02d3E8507621f430345b98478058cDca79A": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000d35f8cd11bd989216b3669cBaac6fd8c07196": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000541653a96ABAdDba52fAA8D118e570d529543": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006264bf7E3395309F728222641Ff8D0e1ad2C0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000688AA0fBfB3F1e6554A63dF13bE08cB671b3b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00030da862690D170F096074e9E8b38db7D6f037": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0005e37296348571bd3604f7E56B67a7022801f6": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000ed6E0F4Fdc3615663BF4A601E35e7A8d66E1c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000c53b37fA4977B59FD3Efdb473D8069844aDeA": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00057714949aD700733C5b8E6cF3e8c6B7D228a2": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000C8FC4132881c31f67638c3941dF8D94a92299": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000fA71E446e1EcFd74d835b5bD6fA848A770d26": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000784B47aC2843419Df4cAd697d4e7b65CE1F93": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0002869e27c6FaEe08cCA6b765a726E7a076Ee0F": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0003135C47c441506b58483Ec6173F767182670B": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006E80d584cbF9EB8C41CF2b009C607744a70F6": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000C1C05dBFf111c79D5c9E91420DFBEA1c31716": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0009Bf72AF31A4E6B8Ef6FbbFcb017823E4d2aF2": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00021C20F3e68F930077Cca109Ca3C044E8B39bD": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000E90875aC71eD46A11dc1b509d2B35E2c9C31F": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000f17eB09AA3f28132323E6075C672949526d5A": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0000000000000000000000000000000000000000": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x3d1e15a1a55578f7c920884a9943b3b35d0d885b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - } - }, - "number": "0x0", - "gasUsed": "0x0", - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": 1, - "excessBlobGas": "0x0", - "blobGasUsed": 0 + "config": { + "chainId": 1729, + "homesteadBlock": 0, + "eip150Block": 0, + "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "eip155Block": 0, + "eip158Block": 0, + "daoForkBlock": 0, + "frontierBlock": 0, + "byzantiumBlock": 0, + "constantinopleBlock": 0, + "petersburgBlock": 0, + "muirGlacierBlock": 0, + "istanbulBlock": 0, + "berlinBlock": 0, + "londonBlock": 0, + "terminalTotalDifficulty": "0x0", + "mergeNetsplitBlock": 0, + "shanghaiTime": 0, + "cancunTime": 0, + "clique": { + "period": 0, + "epoch": 30000 + } + }, + "nonce": "0x0", + "timestamp": "0x5ca9158b", + "gasLimit": "0x37e11d600", + "difficulty": "0x0", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "coinbase": "0x0000000000000000000000000000000000000000", + "alloc": { + "0x0007a881CD95B1484fca47615B64803dad620C8d": { + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0" + }, + "0x0000bd19F707CA481886244bDd20Bd6B8a81bd3e": { + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0" + }, + "0x000cD1537A823Ae7609E3897DA8d95801B557a8a": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006d77295a0260ceAC113c5Aa15CFf0d28d9723": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000eA2e72065A2ceCA7f677Bc5E648279c2D843d": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000a52D537c4150ec274dcE3962a0d179B7E71B0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0009aEFF154De37C8e02E83f93D2FeC5EC96f8a3": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000f1EB7F258D4A7683E5D0FC3C01058841DDC6f": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000aC79590dCc656c00c4453f123AcBf10DBb086": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0002Bf507275217c9E5EE250bC1B5ca177bb4f74": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000a3fC3BFD55b37025E6F4f57B0B6121F54e5bF": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000b4C43cce938dfD3420F975591Ee46D872C136": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004b0C6de796fD980554cc7ff7B062b3B5079E1": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00025eea83bA285532F5054b238c938076833d13": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000352E93fe11f9B715fdc61864315970B3DC082": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000c0d6b7C4516a5B274C51EA331A9410fe69127": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000D06C23EeD09A7Fa81cADd7eD5C783E8a25635": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0003Ea7fDFCdb89E9ddAb0128ec5C628F8D09D45": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0005C34d7B8b06CE8019C3Bb232dE82B2748A560": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00079f33619F70F1DCE64EB6782E45D3498d807C": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0003E72436Ff296B3d39339784499D021b72Aca5": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00075af7E665F3Ca4A4b05520CD6d5c13BbFEAf8": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000b59AeD48ADCd6c36Ae5f437AbB9CA730a2c43": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004e4dfCed9d798767A4d7BA2B03495cE80A2b7": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000e73282F60E2CdE0D4FA9B323B6D54d860f330": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00010AB05661Bfde304A4d884DF99d3011A83C54": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000B9Ea41A9dF00b7ae597afc0D10AF42666081F": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00087C666bf7f52758DE186570979C4C79747157": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0008a52c83D34f0791D07FfeD04Fb6b14f94E2D4": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000A7Bbde38Fc53925D0De9cc1beE3038d36c2d2": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000Aa0154ed6560257d222B5dbE6ce4b66c48979": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000b681738e1f8aF387c41b2b1f0A04E0C33e9DB": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000D66A7706f2DD5F557d5b68e01E07E8FFDfaf5": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00069DA530A71Dc92D02090d7f5f63e326e9beD0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000db74a3da16609F183ACE7AF65B43D896349CE": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0003B1aB565508e095a543C89531e3fbc4a349DA": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0001c94c108BcE19CDb36b00F867A1798A81DedA": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000995137728C7C2a9142F4628f95c98Cac433d7": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000Ec60762AD0425A04C40c118Db5B9710Aa639e": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000Ebf88AE1BA960B06b0a9bbE576baa3B72E92E": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000e1a554572dd96fF3d1F2664832F3E4a66E7b7": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00032C03f3b02D816128Fb5D2752398E2919a03c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000A073dAC5ec2058a0De0e175874D5E297E086E": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000e06626Bb8618D9A1867362D46ddb1bF95ad75": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000212949b4866db43bAF7c4e0975426710ED081": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00094cc0653B52406170105F4eb96C5e2f31Ab74": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000E67E4b1A23A3826304099cb24f337c916CF4b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000885A4932ebeD6D760EA381e4EdAe51A53db05": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000883A40409Fa2193b698928459CB9E4DD5f8D8": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0002590DD45738F909115B163F1322A8A24a8B4E": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0005f132597da3152a6Da6beDB7C10bcC9B1B7f5": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00031470def99c1d4dfE1fd08DD7A8520Ce21DB7": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0001Ebe3a3bA36f57F5989B3F0e5BEEBc710569C": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006Bd0469166f63D0A1c33F71898D2b2E009b9b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00000A8d3f37af8DeF18832962Ee008d8dCa4F7b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000e490f26249951F8527779399aa8F281509aC0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0000638374f7dB166990BDc6aBeE884Ee01a8920": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00031dE95353DeE86dc9B1248e825500DE0B39aF": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000511B42328794337D8b6846E5cFFef30c2d77A": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000d0576AdEf7083d53F6676bfc7c30d03b6Db1B": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0001E8Ff6406a7cd9071F46B8255Db6C16178448": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000C47c771A8db282eC233b28AD8525dc74D13FE": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000798832bb08268dB237898b95A8DaE9D58b62c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000c877a5D9b9De61e5318B3f4330c56ecdC0865": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0003Ffc1f09d39FBFE87eD63E98249039C7b1d9A": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000d72403c18B2516d8ada074E1E7822bF1084DB": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00054e17Db8C8Db028B19cB0f631888AdEb35E4b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0002d9b2a816717C4d70040D66A714795F9B27a4": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0002AfCC1B0B608E86b5a1Dc45dE08184E629796": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000b1db69627F04688aA47951d847c8BFAB3fFaE": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000c2de896E4a92e796d6A9c1E4B01feB3e6Ed61": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000EDC52118DadB4B81f013005b6db2665B682ac": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0009e10C0D2F1a7A2b00b61c476aa8b608c60aDc": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000f2AbaA7581fAA2ad5C82b604C77ef68c3eAD9": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000F74AA6EE08C15076b3576eE33Ed3a80c9A1AD": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0001533C6C5b425815b2BaDdCdd42DFF3be04BCb": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0002D79686DeF20a0aB43FEA4a41a1Ad56529621": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00077A336FCA40F933a7A301F4a39C26594F3EB5": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000B05E15C62CBC266A4DD1804b017d1f6dB078b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000130badE00212bE1AA2F4aCFe965934635C9cD": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0008Bd31Ee6A758e168844cBEA107Ca4d87251aF": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000A390975F21371F1Cf3C783a4A7C1aF49074Fe": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000701F7d594Fb146e4d1c71342012e48A788055": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0005c6BeD054FEad199D72C6f663fC6fBf996153": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0009d862F87F26c638AAd14F2cc48FCa54DBf49d": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00029637dA962294449549f804f8184046F5fbB0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000279CB54E00B858774afEA4601034Db41c1A05": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0003dDe6f01e3B755e24891a5B0f2463BaD83e15": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000086Eeea461Ca48e4D319F9789F3Efd134E574": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004351AD413792131011CC7ed8299dd783C6487": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00097B4463159340Ac83B9bdf657C304cD70c11c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004ad0D0823e3d31C6ECA2A3495373fA76c43aC": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0005E815c1A3F40011Bd70C76062bbcBc51c546B": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006A070bAC6195b59d4bC7f73741DCBe4e16b5e": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006cEE23d8E9BC8d99E826cDa50481394aD9bDD": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000a523148845bEe3EE1e9F83df8257a1191C85B": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000D268F322F10925cdB5d2AD527E582259Da655": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000E5DE0a0175866d21F4Ec6c41F0422A05f14D6": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000cDF8Dba2393a40857cbCB0FCD9b998a941078": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000A341763112a5E3452c7AEE45c382a3fb7dc78": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000635BCbB109781Cea0Cd53e9f1370Dbac9937f": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000E0ea540095B3853c4cb09E5Cdd197330D3B55": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00044cbfb4Ef6054667994C37c0fe0B6BB639718": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00065fC4337dF331242bEE738031dAf35817Ee9e": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000815A8A659a51A8EF01F02441947Ea99182568": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004C8da21c68dED2F63efD9836De7D43e7cDa10": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006ed38815a9439c59bD917c12f77a9A7D39BCE": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004Aa0442d0d43222431b3017912EC6a099771C": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000b3F6da04b6261B4154C8FaEd119632C49DBd5": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000AEBc2568796FDB763CAB67B31e0feE58Fe17d": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000425E97fC6692891876012824a210451cC06C4": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000036e0f87f8Cd3e97f9cfDB2e4E5Ff193c217a": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000305CD7184aB37fdd3D826B92A640218D09527": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000c95f1D83De53B76a0828F1bCdB1DfE12C0ab3": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000882c5FbD315801e4C367BCB04dBD299B9F571": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0000E101815A78EbB9FBBa34F4871aD32d5eb6CD": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000A997c1ceCB1DA78C16249e032e77d1865646a": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00056bde49E3cAA9166C2a4C4951d0Cf067956A0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000e65342176C7dac47bc75113F569695d6A113C": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0008D608884cd733642ab17aCa0c8504850B94fA": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000dFE27e1b71a49B641ad762aB95558584878D1": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00085D9D1a71acf1080cED44CB501B350900627f": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0007d272a1f7Dfe862b030adE2922D149f3bDe3B": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004b230511F921934F33E8B4425E43295232680": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0007514395022786B59ff91408692462C48d872c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0005b34eB0d99dE72DB14d466f692009c4049D46": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0001a2c749FE0Ab1C09f1131BA17530f9D764fBC": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000c6c1D8F778D981968F9904772B0c455E1C17c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000e64e0a2Fd76B4883c800833c82c5F2420b813": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000577bDc84B4019F77D9D09BDD8ED6145E0e890": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000029bD811D292E7f1CF36c0FA08fd753C45074": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000cE6740261E297FaD4c975D6D8F89f95C29add": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0001d0bAE8B1B9fe61d0B788E562A987813cbD98": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000E3388598A0534275104Ad44745620AF31EC7E": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000791D3185781e14eBb342E5df3BC9910f62E6F": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000Df55E76cf6dfD9598DD2b54948dE937f50f2B": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000055acf237931902ceBf4B905BF59813180555": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00009074D8fc5Eeb25f1548Df05AD955E21FB08D": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000C1aE5FeCf09595C0C76Db609FEB2a5Af0962E": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000F76B2Fe7cCC13474de28586A877664EBA16B4": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000F7cFBa0B176Afc2eBadA9d4764d2eA6BBC5a1": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00002132cE94eEfB06eB15898C1AABd94feb0AC2": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00069dC0cc6b9d7B48B5348b12F625E8aB704104": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000A0191cf913E03bd594bC8817FC3B2895C0a25": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0007316aEDc52EB35c9B5c2E44e9fD712d1DF887": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000EBd066B6FEBB9d7f3B767DF06C08e369Dc20F": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00096af89fd96f0d6E1721d9145944e813317d46": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000C5e39879228A1Fc8dF2470822CB8ce2Af8e07": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000ea86B4A3d7e4AF8CFab052c8b9a040149b507": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000796370C839773893a2cEFA5fc81f2332936fB": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000990B05481b1661bc6211298f6429451B09425": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0008a02d3E8507621f430345b98478058cDca79A": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000d35f8cd11bd989216b3669cBaac6fd8c07196": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000541653a96ABAdDba52fAA8D118e570d529543": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006264bf7E3395309F728222641Ff8D0e1ad2C0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000688AA0fBfB3F1e6554A63dF13bE08cB671b3b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00030da862690D170F096074e9E8b38db7D6f037": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0005e37296348571bd3604f7E56B67a7022801f6": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000ed6E0F4Fdc3615663BF4A601E35e7A8d66E1c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000c53b37fA4977B59FD3Efdb473D8069844aDeA": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00057714949aD700733C5b8E6cF3e8c6B7D228a2": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000C8FC4132881c31f67638c3941dF8D94a92299": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000fA71E446e1EcFd74d835b5bD6fA848A770d26": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000784B47aC2843419Df4cAd697d4e7b65CE1F93": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0002869e27c6FaEe08cCA6b765a726E7a076Ee0F": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0003135C47c441506b58483Ec6173F767182670B": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006E80d584cbF9EB8C41CF2b009C607744a70F6": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000C1C05dBFf111c79D5c9E91420DFBEA1c31716": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0009Bf72AF31A4E6B8Ef6FbbFcb017823E4d2aF2": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00021C20F3e68F930077Cca109Ca3C044E8B39bD": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000E90875aC71eD46A11dc1b509d2B35E2c9C31F": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000f17eB09AA3f28132323E6075C672949526d5A": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0000000000000000000000000000000000000000": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x3d1e15a1a55578f7c920884a9943b3b35d0d885b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + } + }, + "number": "0x0", + "gasUsed": "0x0", + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": 1, + "excessBlobGas": "0x0", + "blobGasUsed": 0 } From 5db6105add3d6186cf2c5981478a5d3758defe09 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Fri, 6 Dec 2024 12:42:36 -0300 Subject: [PATCH 27/80] Metadata for Slack link previews --- pages/index.html | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pages/index.html b/pages/index.html index 846387eff6..3301a14f14 100644 --- a/pages/index.html +++ b/pages/index.html @@ -5,6 +5,15 @@ Ethrex Flamegraph Comparison + + + + + + + + +
From 43689a845fe61efe1ec160645463b594f8a1afaa Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Fri, 6 Dec 2024 12:45:11 -0300 Subject: [PATCH 28/80] Send daily flamegraph report via Slack --- .github/scripts/publish_link_flamegraphs.sh | 21 + .github/workflows/daily_reports.yaml | 19 + pages/flamegraph.svg | 491 -------------------- 3 files changed, 40 insertions(+), 491 deletions(-) create mode 100644 .github/scripts/publish_link_flamegraphs.sh delete mode 100644 pages/flamegraph.svg diff --git a/.github/scripts/publish_link_flamegraphs.sh b/.github/scripts/publish_link_flamegraphs.sh new file mode 100644 index 0000000000..20f54d5561 --- /dev/null +++ b/.github/scripts/publish_link_flamegraphs.sh @@ -0,0 +1,21 @@ +curl -XPOST -H "Content-type: application/json" -d '{ + "blocks": [ + { + "type": "header", + "text": { + "type": "plain_text", + "text": "Daily Flamegraph Report" + } + }, + { + "type": "divider" + }, + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "๐Ÿ”ฅ Flamegraphs are available at **" + } + } + ] +}' "$url" diff --git a/.github/workflows/daily_reports.yaml b/.github/workflows/daily_reports.yaml index 4331b23d77..3f84d92b5c 100644 --- a/.github/workflows/daily_reports.yaml +++ b/.github/workflows/daily_reports.yaml @@ -198,3 +198,22 @@ jobs: env: url: ${{ secrets.LEVM_SLACK_WEBHOOK }} run: sh .github/scripts/publish_levm_ef_tests_summary.sh + + flamegraphs-page: + name: Post to Slack link to Flamegraphs Page + runs-on: ubuntu-latest + steps: + - name: Post results to ethrex L1 slack channel + env: + url: ${{ secrets.ETHREX_L1_SLACK_WEBHOOK }} + run: sh .github/scripts/publish_link_flamegraphs.sh + + - name: Post results to ethrex L2 slack channel + env: + url: ${{ secrets.ETHREX_L2_SLACK_WEBHOOK }} + run: sh .github/scripts/publish_link_flamegraphs.sh + + - name: Post results to levm slack channel + env: + url: ${{ secrets.LEVM_SLACK_WEBHOOK }} + run: sh .github/scripts/publish_link_flamegraphs.sh diff --git a/pages/flamegraph.svg b/pages/flamegraph.svg deleted file mode 100644 index e0d81faba3..0000000000 --- a/pages/flamegraph.svg +++ /dev/null @@ -1,491 +0,0 @@ -Flame Graph Reset ZoomSearch reth_provider::providers::static_file::writer::StaticFileWriters<N>::commit (1,003,009 samples, 0.36%)reth_provider::providers::static_file::writer::StaticFileProviderRW<N>::commit (1,003,009 samples, 0.36%)reth_provider::providers::static_file::writer::StaticFileProviderRW<N>::update_index (1,003,009 samples, 0.36%)reth_provider::providers::static_file::manager::StaticFileProvider<N>::update_index (1,003,009 samples, 0.36%)reth_provider::providers::static_file::LoadedJar::new (1,003,009 samples, 0.36%)reth_nippy_jar::NippyJar<H>::open_data_reader (1,003,009 samples, 0.36%)std::fs::OpenOptions::_open (1,003,009 samples, 0.36%)open64 (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)reth_provider::writer::UnifiedStorageWriter<(),()>::commit (2,006,018 samples, 0.73%)reth_storage_api::database_provider::DBProvider::commit (1,003,009 samples, 0.36%)<reth_db::implementation::mdbx::tx::Tx<K> as reth_db_api::transaction::DbTx>::commit (1,003,009 samples, 0.36%)_ZN7reth_db14implementation4mdbx2tx11Tx$LT$K$GT$37execute_with_close_transaction_metric28_$u7b$$u7b$closure$u7d$$u7d$17h2154c120b77fa2acE.llvm.9863100019090468457 (1,003,009 samples, 0.36%)reth_libmdbx::transaction::Transaction<K>::commit (1,003,009 samples, 0.36%)reth_libmdbx::txn_manager::TxnManager::send_message (1,003,009 samples, 0.36%)std::sync::mpmc::zero::Channel<T>::send (1,003,009 samples, 0.36%)syscall (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)Persistence_Ser (4,012,036 samples, 1.46%)[libc.so.6] (4,012,036 samples, 1.46%)[libc.so.6] (4,012,036 samples, 1.46%)std::sys::pal::unix::thread::Thread::new::thread_start (4,012,036 samples, 1.46%)core::ops::function::FnOnce::call_once{{vtable.shim}} (4,012,036 samples, 1.46%)std::sys::backtrace::__rust_begin_short_backtrace (4,012,036 samples, 1.46%)reth_engine_tree::persistence::PersistenceService<N>::run (4,012,036 samples, 1.46%)reth_provider::writer::UnifiedStorageWriter<ProviderDB,&reth_provider::providers::static_file::manager::StaticFileProvider<<ProviderDB as reth_storage_api::primitives::NodePrimitivesProvider>::Primitives>>::save_blocks (2,006,018 samples, 0.73%)<reth_provider::providers::database::provider::DatabaseProvider<TX,N> as reth_provider::traits::block::BlockWriter>::insert_block (2,006,018 samples, 0.73%)_ZN7reth_db14implementation4mdbx2tx11Tx$LT$K$GT$10new_cursor17h9320080b56709b10E.llvm.9863100019090468457 (2,006,018 samples, 0.73%)reth_libmdbx::cursor::Cursor<K>::new (2,006,018 samples, 0.73%)mdbx_cursor_open (2,006,018 samples, 0.73%)mdbx_cursor_create (2,006,018 samples, 0.73%)__libc_calloc (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)std::sys::pal::unix::thread::Thread::new::thread_start (1,003,009 samples, 0.36%)core::ops::function::FnOnce::call_once{{vtable.shim}} (1,003,009 samples, 0.36%)std::sys::backtrace::__rust_begin_short_backtrace (1,003,009 samples, 0.36%)reth_engine_tree::tree::EngineApiTreeHandler<N,P,E,T,V>::run (1,003,009 samples, 0.36%)std::sync::mpmc::list::Channel<T>::recv (1,003,009 samples, 0.36%)std::sync::mpmc::list::Channel<T>::recv::_{{closure}} (1,003,009 samples, 0.36%)std::thread::park (1,003,009 samples, 0.36%)core::ops::function::Fn::call (1,003,009 samples, 0.36%)revm::journaled_state::JournaledState::load_code (1,003,009 samples, 0.36%)revm::journaled_state::JournaledState::load_account (1,003,009 samples, 0.36%)revm::db::states::state::State<DB>::load_cache_account (1,003,009 samples, 0.36%)hashbrown::rustc_entry::<impl hashbrown::map::HashMap<K,V,S,A>>::rustc_entry (1,003,009 samples, 0.36%)_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$14reserve_rehash17h566c0a12f6c7338fE.llvm.9321060313343939033 (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)reth_engine_tree::tree::EngineApiTreeHandler<N,P,E,T,V>::insert_block_inner (2,006,018 samples, 0.73%)reth_evm::metrics::ExecutorMetrics::execute_metered (2,006,018 samples, 0.73%)<reth_evm::execute::BasicBlockExecutor<S> as reth_evm::execute::Executor<DB>>::execute_with_state_hook (2,006,018 samples, 0.73%)<reth_evm_ethereum::execute::EthExecutionStrategy<DB,EvmConfig> as reth_evm::execute::BlockExecutionStrategy>::execute_transactions (2,006,018 samples, 0.73%)revm::evm::Evm<EXT,DB>::transact (2,006,018 samples, 0.73%)revm::evm::Evm<EXT,DB>::transact_preverified_inner (1,003,009 samples, 0.36%)<hashbrown::set::HashSet<T,S,A> as core::iter::traits::collect::Extend<T>>::extend (1,003,009 samples, 0.36%)_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$14reserve_rehash17hea558b7f7a32d1e8E.llvm.9321060313343939033 (1,003,009 samples, 0.36%)<tracing_subscriber::layer::layered::Layered<L,S> as tracing_core::subscriber::Subscriber>::enabled (1,003,009 samples, 0.36%)<tracing_subscriber::filter::layer_filters::Filtered<L,F,S> as tracing_subscriber::layer::Layer<S>>::enabled (1,003,009 samples, 0.36%)tracing_subscriber::filter::env::EnvFilter::enabled (1,003,009 samples, 0.36%)tracing_subscriber::filter::directive::DirectiveSet<tracing_subscriber::filter::directive::StaticDirective>::enabled (1,003,009 samples, 0.36%)reth_consensus::_::<impl reth_consensus::FullConsensus<N> for alloc::sync::Arc<T>>::validate_block_post_execution (1,003,009 samples, 0.36%)<reth_ethereum_consensus::EthBeaconConsensus<ChainSpec> as reth_consensus::FullConsensus<N>>::validate_block_post_execution (1,003,009 samples, 0.36%)reth_ethereum_consensus::validation::validate_block_post_execution (1,003,009 samples, 0.36%)reth_ethereum_consensus::validation::verify_receipts (1,003,009 samples, 0.36%)alloy_trie::root::ordered_trie_root_with_encoder (1,003,009 samples, 0.36%)alloy_trie::hash_builder::HashBuilder::add_leaf (1,003,009 samples, 0.36%)_ZN10alloy_trie12hash_builder11HashBuilder6update17h55f230d2209f9656E.llvm.16336768008158044780 (1,003,009 samples, 0.36%)tiny_keccak::KeccakState<P>::update (1,003,009 samples, 0.36%)tiny_keccak::keccakf::keccakf (1,003,009 samples, 0.36%)reth_engine_tree::tree::EngineApiTreeHandler<N,P,E,T,V>::on_engine_message (3,009,027 samples, 1.09%)reth_engine_tree::tree::EngineApiTreeHandler<N,P,E,T,V>::insert_block (3,009,027 samples, 1.09%)reth_engine_tree::tree::EngineApiTreeHandler<N,P,E,T,V>::insert_block_inner (3,009,027 samples, 1.09%)reth_engine_tree::tree::EngineApiTreeHandler<N,P,E,T,V>::compute_state_root_parallel (1,003,009 samples, 0.36%)reth_trie_parallel::root::ParallelStateRoot<Factory>::calculate (1,003,009 samples, 0.36%)reth_trie_common::updates::TrieUpdates::insert_storage_updates (1,003,009 samples, 0.36%)hashbrown::map::HashMap<K,V,S,A>::insert (1,003,009 samples, 0.36%)_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$14reserve_rehash17h05eedeecd7de0914E.llvm.7099391561028228683 (1,003,009 samples, 0.36%)Tree_Task (7,021,063 samples, 2.55%)Tr..[unknown] (6,018,054 samples, 2.19%)[..reth_engine_tree::tree::EngineApiTreeHandler<N,P,E,T,V>::run (1,003,009 samples, 0.36%)reth_engine_tree::tree::EngineApiTreeHandler<N,P,E,T,V>::on_engine_message (1,003,009 samples, 0.36%)reth_engine_tree::tree::EngineApiTreeHandler<N,P,E,T,V>::insert_block (1,003,009 samples, 0.36%)_ZN87_$LT$reth_primitives..block..SealedBlock$LT$H$C$B$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he921c0dad4cd64c1E.llvm.9863100019090468457 (1,003,009 samples, 0.36%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,003,009 samples, 0.36%)_ZN86_$LT$reth_primitives..transaction..TransactionSigned$u20$as$u20$core..clone..Clone$GT$5clone17h8e9aec1f8736d8b5E.llvm.9628542176372663265 (1,003,009 samples, 0.36%)mbdx-rs-txn-man (2,006,018 samples, 0.73%)[libc.so.6] (2,006,018 samples, 0.73%)[libc.so.6] (2,006,018 samples, 0.73%)std::sys::pal::unix::thread::Thread::new::thread_start (2,006,018 samples, 0.73%)core::ops::function::FnOnce::call_once{{vtable.shim}} (2,006,018 samples, 0.73%)std::sys::backtrace::__rust_begin_short_backtrace (2,006,018 samples, 0.73%)mdbx_txn_commit_ex (2,006,018 samples, 0.73%)sync_locked (2,006,018 samples, 0.73%)msync (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_ecmult_wnaf.constprop.1 (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_ecmult_strauss_wnaf.constprop.0 (9,027,081 samples, 3.28%)rus..rustsecp256k1_v0_10_0_gej_add_ge_var (4,012,036 samples, 1.46%)rustsecp256k1_v0_10_0_fe_sqr_inner (3,009,027 samples, 1.09%)rayon::iter::plumbing::bridge_producer_consumer::helper (11,033,099 samples, 4.01%)rayo.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (11,033,099 samples, 4.01%)_ZN1..rayon::iter::plumbing::bridge_producer_consumer::helper (11,033,099 samples, 4.01%)rayo.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (11,033,099 samples, 4.01%)_ZN1..rayon::iter::plumbing::bridge_producer_consumer::helper (11,033,099 samples, 4.01%)rayo.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (11,033,099 samples, 4.01%)_ZN1..rayon::iter::plumbing::bridge_producer_consumer::helper (11,033,099 samples, 4.01%)rayo..<rayon::iter::extend::ListVecFolder<T> as rayon::iter::plumbing::Folder<T>>::consume_iter (11,033,099 samples, 4.01%)<ray..reth_primitives::transaction::signature::recover_signer_unchecked (11,033,099 samples, 4.01%)reth..reth_primitives::transaction::util::impl_secp256k1::recover_signer_unchecked (11,033,099 samples, 4.01%)reth..rustsecp256k1_v0_10_0_ecdsa_recover (11,033,099 samples, 4.01%)rust..rustsecp256k1_v0_10_0_ecdsa_sig_recover (11,033,099 samples, 4.01%)rust..rustsecp256k1_v0_10_0_ge_set_xo_var (2,006,018 samples, 0.73%)rustsecp256k1_v0_10_0_fe_sqrt (2,006,018 samples, 0.73%)rustsecp256k1_v0_10_0_fe_mul_inner (1,003,009 samples, 0.36%)reth-rayon-0 (12,036,108 samples, 4.38%)reth-..[libc.so.6] (12,036,108 samples, 4.38%)[libc..[libc.so.6] (12,036,108 samples, 4.38%)[libc..std::sys::pal::unix::thread::Thread::new::thread_start (12,036,108 samples, 4.38%)std::..core::ops::function::FnOnce::call_once{{vtable.shim}} (12,036,108 samples, 4.38%)core:..std::sys::backtrace::__rust_begin_short_backtrace (12,036,108 samples, 4.38%)std::..rayon_core::registry::ThreadBuilder::run (12,036,108 samples, 4.38%)rayon..rayon_core::registry::WorkerThread::wait_until_cold (12,036,108 samples, 4.38%)rayon.._ZN83_$LT$rayon_core..job..StackJob$LT$L$C$F$C$R$GT$$u20$as$u20$rayon_core..job..Job$GT$7execute17h0bb13d33f750830aE.llvm.7291770557919418192 (12,036,108 samples, 4.38%)_ZN83.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (12,036,108 samples, 4.38%)_ZN10..rayon_core::registry::WorkerThread::wait_until_cold (1,003,009 samples, 0.36%)<rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute (1,003,009 samples, 0.36%)rayon::iter::plumbing::bridge_producer_consumer::helper (1,003,009 samples, 0.36%)_ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (1,003,009 samples, 0.36%)rayon::iter::plumbing::bridge_producer_consumer::helper (1,003,009 samples, 0.36%)_ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (1,003,009 samples, 0.36%)rayon::iter::plumbing::bridge_producer_consumer::helper (1,003,009 samples, 0.36%)_ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (1,003,009 samples, 0.36%)rayon::iter::plumbing::bridge_producer_consumer::helper (1,003,009 samples, 0.36%)<rayon::iter::extend::ListVecFolder<T> as rayon::iter::plumbing::Folder<T>>::consume_iter (1,003,009 samples, 0.36%)reth_primitives::transaction::signature::recover_signer_unchecked (1,003,009 samples, 0.36%)reth_primitives::transaction::util::impl_secp256k1::recover_signer_unchecked (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_ecdsa_recover (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_ecdsa_sig_recover (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_ecmult_strauss_wnaf.constprop.0 (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_gej_add_ge_var (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_sqr_inner (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_gej_add_ge_var (2,006,018 samples, 0.73%)rustsecp256k1_v0_10_0_fe_mul_inner (2,006,018 samples, 0.73%)rustsecp256k1_v0_10_0_ecmult_strauss_wnaf.constprop.0 (9,027,081 samples, 3.28%)rus..rustsecp256k1_v0_10_0_gej_add_zinv_var (1,003,009 samples, 0.36%)rayon::iter::plumbing::bridge_producer_consumer::helper (10,030,090 samples, 3.65%)rayo.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (10,030,090 samples, 3.65%)_ZN1..rayon::iter::plumbing::bridge_producer_consumer::helper (10,030,090 samples, 3.65%)rayo.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (10,030,090 samples, 3.65%)_ZN1..rayon::iter::plumbing::bridge_producer_consumer::helper (10,030,090 samples, 3.65%)rayo..<rayon::iter::extend::ListVecFolder<T> as rayon::iter::plumbing::Folder<T>>::consume_iter (10,030,090 samples, 3.65%)<ray..reth_primitives::transaction::signature::recover_signer_unchecked (10,030,090 samples, 3.65%)reth..reth_primitives::transaction::util::impl_secp256k1::recover_signer_unchecked (10,030,090 samples, 3.65%)reth..rustsecp256k1_v0_10_0_ecdsa_recover (10,030,090 samples, 3.65%)rust..rustsecp256k1_v0_10_0_ecdsa_sig_recover (10,030,090 samples, 3.65%)rust..rustsecp256k1_v0_10_0_ge_set_xo_var (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_sqrt (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (1,003,009 samples, 0.36%)[libc.so.6] (12,036,108 samples, 4.38%)[libc..[libc.so.6] (12,036,108 samples, 4.38%)[libc..std::sys::pal::unix::thread::Thread::new::thread_start (12,036,108 samples, 4.38%)std::..core::ops::function::FnOnce::call_once{{vtable.shim}} (12,036,108 samples, 4.38%)core:..std::sys::backtrace::__rust_begin_short_backtrace (12,036,108 samples, 4.38%)std::..rayon_core::registry::ThreadBuilder::run (12,036,108 samples, 4.38%)rayon..rayon_core::registry::WorkerThread::wait_until_cold (12,036,108 samples, 4.38%)rayon..<rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute (12,036,108 samples, 4.38%)<rayo..rayon::iter::plumbing::bridge_producer_consumer::helper (12,036,108 samples, 4.38%)rayon.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (12,036,108 samples, 4.38%)_ZN10..rayon_core::registry::WorkerThread::wait_until_cold (2,006,018 samples, 0.73%)<rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute (2,006,018 samples, 0.73%)rayon::iter::plumbing::bridge_producer_consumer::helper (2,006,018 samples, 0.73%)_ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (2,006,018 samples, 0.73%)rayon::iter::plumbing::bridge_producer_consumer::helper (2,006,018 samples, 0.73%)_ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (2,006,018 samples, 0.73%)rayon::iter::plumbing::bridge_producer_consumer::helper (2,006,018 samples, 0.73%)_ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (2,006,018 samples, 0.73%)rayon::iter::plumbing::bridge_producer_consumer::helper (2,006,018 samples, 0.73%)<rayon::iter::extend::ListVecFolder<T> as rayon::iter::plumbing::Folder<T>>::consume_iter (2,006,018 samples, 0.73%)reth_primitives::transaction::signature::recover_signer_unchecked (2,006,018 samples, 0.73%)reth_primitives::transaction::util::impl_secp256k1::recover_signer_unchecked (2,006,018 samples, 0.73%)rustsecp256k1_v0_10_0_ecdsa_recover (2,006,018 samples, 0.73%)rustsecp256k1_v0_10_0_ecdsa_sig_recover (2,006,018 samples, 0.73%)rustsecp256k1_v0_10_0_ecmult_strauss_wnaf.constprop.0 (2,006,018 samples, 0.73%)rustsecp256k1_v0_10_0_gej_add_ge_var (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (1,003,009 samples, 0.36%)reth-rayon-1 (17,051,153 samples, 6.20%)reth-ray..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (4,012,036 samples, 1.46%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (5,015,045 samples, 1.82%)r..rustsecp256k1_v0_10_0_gej_add_ge_var (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_ecmult_strauss_wnaf.constprop.0 (8,024,072 samples, 2.92%)ru..rustsecp256k1_v0_10_0_gej_add_zinv_var (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_sqr_inner (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_ge_set_gej_var (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_impl_inv_var (1,003,009 samples, 0.36%)rayon::iter::plumbing::bridge_producer_consumer::helper (11,033,099 samples, 4.01%)rayo.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (11,033,099 samples, 4.01%)_ZN1..rayon::iter::plumbing::bridge_producer_consumer::helper (11,033,099 samples, 4.01%)rayo..<rayon::iter::extend::ListVecFolder<T> as rayon::iter::plumbing::Folder<T>>::consume_iter (11,033,099 samples, 4.01%)<ray..reth_primitives::transaction::signature::recover_signer_unchecked (11,033,099 samples, 4.01%)reth..reth_primitives::transaction::util::impl_secp256k1::recover_signer_unchecked (11,033,099 samples, 4.01%)reth..rustsecp256k1_v0_10_0_ecdsa_recover (10,030,090 samples, 3.65%)rust..rustsecp256k1_v0_10_0_ecdsa_sig_recover (10,030,090 samples, 3.65%)rust..rustsecp256k1_v0_10_0_ge_set_xo_var (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_sqrt (1,003,009 samples, 0.36%)reth-rayon-2 (12,036,108 samples, 4.38%)reth-..[libc.so.6] (12,036,108 samples, 4.38%)[libc..[libc.so.6] (12,036,108 samples, 4.38%)[libc..std::sys::pal::unix::thread::Thread::new::thread_start (12,036,108 samples, 4.38%)std::..core::ops::function::FnOnce::call_once{{vtable.shim}} (12,036,108 samples, 4.38%)core:..std::sys::backtrace::__rust_begin_short_backtrace (12,036,108 samples, 4.38%)std::..rayon_core::registry::ThreadBuilder::run (12,036,108 samples, 4.38%)rayon..rayon_core::registry::WorkerThread::wait_until_cold (12,036,108 samples, 4.38%)rayon..<rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute (12,036,108 samples, 4.38%)<rayo..rayon::iter::plumbing::bridge_producer_consumer::helper (12,036,108 samples, 4.38%)rayon.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (12,036,108 samples, 4.38%)_ZN10..rayon::iter::plumbing::bridge_producer_consumer::helper (12,036,108 samples, 4.38%)rayon.._ZN10rayon_core4join12join_context28_$u7b$$u7b$closure$u7d$$u7d$17h5fde576d27d0ec92E.llvm.7291770557919418192 (12,036,108 samples, 4.38%)_ZN10..rayon_core::registry::WorkerThread::wait_until_cold (1,003,009 samples, 0.36%)__sched_yield (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[ld-linux-x86-64.so.2] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[ld-linux-x86-64.so.2] (3,009,027 samples, 1.09%)[ld-linux-x86-64.so.2] (3,009,027 samples, 1.09%)[ld-linux-x86-64.so.2] (3,009,027 samples, 1.09%)[ld-linux-x86-64.so.2] (3,009,027 samples, 1.09%)_dl_allocate_tls_init (1,003,009 samples, 0.36%)[ld-linux-x86-64.so.2] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)_ZN3std2fs10DirBuilder14create_dir_all17hcd4e140c79f0b14cE.llvm.11825420043304724426 (1,003,009 samples, 0.36%)_ZN3std2fs10DirBuilder14create_dir_all17hcd4e140c79f0b14cE.llvm.11825420043304724426 (1,003,009 samples, 0.36%)_ZN3std2fs10DirBuilder14create_dir_all17hcd4e140c79f0b14cE.llvm.11825420043304724426 (1,003,009 samples, 0.36%)mkdir (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)std::sys::pal::unix::fs::readdir (1,003,009 samples, 0.36%)opendir (1,003,009 samples, 0.36%)__open64_nocancel (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)reth_db::lockfile::StorageLock::try_acquire (2,006,018 samples, 0.73%)std::sync::once_lock::OnceLock<T>::initialize (2,006,018 samples, 0.73%)std::sys::sync::once::futex::Once::call (2,006,018 samples, 0.73%)std::sync::once::Once::call_once_force::_{{closure}} (2,006,018 samples, 0.73%)sysinfo::unix::linux::process::refresh_procs (2,006,018 samples, 0.73%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (2,006,018 samples, 0.73%)<core::iter::adapters::filter_map::FilterMap<I,F> as core::iter::traits::iterator::Iterator>::next (2,006,018 samples, 0.73%)<core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold (2,006,018 samples, 0.73%)sysinfo::unix::linux::process::get_all_pid_entries (2,006,018 samples, 0.73%)sysinfo::unix::linux::process::get_all_pid_entries (1,003,009 samples, 0.36%)std::sys::pal::unix::fs::readdir (1,003,009 samples, 0.36%)opendir (1,003,009 samples, 0.36%)__open64_nocancel (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<core::future::poll_fn::PollFn<F> as core::future::future::Future>::poll (5,015,045 samples, 1.82%)<..reth_db::mdbx::init_db (5,015,045 samples, 1.82%)r..reth_db::implementation::mdbx::DatabaseEnv::open (4,012,036 samples, 1.46%)reth_libmdbx::environment::EnvironmentBuilder::open_with_permissions (2,006,018 samples, 0.73%)mdbx_env_open (2,006,018 samples, 0.73%)osal_mmap (1,003,009 samples, 0.36%)osal_check_fs_local (1,003,009 samples, 0.36%)__getmntent_r (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)fgets_unlocked (1,003,009 samples, 0.36%)_IO_getline_info (1,003,009 samples, 0.36%)_IO_default_uflow (1,003,009 samples, 0.36%)_IO_file_underflow (1,003,009 samples, 0.36%)__read_nocancel (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<&mut serde_json::de::Deserializer<R> as serde::de::Deserializer>::deserialize_struct (2,006,018 samples, 0.73%)ruint::support::serde::<impl serde::de::Deserialize for ruint::Uint<_,_>>::deserialize (2,006,018 samples, 0.73%)ruint::string::<impl core::str::traits::FromStr for ruint::Uint<_,_>>::from_str (2,006,018 samples, 0.73%)core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert (1,003,009 samples, 0.36%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (1,003,009 samples, 0.36%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::KV>::split (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<reth_chainspec::spec::ChainSpec as core::convert::From<alloy_genesis::Genesis>>::from (5,015,045 samples, 1.82%)<..<reth_chainspec::spec::ChainSpec as core::default::Default>::default (5,015,045 samples, 1.82%)<..std::sys::sync::once::futex::Once::call (5,015,045 samples, 1.82%)s..std::sync::once::Once::call_once::_{{closure}} (5,015,045 samples, 1.82%)s..core::ops::function::FnOnce::call_once (5,015,045 samples, 1.82%)c..serde_json::de::from_trait (5,015,045 samples, 1.82%)s..<&mut serde_json::de::Deserializer<R> as serde::de::Deserializer>::deserialize_struct (5,015,045 samples, 1.82%)<..<&mut serde_json::de::Deserializer<R> as serde::de::Deserializer>::deserialize_map (5,015,045 samples, 1.82%)<..const_hex::decode_to_slice_inner (1,003,009 samples, 0.36%)<reth_node_builder::components::builder::ComponentsBuilder<Node,PoolB,PayloadB,NetworkB,ExecB,ConsB> as reth_node_builder::components::builder::NodeComponentsBuilder<Node>>::build_components::_{{closure}} (1,003,009 samples, 0.36%)<reth_node_ethereum::node::EthereumNetworkBuilder as reth_node_builder::components::network::NetworkBuilder<Node,Pool>>::build_network::_{{closure}}::_{{closure}} (1,003,009 samples, 0.36%)<tracing_subscriber::layer::layered::Layered<L,S> as tracing_core::subscriber::Subscriber>::event (1,003,009 samples, 0.36%)<tracing_subscriber::fmt::fmt_layer::Layer<S,N,E,W> as tracing_subscriber::layer::Layer<S>>::on_event (1,003,009 samples, 0.36%)<tracing_subscriber::fmt::format::Format<tracing_subscriber::fmt::format::Full,T> as tracing_subscriber::fmt::format::FormatEvent<S,N>>::format_event (1,003,009 samples, 0.36%)<tracing_subscriber::fmt::format::DefaultVisitor as tracing_core::field::Visit>::record_debug (1,003,009 samples, 0.36%)<&mut W as core::fmt::Write>::write_fmt (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)reth_db_common::init::init_genesis (1,003,009 samples, 0.36%)reth_db_common::init::insert_genesis_header (1,003,009 samples, 0.36%)reth_provider::providers::static_file::writer::StaticFileProviderRW<N>::append_header (1,003,009 samples, 0.36%)reth_nippy_jar::writer::NippyJarWriter<H>::append_column (1,003,009 samples, 0.36%)<reth_nippy_jar::compression::Compressors as reth_nippy_jar::compression::Compression>::compress_to (1,003,009 samples, 0.36%)<reth_nippy_jar::compression::lz4::Lz4 as reth_nippy_jar::compression::Compression>::compress_to (1,003,009 samples, 0.36%)_rjem_calloc (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)reth_engine_local::service::LocalEngineService<N>::new (1,003,009 samples, 0.36%)reth_engine_tree::persistence::PersistenceHandle<T>::spawn_service (1,003,009 samples, 0.36%)std::sys::pal::unix::thread::Thread::new (1,003,009 samples, 0.36%)pthread_create (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<reth_node_builder::launch::engine::EngineNodeLauncher as reth_node_builder::launch::LaunchNode<reth_node_builder::builder::states::NodeBuilderWithComponents<T,CB,AO>>>::launch_node::_{{closure}} (3,009,027 samples, 1.09%)reth_node_builder::launch::common::LaunchContextWith<reth_node_builder::launch::common::Attached<reth_node_builder::launch::common::WithConfigs<ChainSpec>,DB>>::with_provider_factory::_{{closure}} (1,003,009 samples, 0.36%)reth_provider::providers::static_file::manager::StaticFileProvider<N>::check_consistency (1,003,009 samples, 0.36%)<reth_provider::providers::static_file::manager::StaticFileProvider<N> as reth_provider::providers::static_file::manager::StaticFileWriter>::get_writer (1,003,009 samples, 0.36%)reth_provider::providers::static_file::writer::StaticFileWriters<N>::get_or_create (1,003,009 samples, 0.36%)reth_provider::providers::static_file::writer::StaticFileProviderRW<N>::open (1,003,009 samples, 0.36%)reth_nippy_jar::writer::NippyJarWriter<H>::new (1,003,009 samples, 0.36%)write (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<reth_node_core::args::rpc_server::RpcServerArgs as clap_builder::derive::Args>::augment_args (1,003,009 samples, 0.36%)std::sync::once_lock::OnceLock<T>::initialize (1,003,009 samples, 0.36%)std::sys::sync::once::futex::Once::call (1,003,009 samples, 0.36%)_ZN3std4sync4once4Once15call_once_force28_$u7b$$u7b$closure$u7d$$u7d$17hbd52b5bfb5f89345E.llvm.5058068804937889998 (1,003,009 samples, 0.36%)core::fmt::write (1,003,009 samples, 0.36%)core::fmt::num::imp::<impl core::fmt::Display for u32>::fmt (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)reth_node_core::args::log::LogArgs::init_tracing (1,003,009 samples, 0.36%)<reth_tracing::RethTracer as reth_tracing::Tracer>::init (1,003,009 samples, 0.36%)reth_tracing::layers::build_env_filter (1,003,009 samples, 0.36%)<core::iter::adapters::chain::Chain<A,B> as core::iter::traits::iterator::Iterator>::try_fold (1,003,009 samples, 0.36%)core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut (1,003,009 samples, 0.36%)tracing_subscriber::filter::env::directive::Directive::parse (1,003,009 samples, 0.36%)regex::regex::string::Regex::captures_at (1,003,009 samples, 0.36%)<regex_automata::meta::strategy::Core as regex_automata::meta::strategy::Strategy>::search_slots (1,003,009 samples, 0.36%)_ZN14regex_automata3nfa8thompson6pikevm6PikeVM12search_slots17h37ecedc68ddaccadE.llvm.9668037086439293821 (1,003,009 samples, 0.36%)regex_automata::nfa::thompson::pikevm::PikeVM::search_slots_imp (1,003,009 samples, 0.36%)regex_automata::nfa::thompson::pikevm::PikeVM::search_imp (1,003,009 samples, 0.36%)regex_automata::nfa::thompson::pikevm::PikeVM::next (1,003,009 samples, 0.36%)regex_automata::nfa::thompson::pikevm::PikeVM::epsilon_closure (1,003,009 samples, 0.36%)reth::cli::Cli<C,Ext>::run (2,006,018 samples, 0.73%)std::sys::sync::once::futex::Once::call (1,003,009 samples, 0.36%)_ZN3std4sync4once4Once9call_once28_$u7b$$u7b$closure$u7d$$u7d$17hbc08a47157c9a025E.llvm.18436661035813783525 (1,003,009 samples, 0.36%)core::ops::function::FnOnce::call_once (1,003,009 samples, 0.36%)reth_node_metrics::recorder::PrometheusRecorder::install (1,003,009 samples, 0.36%)metrics_exporter_prometheus::exporter::builder::PrometheusBuilder::build_recorder (1,003,009 samples, 0.36%)once_cell::imp::OnceCell<T>::initialize (1,003,009 samples, 0.36%)once_cell::imp::initialize_or_wait (1,003,009 samples, 0.36%)_ZN9once_cell3imp17OnceCell$LT$T$GT$10initialize28_$u7b$$u7b$closure$u7d$$u7d$17h44f729cbca0cf91aE.llvm.16545332737216348194 (1,003,009 samples, 0.36%)quanta::Calibration::calibrate (1,003,009 samples, 0.36%)clock_gettime (1,003,009 samples, 0.36%)[[vdso]] (1,003,009 samples, 0.36%)reth_cli_runner::CliRunner::run_command_until_exit (1,003,009 samples, 0.36%)reth_cli_runner::AsyncCliRunner::new (1,003,009 samples, 0.36%)tokio::runtime::builder::Builder::build (1,003,009 samples, 0.36%)tokio::runtime::scheduler::multi_thread::worker::Launch::launch (1,003,009 samples, 0.36%)tokio::runtime::blocking::pool::spawn_blocking (1,003,009 samples, 0.36%)tokio::runtime::blocking::pool::Spawner::spawn_blocking (1,003,009 samples, 0.36%)tokio::runtime::blocking::pool::Spawner::spawn_task (1,003,009 samples, 0.36%)std::thread::Builder::spawn_unchecked (1,003,009 samples, 0.36%)std::sys::pal::unix::thread::Thread::new (1,003,009 samples, 0.36%)pthread_create (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)reth_node_builder::launch::common::LaunchContextWith<reth_node_builder::launch::common::Attached<reth_node_builder::launch::common::WithConfigs<ChainSpec>,DB>>::with_provider_factory::_{{closure}} (1,003,009 samples, 0.36%)reth_provider::providers::static_file::manager::StaticFileProvider<N>::check_consistency (1,003,009 samples, 0.36%)<reth_provider::providers::static_file::manager::StaticFileProvider<N> as reth_provider::providers::static_file::manager::StaticFileWriter>::get_writer (1,003,009 samples, 0.36%)reth_provider::providers::static_file::writer::StaticFileWriters<N>::get_or_create (1,003,009 samples, 0.36%)reth_provider::providers::static_file::writer::StaticFileProviderRW<N>::open (1,003,009 samples, 0.36%)reth_nippy_jar::writer::NippyJarWriter<H>::new (1,003,009 samples, 0.36%)_rjem_je_malloc_default (1,003,009 samples, 0.36%)_rjem_je_large_palloc (1,003,009 samples, 0.36%)_rjem_je_arena_extent_alloc_large (1,003,009 samples, 0.36%)_rjem_je_pa_alloc (1,003,009 samples, 0.36%)pac_alloc_impl (1,003,009 samples, 0.36%)pac_alloc_real (1,003,009 samples, 0.36%)_rjem_je_ecache_alloc_grow (1,003,009 samples, 0.36%)_rjem_je_emap_register_boundary (1,003,009 samples, 0.36%)_rjem_je_rtree_leaf_elm_lookup_hard (1,003,009 samples, 0.36%)base_alloc_impl (1,003,009 samples, 0.36%)base_block_alloc.isra.0 (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<futures_util::future::try_join::TryJoin<Fut1,Fut2> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)_ZN117_$LT$futures_util..future..try_future..into_future..IntoFuture$LT$Fut$GT$$u20$as$u20$core..future..future..Future$GT$4poll17h07a87b426cc2519fE.llvm.10351110023459563463 (1,003,009 samples, 0.36%)core::ptr::drop_in_place<reth_rpc_builder::auth::AuthServerConfig::start::{{closure}}> (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (22,066,198 samples, 8.03%)[unknown]reth_node_builder::rpc::RpcAddOns<N,EthApi,EV>::launch_add_ons_with::_{{closure}} (2,006,018 samples, 0.73%)reth_rpc::eth::helpers::signer::<impl reth_rpc_eth_api::helpers::signer::AddDevSigners for reth_rpc::eth::core::EthApi<Provider,Pool,Network,EvmConfig>>::with_dev_accounts (1,003,009 samples, 0.36%)reth_rpc::eth::helpers::signer::DevSigner::random_signers (1,003,009 samples, 0.36%)k256::arithmetic::mul::<impl core::ops::arith::Mul<&k256::arithmetic::scalar::Scalar> for k256::arithmetic::projective::ProjectivePoint>::mul (1,003,009 samples, 0.36%)k256::arithmetic::mul::lincomb (1,003,009 samples, 0.36%)k256::arithmetic::projective::ProjectivePoint::double (1,003,009 samples, 0.36%)reth (27,081,243 samples, 9.85%)reth_start (1,003,009 samples, 0.36%)__libc_start_main (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)exit (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)[ld-linux-x86-64.so.2] (1,003,009 samples, 0.36%)mdbx_global_destructor (1,003,009 samples, 0.36%)__sched_yield (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[libc.so.6] (2,006,018 samples, 0.73%)_rjem_je_tsd_cleanup (2,006,018 samples, 0.73%)_rjem_je_arena_decay (2,006,018 samples, 0.73%)_rjem_je_pac_decay_all (2,006,018 samples, 0.73%)pac_decay_to_limit.part.0 (2,006,018 samples, 0.73%)_rjem_je_extent_dalloc_wrapper (2,006,018 samples, 0.73%)_rjem_je_pages_purge_forced (2,006,018 samples, 0.73%)__madvise (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)parking_lot::condvar::Condvar::wait_until_internal (2,006,018 samples, 0.73%)syscall (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<futures_util::future::select::Select<A,B> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<tracing_futures::Instrumented<T> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)reth_transaction_pool::validate::eth::EthTransactionValidatorBuilder::build_with_tasks::_{{closure}} (1,003,009 samples, 0.36%)reth_transaction_pool::validate::task::ValidationTask::run::_{{closure}} (1,003,009 samples, 0.36%)<reth_transaction_pool::validate::task::TransactionValidationTaskExecutor<V> as reth_transaction_pool::validate::TransactionValidator>::validate_transaction::_{{closure}}::_{{closure}} (1,003,009 samples, 0.36%)tokio::sync::oneshot::Sender<T>::send (1,003,009 samples, 0.36%)tokio::runtime::task::raw::schedule (1,003,009 samples, 0.36%)tokio::runtime::context::with_scheduler (1,003,009 samples, 0.36%)parking_lot::condvar::Condvar::notify_one_slow (1,003,009 samples, 0.36%)syscall (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<metrics_util::registry::recency::Generational<T> as metrics::handles::CounterFn>::increment (1,003,009 samples, 0.36%)_ZN16reth_rpc_eth_api7helpers13blocking_task13SpawnBlocking17spawn_blocking_io28_$u7b$$u7b$closure$u7d$$u7d$17h0bc2aadd356347c3E.llvm.438779863700274100 (4,012,036 samples, 1.46%)reth_rpc_eth_api::helpers::state::LoadState::state_at_block_id_or_latest (4,012,036 samples, 1.46%)reth_storage_api::state::StateProviderFactory::state_by_block_id (4,012,036 samples, 1.46%)<reth_provider::providers::blockchain_provider::BlockchainProvider2<N> as reth_storage_api::state::StateProviderFactory>::latest (4,012,036 samples, 1.46%)reth_provider::providers::database::ProviderFactory<N>::history_by_block_hash (4,012,036 samples, 1.46%)<reth_db::implementation::mdbx::tx::Tx<K> as reth_db_api::transaction::DbTx>::get (4,012,036 samples, 1.46%)reth_db::metrics::DatabaseEnvMetrics::record_operation (4,012,036 samples, 1.46%)reth_db::implementation::mdbx::tx::Tx<K>::execute_with_operation_metric::_{{closure}} (3,009,027 samples, 1.09%)reth_libmdbx::transaction::Transaction<K>::get (3,009,027 samples, 1.09%)mdbx_get (2,006,018 samples, 0.73%)cursor_init (2,006,018 samples, 0.73%)page_search (2,006,018 samples, 0.73%)fetch_sdb (1,003,009 samples, 0.36%)node_search (1,003,009 samples, 0.36%)cmp_lexical (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)<futures_util::lock::mutex::MutexGuard<T> as core::ops::drop::Drop>::drop (2,006,018 samples, 0.73%)_ZN5tokio7runtime4park4wake17he4ba08c2e829f32cE.llvm.472134555349281347 (2,006,018 samples, 0.73%)parking_lot::condvar::Condvar::notify_one_slow (2,006,018 samples, 0.73%)syscall (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<reth_db::implementation::mdbx::tx::Tx<K> as reth_db_api::transaction::DbTx>::get (1,003,009 samples, 0.36%)reth_db::metrics::DatabaseEnvMetrics::record_operation (1,003,009 samples, 0.36%)reth_db::implementation::mdbx::tx::Tx<K>::execute_with_operation_metric::_{{closure}} (1,003,009 samples, 0.36%)reth_libmdbx::database::Database::new (1,003,009 samples, 0.36%)<reth_provider::providers::database::provider::DatabaseProvider<TX,N> as reth_storage_api::block_id::BlockNumReader>::last_block_number (2,006,018 samples, 0.73%)<reth_db::implementation::mdbx::tx::Tx<K> as reth_db_api::transaction::DbTx>::cursor_read (2,006,018 samples, 0.73%)reth_libmdbx::cursor::Cursor<K>::new (1,003,009 samples, 0.36%)mdbx_cursor_open (1,003,009 samples, 0.36%)mdbx_cursor_create (1,003,009 samples, 0.36%)__libc_calloc (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)<reth_provider::providers::database::provider::DatabaseProvider<TX,N> as reth_storage_api::state::TryIntoHistoricalStateProvider>::try_into_history_at_block (3,009,027 samples, 1.09%)<reth_provider::providers::database::provider::DatabaseProvider<TX,N> as reth_storage_api::stage_checkpoint::StageCheckpointReader>::get_stage_checkpoint (1,003,009 samples, 0.36%)_ZN4core3ptr65drop_in_place$LT$reth_storage_errors..provider..ProviderError$GT$17h75188b5d925dd0e7E.llvm.1606467394959726285 (1,003,009 samples, 0.36%)reth_transaction_pool::validate::eth::EthTransactionValidator<Client,Tx>::validate_one (6,018,054 samples, 2.19%)r..<reth_provider::providers::blockchain_provider::BlockchainProvider2<N> as reth_storage_api::state::StateProviderFactory>::latest (6,018,054 samples, 2.19%)<..reth_provider::providers::database::ProviderFactory<N>::history_by_block_hash (6,018,054 samples, 2.19%)r..reth_provider::providers::database::ProviderFactory<N>::provider (1,003,009 samples, 0.36%)<reth_db::implementation::mdbx::DatabaseEnv as reth_db_api::database::Database>::tx (1,003,009 samples, 0.36%)reth_libmdbx::transaction::Transaction<K>::new (1,003,009 samples, 0.36%)mdbx_txn_begin_ex (1,003,009 samples, 0.36%)txn_renew (1,003,009 samples, 0.36%)coherency_check (1,003,009 samples, 0.36%)tokio::runtime::task::raw::schedule (1,003,009 samples, 0.36%)tokio::runtime::context::with_scheduler (1,003,009 samples, 0.36%)parking_lot::condvar::Condvar::notify_one_slow (1,003,009 samples, 0.36%)syscall (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<tracing_futures::Instrumented<T> as core::future::future::Future>::poll (14,042,126 samples, 5.11%)<traci..<futures_util::future::select::Select<A,B> as core::future::future::Future>::poll (14,042,126 samples, 5.11%)<futur..reth_transaction_pool::validate::eth::EthTransactionValidatorBuilder::build_with_tasks::_{{closure}} (10,030,090 samples, 3.65%)reth..reth_transaction_pool::validate::task::ValidationTask::run::_{{closure}} (10,030,090 samples, 3.65%)reth..<reth_transaction_pool::validate::task::TransactionValidationTaskExecutor<V> as reth_transaction_pool::validate::TransactionValidator>::validate_transaction::_{{closure}}::_{{closure}} (8,024,072 samples, 2.92%)<r..tokio::sync::oneshot::Sender<T>::send (2,006,018 samples, 0.73%)tokio::runtime::task::waker::wake_by_ref (1,003,009 samples, 0.36%)tokio::runtime::context::runtime::enter_runtime (22,066,198 samples, 8.03%)tokio::runt..tokio::runtime::park::CachedParkThread::block_on (22,066,198 samples, 8.03%)tokio::runt.._ZN5tokio7runtime4park5Inner4park17hbe96bd356c4e7d49E.llvm.472134555349281347 (7,021,063 samples, 2.55%)_Z..parking_lot::condvar::Condvar::wait_until_internal (7,021,063 samples, 2.55%)pa..syscall (7,021,063 samples, 2.55%)sy..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (6,018,054 samples, 2.19%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..__floattidf (1,003,009 samples, 0.36%)_ZN5tokio7runtime2io6driver6Driver4turn17h9c93a9ec06411625E.llvm.11553916271539853387 (11,033,099 samples, 4.01%)_ZN5..epoll_wait (10,030,090 samples, 3.65%)epol..[unknown] (10,030,090 samples, 3.65%)[unk..[unknown] (10,030,090 samples, 3.65%)[unk..[unknown] (10,030,090 samples, 3.65%)[unk..[unknown] (10,030,090 samples, 3.65%)[unk..[unknown] (9,027,081 samples, 3.28%)[un..[unknown] (9,027,081 samples, 3.28%)[un..[unknown] (8,024,072 samples, 2.92%)[u..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (7,021,063 samples, 2.55%)[u..[unknown] (6,018,054 samples, 2.19%)[.._ZN5tokio7runtime4time6Driver13park_internal17hc2f7e553e26f963aE.llvm.1187048005086314035 (13,039,117 samples, 4.74%)_ZN5to.._ZN5tokio7runtime4time5wheel5Wheel15next_expiration17h2d94ea06e57a4927E.llvm.17468179975562877380 (1,003,009 samples, 0.36%)parking_lot::condvar::Condvar::wait_until_internal (5,015,045 samples, 1.82%)p..syscall (5,015,045 samples, 1.82%)s..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)_ZN3std3sys3pal4unix4time8Timespec3now17h41af0ae2fd2a5c35E.llvm.11825420043304724426 (1,003,009 samples, 0.36%)clock_gettime (1,003,009 samples, 0.36%)[[vdso]] (1,003,009 samples, 0.36%)tokio::runtime::scheduler::multi_thread::worker::Context::park_timeout (20,060,180 samples, 7.30%)tokio::run..tokio::runtime::scheduler::multi_thread::park::Parker::park (20,060,180 samples, 7.30%)tokio::run..tokio::runtime::time::<impl tokio::runtime::time::handle::Handle>::process (2,006,018 samples, 0.73%)tokio::runtime::time::<impl tokio::runtime::time::handle::Handle>::process_at_sharded_time (1,003,009 samples, 0.36%)_ZN5tokio7runtime4time5wheel5Wheel15next_expiration17h2d94ea06e57a4927E.llvm.17468179975562877380 (1,003,009 samples, 0.36%)parking_lot_core::parking_lot::lock_bucket_pair (1,003,009 samples, 0.36%)parking_lot::condvar::Condvar::notify_one_slow (2,006,018 samples, 0.73%)syscall (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)tokio::runtime::driver::IoHandle::unpark (3,009,027 samples, 1.09%)mio::sys::unix::waker::Waker::wake (3,009,027 samples, 1.09%)write (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)<core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold (1,003,009 samples, 0.36%)alloc::raw_vec::RawVec<T,A>::grow_one (1,003,009 samples, 0.36%)_ZN5alloc7raw_vec11finish_grow17h0836cc0428228076E.llvm.267818569104351975 (1,003,009 samples, 0.36%)do_rallocx (1,003,009 samples, 0.36%)_rjem_je_arena_ralloc (1,003,009 samples, 0.36%)metrics_exporter_prometheus::formatting::key_to_parts (4,012,036 samples, 1.46%)indexmap::map::IndexMap<K,V,S>::insert_full (1,003,009 samples, 0.36%)indexmap::map::core::IndexMapCore<K,V>::insert_full (1,003,009 samples, 0.36%)hashbrown::raw::RawTable<T,A>::reserve_rehash (1,003,009 samples, 0.36%)hashbrown::raw::RawTableInner::fallible_with_capacity (1,003,009 samples, 0.36%)_rjem_malloc (1,003,009 samples, 0.36%)metrics_util::bucket::AtomicBucket<T>::clear_with (1,003,009 samples, 0.36%)sketches_ddsketch::ddsketch::DDSketch::add (1,003,009 samples, 0.36%)[libm.so.6] (1,003,009 samples, 0.36%)tokio::runtime::task::harness::Harness<T,S>::poll (6,018,054 samples, 2.19%)t..tokio::runtime::task::core::Core<T,S>::poll (6,018,054 samples, 2.19%)t.._ZN17reth_node_metrics8recorder18PrometheusRecorder12spawn_upkeep28_$u7b$$u7b$closure$u7d$$u7d$17h3ac0867fabb3d3ffE.llvm.15390170818660464992 (6,018,054 samples, 2.19%)_.._ZN27metrics_exporter_prometheus8recorder5Inner33drain_histograms_to_distributions17hee534b949b8a13c3E.llvm.6344540606985295957 (6,018,054 samples, 2.19%)_..metrics_util::registry::Registry<K,S>::get_histogram_handles (1,003,009 samples, 0.36%)hashbrown::raw::RawTable<T,A>::reserve_rehash (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)tokio::runtime::context::with_scheduler (6,018,054 samples, 2.19%)t..parking_lot::condvar::Condvar::notify_one_slow (5,015,045 samples, 1.82%)p..syscall (5,015,045 samples, 1.82%)s..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[.._ZN10reth_tasks12TaskExecutor17spawn_critical_as28_$u7b$$u7b$closure$u7d$$u7d$17h1c2428023a6af2d8E.llvm.6325698203083743441 (1,003,009 samples, 0.36%)<futures_util::future::select::Select<A,B> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<tracing_futures::Instrumented<T> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<core::panic::unwind_safe::AssertUnwindSafe<F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<core::future::poll_fn::PollFn<F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<reth_engine_local::service::LocalEngineService<N> as futures_core::stream::Stream>::poll_next (1,003,009 samples, 0.36%)std::sync::mpmc::Sender<T>::send (1,003,009 samples, 0.36%)std::sync::mpmc::list::Channel<T>::send (1,003,009 samples, 0.36%)std::sync::mpmc::waker::SyncWaker::notify (1,003,009 samples, 0.36%)syscall (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)_ZN10reth_tasks12TaskExecutor17spawn_critical_as28_$u7b$$u7b$closure$u7d$$u7d$17h2e9525ea0d8c4b9fE.llvm.6325698203083743441 (1,003,009 samples, 0.36%)<futures_util::future::select::Select<A,B> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<tracing_futures::Instrumented<T> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)_ZN15reth_stages_api7metrics8listener15MetricsListener12handle_event17hcac613dda2a999daE.llvm.16351050675857583936 (1,003,009 samples, 0.36%)_ZN15reth_stages_api7metrics8listener15MetricsListener12handle_event17hcac613dda2a999daE.llvm.16351050675857583936 (1,003,009 samples, 0.36%)reth_stages_api::metrics::sync_metrics::SyncMetrics::get_stage_metrics (1,003,009 samples, 0.36%)<metrics_util::layers::prefix::Prefix<R> as metrics::recorder::Recorder>::register_gauge (1,003,009 samples, 0.36%)metrics_util::registry::Registry<K,S>::get_or_create_gauge (1,003,009 samples, 0.36%)<metrics::key::Key as core::cmp::PartialEq>::eq (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)_rjem_je_eset_fit (1,003,009 samples, 0.36%)_rjem_je_sz_psz_quantize_ceil (1,003,009 samples, 0.36%)_ZN10reth_tasks12TaskExecutor17spawn_critical_as28_$u7b$$u7b$closure$u7d$$u7d$17h78d1039c30b3cab2E.llvm.6325698203083743441 (3,009,027 samples, 1.09%)<futures_util::future::select::Select<A,B> as core::future::future::Future>::poll (3,009,027 samples, 1.09%)<tracing_futures::Instrumented<T> as core::future::future::Future>::poll (3,009,027 samples, 1.09%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (3,009,027 samples, 1.09%)<reth_network::transactions::TransactionsManager<Pool,N> as core::future::future::Future>::poll (3,009,027 samples, 1.09%)hashbrown::raw::RawTable<T,A>::with_capacity_in (3,009,027 samples, 1.09%)_rjem_je_malloc_default (2,006,018 samples, 0.73%)_rjem_je_large_palloc (2,006,018 samples, 0.73%)_rjem_je_arena_extent_alloc_large (2,006,018 samples, 0.73%)_rjem_je_pa_alloc (2,006,018 samples, 0.73%)pac_alloc_impl (2,006,018 samples, 0.73%)pac_alloc_real (2,006,018 samples, 0.73%)_rjem_je_ecache_alloc (2,006,018 samples, 0.73%)extent_recycle (2,006,018 samples, 0.73%)extent_split_interior.constprop.0 (1,003,009 samples, 0.36%)extent_split_impl.constprop.0 (1,003,009 samples, 0.36%)_rjem_je_edata_cache_get (1,003,009 samples, 0.36%)_rjem_je_edata_avail_remove (1,003,009 samples, 0.36%)_ZN10reth_tasks12TaskExecutor17spawn_critical_as28_$u7b$$u7b$closure$u7d$$u7d$17hd7da2189a867f2eaE.llvm.6325698203083743441 (1,003,009 samples, 0.36%)<futures_util::future::select::Select<A,B> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<tracing_futures::Instrumented<T> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<reth_payload_builder::service::PayloadBuilderService<Gen,St,T> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<reth_basic_payload_builder::metrics::PayloadBuilderMetrics as core::default::Default>::default (1,003,009 samples, 0.36%)<metrics_util::layers::prefix::Prefix<R> as metrics::recorder::Recorder>::register_counter (1,003,009 samples, 0.36%)metrics_util::registry::Registry<K,S>::get_or_create_counter (1,003,009 samples, 0.36%)_ZN10reth_tasks12TaskExecutor17spawn_critical_as28_$u7b$$u7b$closure$u7d$$u7d$17hed3209be9b50a5b6E.llvm.6325698203083743441 (1,003,009 samples, 0.36%)<futures_util::future::select::Select<A,B> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<tracing_futures::Instrumented<T> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)_ZN21reth_transaction_pool8maintain32maintain_transaction_pool_future28_$u7b$$u7b$closure$u7d$$u7d$17h23aa50849627889fE.llvm.9321060313343939033 (1,003,009 samples, 0.36%)reth_transaction_pool::maintain::maintain_transaction_pool::_{{closure}} (1,003,009 samples, 0.36%)<reth_transaction_pool::Pool<V,T,S> as reth_transaction_pool::traits::TransactionPoolExt>::on_canonical_state_change (1,003,009 samples, 0.36%)reth_transaction_pool::pool::txpool::TxPool<T>::on_canonical_state_change (1,003,009 samples, 0.36%)reth_transaction_pool::pool::txpool::TxPool<T>::prune_transaction_by_hash (1,003,009 samples, 0.36%)alloc::collections::btree::map::BTreeMap<K,V,A>::remove (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)__close (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)_ZN16jsonrpsee_server6server18process_connection28_$u7b$$u7b$closure$u7d$$u7d$17h114cbc50ca9fe822E.llvm.6325698203083743441 (4,012,036 samples, 1.46%)_ZN4core3ptr2286drop_in_place$LT$hyper_util..server..conn..auto..UpgradeableConnection$LT$hyper_util..rt..tokio..TokioIo$LT$tokio..net..tcp..stream..TcpStream$GT$$C$jsonrpsee_server..utils..TowerToHyperService$LT$tower..util..either..Either$LT$tower_http..cors..Cors$LT$tower..util..either..Either$LT$reth_rpc_layer..auth_layer..AuthService$LT$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$reth_rpc_layer..jwt_validator..JwtAuthValidator$GT$$C$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$GT$$GT$$C$tower..util..either..Either$LT$reth_rpc_layer..auth_layer..AuthService$LT$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$reth_rpc_layer..jwt_validator..JwtAuthValidator$GT$$C$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$GT$$GT$$GT$$C$hyper_util..rt..tokio..TokioExecutor$GT$$GT$17hf64e3a6234682aeeE (3,009,027 samples, 1.09%)core::ptr::drop_in_place<hyper::proto::h1::conn::Conn<hyper_util::common::rewind::Rewind<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>,bytes::bytes::Bytes,hyper::proto::h1::role::Server>> (3,009,027 samples, 1.09%)_ZN4core3ptr135drop_in_place$LT$hyper_util..common..rewind..Rewind$LT$hyper_util..rt..tokio..TokioIo$LT$tokio..net..tcp..stream..TcpStream$GT$$GT$$GT$17hcf87fb5582fe692aE.llvm.6325698203083743441 (3,009,027 samples, 1.09%)<tokio::io::poll_evented::PollEvented<E> as core::ops::drop::Drop>::drop (3,009,027 samples, 1.09%)epoll_ctl (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)_ZN16jsonrpsee_server6server44Server$LT$HttpMiddleware$C$RpcMiddleware$GT$11start_inner28_$u7b$$u7b$closure$u7d$$u7d$17h1250bc494faccf83E.llvm.6325698203083743441 (3,009,027 samples, 1.09%)jsonrpsee_server::server::try_accept_conn::_{{closure}} (3,009,027 samples, 1.09%)_ZN5tokio3net3tcp8listener11TcpListener6accept28_$u7b$$u7b$closure$u7d$$u7d$17hfc8368bcf3793592E.llvm.905805775822348456 (3,009,027 samples, 1.09%)accept4 (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[libc.so.6] (83,249,747 samples, 30.29%)[libc.so.6][libc.so.6] (83,249,747 samples, 30.29%)[libc.so.6]std::sys::pal::unix::thread::Thread::new::thread_start (81,243,729 samples, 29.56%)std::sys::pal::unix::thread::Thread::new::thread..core::ops::function::FnOnce::call_once{{vtable.shim}} (81,243,729 samples, 29.56%)core::ops::function::FnOnce::call_once{{vtable.s..std::sys::backtrace::__rust_begin_short_backtrace (81,243,729 samples, 29.56%)std::sys::backtrace::__rust_begin_short_backtracetokio::runtime::blocking::pool::Inner::run (81,243,729 samples, 29.56%)tokio::runtime::blocking::pool::Inner::runtokio::runtime::task::harness::Harness<T,S>::poll (79,237,711 samples, 28.83%)tokio::runtime::task::harness::Harness<T,S>::p..tokio::runtime::task::core::Core<T,S>::poll (79,237,711 samples, 28.83%)tokio::runtime::task::core::Core<T,S>::poll<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll (79,237,711 samples, 28.83%)<tokio::runtime::blocking::task::BlockingTask<..tokio::runtime::scheduler::multi_thread::worker::run (57,171,513 samples, 20.80%)tokio::runtime::scheduler::multi_..tokio::runtime::context::runtime::enter_runtime (57,171,513 samples, 20.80%)tokio::runtime::context::runtime:..tokio::runtime::scheduler::multi_thread::worker::Context::run (57,171,513 samples, 20.80%)tokio::runtime::scheduler::multi_..tokio::runtime::scheduler::multi_thread::worker::Context::run_task (32,096,288 samples, 11.68%)tokio::runtime::s..tokio::runtime::task::raw::poll (21,063,189 samples, 7.66%)tokio::run..tokio::runtime::task::core::Core<T,S>::poll (15,045,135 samples, 5.47%)tokio::.._ZN17reth_engine_local5miner40LocalMiner$LT$EngineT$C$Provider$C$B$GT$3run28_$u7b$$u7b$closure$u7d$$u7d$17hdc6f8a2c46d2103dE.llvm.6325698203083743441 (1,003,009 samples, 0.36%)<core::future::poll_fn::PollFn<F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<jsonrpsee_server::utils::TowerToHyperServiceFuture<S,R> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<tower::util::either::Either<A,B> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)_ZN177_$LT$reth_rpc_layer..compression_layer..CompressionService$LT$S$GT$$u20$as$u20$tower_service..Service$LT$http..request..Request$LT$jsonrpsee_core..http_helpers..Body$GT$$GT$$GT$4call28_$u7b$$u7b$closure$u7d$$u7d$17h17b345a84b485c53E.llvm.12732622006199615693 (1,003,009 samples, 0.36%)_rjem_je_malloc_default (1,003,009 samples, 0.36%)_rjem_je_te_event_trigger (1,003,009 samples, 0.36%)_rjem_je_tcache_gc_event_handler (1,003,009 samples, 0.36%)tcache_gc_small (1,003,009 samples, 0.36%)_rjem_je_tcache_bin_flush_small (1,003,009 samples, 0.36%)_rjem_je_arena_slab_dalloc (1,003,009 samples, 0.36%)_rjem_je_pa_dalloc (1,003,009 samples, 0.36%)_rjem_je_emap_deregister_interior (1,003,009 samples, 0.36%)<hyper_util::server::conn::auto::UpgradeableConnection<I,S,E> as core::future::future::Future>::poll (3,009,027 samples, 1.09%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_head (2,006,018 samples, 0.73%)hyper::proto::h1::io::Buffered<T,B>::parse (2,006,018 samples, 0.73%)hyper::proto::h1::role::parse_headers (2,006,018 samples, 0.73%)<hyper::proto::h1::role::Server as hyper::proto::h1::Http1Transaction>::parse (2,006,018 samples, 0.73%)http::header::name::HeaderName::from_bytes (1,003,009 samples, 0.36%)http::header::name::parse_hdr (1,003,009 samples, 0.36%)core::ptr::drop_in_place<reth_rpc_builder::metrics::RpcRequestMetricsService<jsonrpsee_server::middleware::rpc::layer::rpc_service::RpcService>> (1,003,009 samples, 0.36%)<http_body_util::limited::Limited<B> as http_body::Body>::poll_frame (2,006,018 samples, 0.73%)_ZN93_$LT$http_body_util..combinators..map_err..MapErr$LT$B$C$F$GT$$u20$as$u20$http_body..Body$GT$10poll_frame17hfee23e936a3a3af6E.llvm.12001642851839036941 (2,006,018 samples, 0.73%)_ZN93_$LT$http_body_util..combinators..map_err..MapErr$LT$B$C$F$GT$$u20$as$u20$http_body..Body$GT$10poll_frame17h385671a4de32e41eE.llvm.12001642851839036941 (2,006,018 samples, 0.73%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (2,006,018 samples, 0.73%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (2,006,018 samples, 0.73%)_ZN15futures_channel4mpsc17Receiver$LT$T$GT$12next_message17h3cc6e552f12dd691E.llvm.4115903468384367700 (2,006,018 samples, 0.73%)futures_channel::mpsc::queue::Queue<T>::pop_spin (1,003,009 samples, 0.36%)jsonrpsee_core::http_helpers::read_body::_{{closure}} (3,009,027 samples, 1.09%)_rjem_je_malloc_default (1,003,009 samples, 0.36%)_rjem_je_tcache_alloc_small_hard (1,003,009 samples, 0.36%)_rjem_je_arena_cache_bin_fill_small (1,003,009 samples, 0.36%)arena_slab_alloc (1,003,009 samples, 0.36%)_rjem_je_pa_alloc (1,003,009 samples, 0.36%)pac_alloc_impl (1,003,009 samples, 0.36%)pac_alloc_real (1,003,009 samples, 0.36%)_rjem_je_ecache_alloc (1,003,009 samples, 0.36%)extent_recycle (1,003,009 samples, 0.36%)extent_split_interior.constprop.0 (1,003,009 samples, 0.36%)extent_split_impl.constprop.0 (1,003,009 samples, 0.36%)_rjem_je_base_alloc_edata (1,003,009 samples, 0.36%)base_alloc_impl (1,003,009 samples, 0.36%)base_extent_bump_alloc_post (1,003,009 samples, 0.36%)jsonrpsee_core::server::method_response::MethodResponse::into_result (1,003,009 samples, 0.36%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (1,003,009 samples, 0.36%)core::ptr::drop_in_place<jsonrpsee_server::future::ConnectionGuard> (1,003,009 samples, 0.36%)<hashbrown::map::HashMap<K,V,S,A> as core::clone::Clone>::clone (1,003,009 samples, 0.36%)_ZN643_$LT$T$u20$as$u20$reth_rpc_eth_api..core..EthApiServer$LT$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..TransactionResponse$C$alloy_rpc_types_eth..block..Block$LT$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..TransactionResponse$C$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..HeaderResponse$GT$$C$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..ReceiptResponse$GT$$GT$17transaction_count28_$u7b$$u7b$closure$u7d$$u7d$17h563b764548d20dafE.llvm.438779863700274100 (1,003,009 samples, 0.36%)reth_rpc_eth_api::helpers::state::LoadState::transaction_count (1,003,009 samples, 0.36%)_ZN10reth_tasks12TaskExecutor13spawn_task_as17heb80c8e346649bb1E.llvm.3640934217245567238 (1,003,009 samples, 0.36%)tokio::runtime::blocking::pool::Spawner::spawn_blocking (1,003,009 samples, 0.36%)tokio::runtime::blocking::pool::Spawner::spawn_task (1,003,009 samples, 0.36%)syscall (1,003,009 samples, 0.36%)reth_primitives::transaction::pooled::PooledTransactionsElement::signature_hash (1,003,009 samples, 0.36%)tiny_keccak::KeccakState<P>::squeeze (1,003,009 samples, 0.36%)tiny_keccak::keccakf::keccakf (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_ecdsa_recover (1,003,009 samples, 0.36%)_ZN643_$LT$T$u20$as$u20$reth_rpc_eth_api..core..EthApiServer$LT$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..TransactionResponse$C$alloy_rpc_types_eth..block..Block$LT$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..TransactionResponse$C$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..HeaderResponse$GT$$C$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..ReceiptResponse$GT$$GT$20send_raw_transaction28_$u7b$$u7b$closure$u7d$$u7d$17h4c032d432beb1781E.llvm.438779863700274100 (3,009,027 samples, 1.09%)reth_rpc_eth_types::utils::recover_raw_transaction (3,009,027 samples, 1.09%)reth_primitives::transaction::pooled::PooledTransactionsElement::try_into_ecrecovered (3,009,027 samples, 1.09%)reth_primitives::transaction::signature::recover_signer_unchecked (2,006,018 samples, 0.73%)reth_primitives::transaction::util::impl_secp256k1::recover_signer_unchecked (2,006,018 samples, 0.73%)tiny_keccak::KeccakState<P>::squeeze (1,003,009 samples, 0.36%)tiny_keccak::keccakf::keccakf (1,003,009 samples, 0.36%)jsonrpsee_core::server::method_response::MethodResponse::response (1,003,009 samples, 0.36%)<jsonrpsee_types::response::Response<T> as serde::ser::Serialize>::serialize (1,003,009 samples, 0.36%)_ZN86_$LT$serde_json..ser..Compound$LT$W$C$F$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hc1f3aa9532feee81E.llvm.9628542176372663265 (1,003,009 samples, 0.36%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1,003,009 samples, 0.36%)jsonrpsee_types::params::ParamsSequence::next (2,006,018 samples, 0.73%)_ZN16alloy_primitives6bytes_5serde84_$LT$impl$u20$serde..de..Deserialize$u20$for$u20$alloy_primitives..bytes_..Bytes$GT$11deserialize17h1f2d650c3a2633b5E.llvm.7291770557919418192 (2,006,018 samples, 0.73%)const_hex::decode::decode_inner (1,003,009 samples, 0.36%)<reth_rpc_builder::metrics::MeteredRequestFuture<F> as core::future::future::Future>::poll (10,030,090 samples, 3.65%)<ret..jsonrpsee_core::server::rpc_module::RpcModule<Context>::register_async_method::_{{closure}}::_{{closure}} (10,030,090 samples, 3.65%)json..jsonrpsee_types::params::ParamsSequence::optional_next (1,003,009 samples, 0.36%)<reth_rpc_builder::metrics::RpcRequestMetricsService<S> as jsonrpsee_server::middleware::rpc::RpcServiceT>::call (1,003,009 samples, 0.36%)<jsonrpsee_server::middleware::rpc::layer::rpc_service::RpcService as jsonrpsee_server::middleware::rpc::RpcServiceT>::call (1,003,009 samples, 0.36%)_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$9get_inner17hb34623f3db45bb0cE.llvm.575225172433560976 (1,003,009 samples, 0.36%)<tower_http::compression::future::ResponseFuture<F,P> as core::future::future::Future>::poll (19,057,171 samples, 6.93%)<tower_ht..<jsonrpsee_server::server::TowerServiceNoHttp<RpcMiddleware> as tower_service::Service<http::request::Request<Body>>>::call::_{{closure}} (19,057,171 samples, 6.93%)<jsonrpse..jsonrpsee_server::server::handle_rpc_call::_{{closure}} (13,039,117 samples, 4.74%)jsonrp..jsonrpsee_server::utils::deserialize::from_slice_with_extensions (2,006,018 samples, 0.73%)serde_json::de::from_trait (2,006,018 samples, 0.73%)<&mut serde_json::de::Deserializer<R> as serde::de::Deserializer>::deserialize_struct (2,006,018 samples, 0.73%)serde::de::impls::<impl serde::de::Deserialize for core::option::Option<T>>::deserialize (2,006,018 samples, 0.73%)_ZN10serde_json2de21Deserializer$LT$R$GT$12ignore_value17h8290a05674bb52f0E.llvm.15521527588601657747 (1,003,009 samples, 0.36%)reth_transaction_pool::pool::txpool::TxPool<T>::add_transaction_to_subpool (2,006,018 samples, 0.73%)_ZN643_$LT$T$u20$as$u20$reth_rpc_eth_api..core..EthApiServer$LT$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..TransactionResponse$C$alloy_rpc_types_eth..block..Block$LT$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..TransactionResponse$C$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..HeaderResponse$GT$$C$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..ReceiptResponse$GT$$GT$20send_raw_transaction28_$u7b$$u7b$closure$u7d$$u7d$17h4c032d432beb1781E.llvm.438779863700274100 (4,012,036 samples, 1.46%)<reth_transaction_pool::Pool<V,T,S> as reth_transaction_pool::traits::TransactionPool>::add_transaction::_{{closure}} (4,012,036 samples, 1.46%)reth_transaction_pool::pool::PoolInner<V,T,S>::add_transactions (4,012,036 samples, 1.46%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (4,012,036 samples, 1.46%)reth_transaction_pool::pool::PoolInner<V,T,S>::add_transaction (3,009,027 samples, 1.09%)reth_transaction_pool::pool::txpool::TxPool<T>::add_transaction (3,009,027 samples, 1.09%)reth_transaction_pool::pool::txpool::TxPool<T>::update_size_metrics (1,003,009 samples, 0.36%)<metrics_util::registry::recency::Generational<T> as metrics::handles::GaugeFn>::set (1,003,009 samples, 0.36%)reth_transaction_pool::pool::PoolInner<V,T,S>::add_transactions (1,003,009 samples, 0.36%)reth_transaction_pool::pool::PoolInner<V,T,S>::discard_worst (1,003,009 samples, 0.36%)reth_transaction_pool::pool::PoolInner<V,T,S>::delete_discarded_blobs (1,003,009 samples, 0.36%)<reth_transaction_pool::blobstore::disk::DiskFileBlobStore as reth_transaction_pool::blobstore::BlobStore>::delete_all (1,003,009 samples, 0.36%)core::iter::traits::iterator::Iterator::partition (1,003,009 samples, 0.36%)<reth_transaction_pool::Pool<V,T,S> as reth_transaction_pool::traits::TransactionPool>::add_transaction::_{{closure}} (2,006,018 samples, 0.73%)reth_transaction_pool::validate::task::ValidationJobSender::send::_{{closure}} (1,003,009 samples, 0.36%)_ZN5tokio7runtime4park4wake17he4ba08c2e829f32cE.llvm.472134555349281347 (1,003,009 samples, 0.36%)parking_lot::condvar::Condvar::notify_one_slow (1,003,009 samples, 0.36%)syscall (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (7,021,063 samples, 2.55%)ru..rustsecp256k1_v0_10_0_fe_sqr_inner (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_mul_inner (5,015,045 samples, 1.82%)r..rustsecp256k1_v0_10_0_gej_add_ge_var (8,024,072 samples, 2.92%)ru..rustsecp256k1_v0_10_0_fe_sqr_inner (2,006,018 samples, 0.73%)rustsecp256k1_v0_10_0_fe_mul_inner (3,009,027 samples, 1.09%)rustsecp256k1_v0_10_0_ecmult_strauss_wnaf.constprop.0 (29,087,261 samples, 10.58%)rustsecp256k1_v..rustsecp256k1_v0_10_0_gej_add_zinv_var (4,012,036 samples, 1.46%)rustsecp256k1_v0_10_0_fe_sqr_inner (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_ge_set_gej_var (3,009,027 samples, 1.09%)rustsecp256k1_v0_10_0_fe_impl_inv_var (3,009,027 samples, 1.09%)rustsecp256k1_v0_10_0_ge_set_xo_var (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_fe_sqrt (1,003,009 samples, 0.36%)rustsecp256k1_v0_10_0_scalar_get_b32 (1,003,009 samples, 0.36%)jsonrpsee_core::server::rpc_module::RpcModule<Context>::register_async_method::_{{closure}}::_{{closure}} (37,111,333 samples, 13.50%)jsonrpsee_core::serv.._ZN643_$LT$T$u20$as$u20$reth_rpc_eth_api..core..EthApiServer$LT$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..TransactionResponse$C$alloy_rpc_types_eth..block..Block$LT$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..TransactionResponse$C$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..HeaderResponse$GT$$C$$LT$$LT$T$u20$as$u20$reth_rpc_eth_api..types..EthApiTypes$GT$..NetworkTypes$u20$as$u20$alloy_network..Network$GT$..ReceiptResponse$GT$$GT$20send_raw_transaction28_$u7b$$u7b$closure$u7d$$u7d$17h4c032d432beb1781E.llvm.438779863700274100 (37,111,333 samples, 13.50%)_ZN643_$LT$T$u20$as$..reth_rpc_eth_types::utils::recover_raw_transaction (35,105,315 samples, 12.77%)reth_rpc_eth_types:..reth_primitives::transaction::pooled::PooledTransactionsElement::try_into_ecrecovered (35,105,315 samples, 12.77%)reth_primitives::tr..reth_primitives::transaction::signature::recover_signer_unchecked (35,105,315 samples, 12.77%)reth_primitives::tr..reth_primitives::transaction::util::impl_secp256k1::recover_signer_unchecked (35,105,315 samples, 12.77%)reth_primitives::tr..rustsecp256k1_v0_10_0_ecdsa_recover (35,105,315 samples, 12.77%)rustsecp256k1_v0_10..rustsecp256k1_v0_10_0_ecdsa_sig_recover (35,105,315 samples, 12.77%)rustsecp256k1_v0_10..rustsecp256k1_v0_10_0_scalar_inverse_var (1,003,009 samples, 0.36%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (1,003,009 samples, 0.36%)alloy_trie::hash_builder::HashBuilder::add_leaf (2,006,018 samples, 0.73%)_ZN10alloy_trie12hash_builder11HashBuilder6update17h55f230d2209f9656E.llvm.16336768008158044780 (2,006,018 samples, 0.73%)tiny_keccak::KeccakState<P>::squeeze (1,003,009 samples, 0.36%)tiny_keccak::keccakf::keccakf (1,003,009 samples, 0.36%)<reth_chain_state::memory_overlay::MemoryOverlayStateProvider<N> as reth_storage_api::trie::StateRootProvider>::state_root_with_updates (3,009,027 samples, 1.09%)<reth_provider::providers::state::latest::LatestStateProvider<Provider> as reth_storage_api::trie::StateRootProvider>::state_root_from_nodes_with_updates (3,009,027 samples, 1.09%)<reth_trie::trie::StateRoot<reth_trie_db::trie_cursor::DatabaseTrieCursorFactory<TX>,reth_trie_db::hashed_cursor::DatabaseHashedCursorFactory<TX>> as reth_trie_db::state::DatabaseStateRoot<TX>>::overlay_root_from_nodes_with_updates (3,009,027 samples, 1.09%)reth_trie::trie::StateRoot<T,H>::calculate (3,009,027 samples, 1.09%)reth_trie::trie::StorageRoot<T,H>::calculate (1,003,009 samples, 0.36%)<reth_trie::hashed_cursor::post_state::HashedPostStateCursorFactory<CF> as reth_trie::hashed_cursor::HashedCursorFactory>::hashed_storage_cursor (1,003,009 samples, 0.36%)_ZN7reth_db14implementation4mdbx2tx11Tx$LT$K$GT$10new_cursor17hd3f6fda417c9c402E.llvm.9863100019090468457 (1,003,009 samples, 0.36%)reth_libmdbx::cursor::Cursor<K>::new (1,003,009 samples, 0.36%)mdbx_cursor_open (1,003,009 samples, 0.36%)mdbx_cursor_bind (1,003,009 samples, 0.36%)cursor_init (1,003,009 samples, 0.36%)cursor_xinit0 (1,003,009 samples, 0.36%)reth_primitives::receipt::Receipts<T>::root_slow (1,003,009 samples, 0.36%)alloy_trie::root::ordered_trie_root_with_encoder (1,003,009 samples, 0.36%)alloy_trie::hash_builder::HashBuilder::add_leaf (1,003,009 samples, 0.36%)_ZN10alloy_trie12hash_builder11HashBuilder6update17h55f230d2209f9656E.llvm.16336768008158044780 (1,003,009 samples, 0.36%)tiny_keccak::KeccakState<P>::squeeze (1,003,009 samples, 0.36%)tiny_keccak::keccakf::keccakf (1,003,009 samples, 0.36%)revm::db::states::cache::CacheState::apply_evm_state (1,003,009 samples, 0.36%)reth_ethereum_payload_builder::default_ethereum_payload (6,018,054 samples, 2.19%)r..revm::evm::Evm<EXT,DB>::transact (1,003,009 samples, 0.36%)revm::evm::Evm<EXT,DB>::transact_preverified_inner (1,003,009 samples, 0.36%)core::ops::function::Fn::call (1,003,009 samples, 0.36%)revm::handler::mainnet::pre_execution::deduct_caller_inner (1,003,009 samples, 0.36%)tokio::runtime::task::core::Core<T,S>::poll (1,003,009 samples, 0.36%)_ZN16jsonrpsee_server6server18process_connection28_$u7b$$u7b$closure$u7d$$u7d$17h114cbc50ca9fe822E.llvm.6325698203083743441 (1,003,009 samples, 0.36%)<hyper_util::server::conn::auto::UpgradeableConnection<I,S,E> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_head (1,003,009 samples, 0.36%)hyper::proto::h1::io::Buffered<T,B>::parse (1,003,009 samples, 0.36%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (1,003,009 samples, 0.36%)bytes::bytes_mut::BytesMut::reserve_inner (1,003,009 samples, 0.36%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1,003,009 samples, 0.36%)_ZN5alloc7raw_vec11finish_grow17hf67c452e342585cdE.llvm.1341633655988347409 (1,003,009 samples, 0.36%)do_rallocx (1,003,009 samples, 0.36%)_rjem_je_arena_ralloc (1,003,009 samples, 0.36%)[libc.so.6] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)_ZN10reth_tasks12TaskExecutor17spawn_critical_as28_$u7b$$u7b$closure$u7d$$u7d$17h78d1039c30b3cab2E.llvm.6325698203083743441 (1,003,009 samples, 0.36%)<futures_util::future::select::Select<A,B> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<tracing_futures::Instrumented<T> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)<reth_network::transactions::TransactionsManager<Pool,N> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)reth_network::transactions::TransactionsManager<Pool,N>::on_new_pending_transactions (1,003,009 samples, 0.36%)reth_network::transactions::TransactionsManager<Pool,N>::propagate_all (1,003,009 samples, 0.36%)<hyper_util::server::conn::auto::ReadVersion<I> as core::future::future::Future>::poll (2,006,018 samples, 0.73%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (2,006,018 samples, 0.73%)tokio::io::poll_evented::PollEvented<E>::poll_read (2,006,018 samples, 0.73%)recv (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (2,006,018 samples, 0.73%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)<jsonrpsee_server::utils::TowerToHyperServiceFuture<S,R> as core::future::future::Future>::poll (1,003,009 samples, 0.36%)_ZN4core3ptr2161drop_in_place$LT$tower..util..oneshot..State$LT$tower..util..either..Either$LT$tower_http..cors..Cors$LT$tower..util..either..Either$LT$reth_rpc_layer..auth_layer..AuthService$LT$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$reth_rpc_layer..jwt_validator..JwtAuthValidator$GT$$C$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$GT$$GT$$C$tower..util..either..Either$LT$reth_rpc_layer..auth_layer..AuthService$LT$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$reth_rpc_layer..jwt_validator..JwtAuthValidator$GT$$C$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$GT$$GT$$C$http..request..Request$LT$jsonrpsee_core..http_helpers..Body$GT$$GT$$GT$17hd718d6695c58f3c8E (1,003,009 samples, 0.36%)_ZN4core3ptr1006drop_in_place$LT$tower..util..either..Either$LT$reth_rpc_layer..auth_layer..AuthService$LT$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$reth_rpc_layer..jwt_validator..JwtAuthValidator$GT$$C$tower..util..either..Either$LT$reth_rpc_layer..compression_layer..CompressionService$LT$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$C$jsonrpsee_server..server..TowerServiceNoHttp$LT$tower_layer..stack..Stack$LT$reth_rpc_builder..metrics..RpcRequestMetrics$C$tower_layer..identity..Identity$GT$$GT$$GT$$GT$$GT$17hcbdd05f03e3530e5E (1,003,009 samples, 0.36%)_ZN93_$LT$http_body_util..combinators..map_err..MapErr$LT$B$C$F$GT$$u20$as$u20$http_body..Body$GT$13is_end_stream17h849bac588eae8af5E.llvm.12001642851839036941 (1,003,009 samples, 0.36%)hyper::proto::h1::conn::Conn<I,B,T>::poll_flush (15,045,135 samples, 5.47%)hyper::..hyper::proto::h1::io::Buffered<T,B>::poll_flush (15,045,135 samples, 5.47%)hyper::..tokio::runtime::io::registration::Registration::poll_io (14,042,126 samples, 5.11%)tokio:..writev (14,042,126 samples, 5.11%)writev[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (14,042,126 samples, 5.11%)[unkno..[unknown] (13,039,117 samples, 4.74%)[unkno..[unknown] (13,039,117 samples, 4.74%)[unkno..[unknown] (13,039,117 samples, 4.74%)[unkno..[unknown] (13,039,117 samples, 4.74%)[unkno..[unknown] (13,039,117 samples, 4.74%)[unkno..[unknown] (12,036,108 samples, 4.38%)[unkn..[unknown] (12,036,108 samples, 4.38%)[unkn..[unknown] (12,036,108 samples, 4.38%)[unkn..[unknown] (12,036,108 samples, 4.38%)[unkn..[unknown] (12,036,108 samples, 4.38%)[unkn..[unknown] (12,036,108 samples, 4.38%)[unkn..[unknown] (12,036,108 samples, 4.38%)[unkn..[unknown] (11,033,099 samples, 4.01%)[unk..[unknown] (11,033,099 samples, 4.01%)[unk..[unknown] (11,033,099 samples, 4.01%)[unk..[unknown] (11,033,099 samples, 4.01%)[unk..[unknown] (11,033,099 samples, 4.01%)[unk..[unknown] (11,033,099 samples, 4.01%)[unk..[unknown] (10,030,090 samples, 3.65%)[unk..[unknown] (10,030,090 samples, 3.65%)[unk..[unknown] (9,027,081 samples, 3.28%)[un..[unknown] (9,027,081 samples, 3.28%)[un..[unknown] (6,018,054 samples, 2.19%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (5,015,045 samples, 1.82%)[..[unknown] (4,012,036 samples, 1.46%)[unknown] (4,012,036 samples, 1.46%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)recv (4,012,036 samples, 1.46%)[unknown] (4,012,036 samples, 1.46%)[unknown] (4,012,036 samples, 1.46%)[unknown] (4,012,036 samples, 1.46%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_head (6,018,054 samples, 2.19%)h..hyper::proto::h1::io::Buffered<T,B>::parse (6,018,054 samples, 2.19%)h..hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (6,018,054 samples, 2.19%)h..<hyper_util::common::rewind::Rewind<T> as hyper::rt::io::Read>::poll_read (6,018,054 samples, 2.19%)<..<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (6,018,054 samples, 2.19%)<..tokio::io::poll_evented::PollEvented<E>::poll_read (6,018,054 samples, 2.19%)t..tokio::runtime::io::registration::Registration::poll_ready (1,003,009 samples, 0.36%)hyper::proto::h1::conn::Conn<I,B,T>::poll_shutdown (3,009,027 samples, 1.09%)shutdown (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (3,009,027 samples, 1.09%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (105,315,945 samples, 38.32%)[unknown]tokio::runtime::task::raw::poll (35,105,315 samples, 12.77%)tokio::runtime::tas..tokio::runtime::task::core::Core<T,S>::poll (35,105,315 samples, 12.77%)tokio::runtime::tas.._ZN16jsonrpsee_server6server18process_connection28_$u7b$$u7b$closure$u7d$$u7d$17h114cbc50ca9fe822E.llvm.6325698203083743441 (34,102,306 samples, 12.41%)_ZN16jsonrpsee_serv..<hyper_util::server::conn::auto::UpgradeableConnection<I,S,E> as core::future::future::Future>::poll (34,102,306 samples, 12.41%)<hyper_util::server..hyper::proto::h1::conn::Conn<I,B,T>::write_head (1,003,009 samples, 0.36%)tokio-runtime-w (189,568,701 samples, 68.98%)tokio-runtime-wbase_alloc_impl (1,003,009 samples, 0.36%)_rjem_je_edata_heap_remove_first (1,003,009 samples, 0.36%)_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$9flush_buf17h5b43b2f3e9d41c6fE.llvm.6717257651735023684 (1,003,009 samples, 0.36%)write (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)_rjem_sdallocx (1,003,009 samples, 0.36%)all (274,824,466 samples, 100%)tracing-appende (4,012,036 samples, 1.46%)[libc.so.6] (4,012,036 samples, 1.46%)[libc.so.6] (4,012,036 samples, 1.46%)std::sys::pal::unix::thread::Thread::new::thread_start (4,012,036 samples, 1.46%)core::ops::function::FnOnce::call_once{{vtable.shim}} (4,012,036 samples, 1.46%)std::sys::backtrace::__rust_begin_short_backtrace (4,012,036 samples, 1.46%)tracing_appender::worker::Worker<T>::work (4,012,036 samples, 1.46%)crossbeam_channel::channel::Receiver<T>::recv (2,006,018 samples, 0.73%)__sched_yield (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%)[unknown] (1,003,009 samples, 0.36%) \ No newline at end of file From 3ff306380842fc098ce1ab66d179025ecf5af1de Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Fri, 6 Dec 2024 13:19:27 -0300 Subject: [PATCH 29/80] Measure load test time more accurately --- .github/scripts/flamegraph_watcher.sh | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index 3f48ddac6c..22d1b11ada 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -4,18 +4,23 @@ # then polls the account balance until the expected balance has been reached # and then kills the process. It also measures the elapsed time of the test and # outputs it to Github Action's outputs. -SECONDS=0 - iterations=1000 -value=10000000 +value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((172 * $iterations * $value)) ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_keys.txt -i $iterations -v --value $value --to $account output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) -while [[ $output -le $end_val ]]; do +while [[ $output -lt 1 ]]; do + sleep 5 + echo "Balance is $output" + output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) +done +SECONDS=0 # Server is online since balance started, so start measuring time +while [[ $output -lt $end_val ]]; do sleep 5 + echo "Balance is $output waiting for it to reach $end_val" output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) done elapsed=$SECONDS From 19e8b7809c8e848b294f041222c98c3afda8d545 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Fri, 6 Dec 2024 16:18:02 -0300 Subject: [PATCH 30/80] Fix local script --- flamegraph.sh | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/flamegraph.sh b/flamegraph.sh index cb853f1c00..8726ad1dff 100644 --- a/flamegraph.sh +++ b/flamegraph.sh @@ -1,13 +1,31 @@ #!/bin/bash -output=$(cast balance 0xFCbaC0713ACf16708aB6BC977227041FA1BC618D --rpc-url=http://localhost:1729 2>&1) -end_val=$((172 * 1000 * 10000000)) -echo "ini $output" -echo "end $end_val" -while [[ $output -le $end_val ]]; do +# This script sends 1000 transactions to a test account, per defined private key +# then polls the account balance until the expected balance has been reached +# and then kills the process. It also measures the elapsed time of the test and +# outputs it to Github Action's outputs. +iterations=1000 +value=1 +account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd +end_val=$((172 * $iterations * $value)) + +ethrex_l2 test load --path ./test_data/private_keys.txt -i $iterations -v --value $value --to $account + +output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) +while [[ $output -lt 1 ]]; do + sleep 5 + echo "Balance is $output" + output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) +done +SECONDS=0 # Server is online since balance started, so start measuring time +while [[ $output -lt $end_val ]]; do sleep 5 - output=$(cast balance 0xFCbaC0713ACf16708aB6BC977227041FA1BC618D --rpc-url=http://localhost:1729 2>&1) - echo "out $output" + echo "Balance is $output waiting for it to reach $end_val" + output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) done +elapsed=$SECONDS +minutes=$((elapsed / 60)) +seconds=$((elapsed % 60)) +echo "Balance of $output reached in $minutes min $seconds s, killing process" -echo "fin $output" +sudo pkill ethrex && while pgrep -l "cargo-flamegraph"; do echo "waiting for ethrex to exit... "; sleep 1;done; From 91e0b87850513f283782bc8f786199eb81423671 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Fri, 6 Dec 2024 16:18:13 -0300 Subject: [PATCH 31/80] Send direct links to .svg files in Slack --- .github/scripts/publish_link_flamegraphs.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/scripts/publish_link_flamegraphs.sh b/.github/scripts/publish_link_flamegraphs.sh index 20f54d5561..5b9f9f01ed 100644 --- a/.github/scripts/publish_link_flamegraphs.sh +++ b/.github/scripts/publish_link_flamegraphs.sh @@ -14,7 +14,9 @@ curl -XPOST -H "Content-type: application/json" -d '{ "type": "section", "text": { "type": "mrkdwn", - "text": "๐Ÿ”ฅ Flamegraphs are available at **" + "text": "๐Ÿ”ฅ Flamegraphs are available at **\n + โ€ข **\n + โ€ข **\n" } } ] From dbec9c7f393fc497ff14c6e06984a280671d109f Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Fri, 6 Dec 2024 16:48:40 -0300 Subject: [PATCH 32/80] Fix local script "make flamegraph" --- .gitignore | 2 ++ Makefile | 3 ++- flamegraph.sh => scripts/flamegraph.sh | 0 3 files changed, 4 insertions(+), 1 deletion(-) rename flamegraph.sh => scripts/flamegraph.sh (100%) diff --git a/.gitignore b/.gitignore index 3076308ec7..7cdd3a6692 100644 --- a/.gitignore +++ b/.gitignore @@ -53,3 +53,5 @@ loc_report_slack.txt loc_report_github.txt loc_report.json ethrex.redb + +flamegraph.svg diff --git a/Makefile b/Makefile index f292d94eef..cb9789b9b8 100644 --- a/Makefile +++ b/Makefile @@ -107,7 +107,8 @@ loc: cargo run -p loc flamegraph: - sudo -E CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 + sudo -E CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 & + bash scripts/flamegraph.sh test-load: ethrex_l2 test load --path ./test_data/private_keys.txt -i 1000 -v --value 10000000 --to 0xFCbaC0713ACf16708aB6BC977227041FA1BC618D diff --git a/flamegraph.sh b/scripts/flamegraph.sh similarity index 100% rename from flamegraph.sh rename to scripts/flamegraph.sh From a28971fea3b2363e00025468f36ae0d467f6c604 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Tue, 7 Jan 2025 17:34:17 -0300 Subject: [PATCH 33/80] refactor: small improvements add a custom command that gets the balance in ether --- .github/scripts/flamegraph_watcher.sh | 19 ++++-- .github/workflows/flamegraph_reporter.yaml | 12 ++-- cmd/ethrex_l2/src/commands/info.rs | 32 ++++++++- cmd/ethrex_l2/src/commands/wallet.rs | 75 +++++++++++++++++++++- scripts/flamegraph.sh | 6 +- 5 files changed, 124 insertions(+), 20 deletions(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index 22d1b11ada..db114ec26f 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -7,28 +7,33 @@ iterations=1000 value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd +# 172 is the amount of rich accounts in the test_data/private_keys.txt file. end_val=$((172 * $iterations * $value)) -ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_keys.txt -i $iterations -v --value $value --to $account +ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_keys.txt -i $iterations -v --value $value --to $account -output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) +output=$(ethrex_l2 info -b -a $account 2>&1) while [[ $output -lt 1 ]]; do sleep 5 echo "Balance is $output" - output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) + output=$(ethrex_l2 info -b -a $account 2>&1) done SECONDS=0 # Server is online since balance started, so start measuring time -while [[ $output -lt $end_val ]]; do +# bc is used to compare float values +while [ $(echo "$output <= $end_val" | bc -l) -eq 1 ]; do sleep 5 echo "Balance is $output waiting for it to reach $end_val" - output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) + output=$(ethrex_l2 info -b -a $account 2>&1) done elapsed=$SECONDS minutes=$((elapsed / 60)) seconds=$((elapsed % 60)) echo "Balance of $output reached in $minutes min $seconds s, killing process" -sudo pkill "$PROGRAM" && while pgrep -l "cargo-flamegraph"; do echo "waiting for $PROGRAM to exit... "; sleep 1;done; +sudo pkill "$PROGRAM" && while pgrep -l "cargo-flamegraph"; do + echo "waiting for $PROGRAM to exit... " + sleep 1 +done # We need this for the following job, to add to the static page -echo "time=$minutes minutes $seconds seconds" >> "$GITHUB_OUTPUT" +echo "time=$minutes minutes $seconds seconds" >>"$GITHUB_OUTPUT" diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 8bd85b7dc1..a92d2afeae 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -7,9 +7,9 @@ permissions: on: push: - branches: [ "main" ] + branches: ["main"] pull_request: - branches: [ "**" ] + branches: ["**"] workflow_dispatch: env: @@ -125,7 +125,7 @@ jobs: uses: actions/checkout@v4 with: repository: paradigmxyz/reth - path: 'reth' + path: "reth" - id: generate-flamegraph-reth name: Build and test reth @@ -161,7 +161,7 @@ jobs: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} - needs: [ flamegraph-ethrex, flamegraph-reth ] + needs: [flamegraph-ethrex, flamegraph-reth] steps: - name: Checkout sources uses: actions/checkout@v4 @@ -183,7 +183,7 @@ jobs: run: | cp -r flamegraph_ethrex.svg pages/ cp -r flamegraph_reth.svg pages/ - sed -i "s/{{LAST_UPDATE}}/$(date +'%Y-%m-%dT%H:%M:%S')/g" pages/index.html + sed -i "s/{{LAST_UPDATE}}/$(TZ='Etc/GMT+3' date +'%Y-%m-%dT%H:%M:%S')/g" pages/index.html sed -i "s/{{ETHREX_TIME}}/${{ needs.flamegraph-ethrex.outputs.time }}/g" pages/index.html sed -i "s/{{RETH_TIME}}/${{ needs.flamegraph-reth.outputs.time }}/g" pages/index.html @@ -193,7 +193,7 @@ jobs: - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: - path: 'pages/' + path: "pages/" - name: Deploy to GitHub Pages id: deployment diff --git a/cmd/ethrex_l2/src/commands/info.rs b/cmd/ethrex_l2/src/commands/info.rs index 4b19b95786..e9a1e28a9c 100644 --- a/cmd/ethrex_l2/src/commands/info.rs +++ b/cmd/ethrex_l2/src/commands/info.rs @@ -1,6 +1,7 @@ -use crate::config::EthrexL2Config; +use crate::{commands::wallet::balance_in_wei, config::EthrexL2Config}; use clap::Subcommand; use colored::{self, Colorize}; +use ethrex_core::Address; use ethrex_l2::utils::eth_client::EthClient; use keccak_hash::H256; use std::str::FromStr; @@ -12,7 +13,7 @@ pub(crate) enum Command { short_flag = 'l' )] LatestBlocks, - #[clap(about = "Get the current block_number.", short_flag = 'b')] + #[clap(about = "Get the current block_number.", alias = "bl")] BlockNumber { #[arg(long = "l2", required = false)] l2: bool, @@ -28,6 +29,17 @@ pub(crate) enum Command { #[arg(short = 'h', required = true)] tx_hash: String, }, + #[clap(about = "Get the account's balance info.", short_flag = 'b')] + Balance { + #[arg(long = "l2", required = false)] + l2: bool, + #[arg(long = "l1", required = false)] + l1: bool, + #[arg(short = 'a', required = true)] + account: Address, + #[arg(long = "wei", required = false, default_value_t = false)] + wei: bool, + }, } impl Command { @@ -89,6 +101,22 @@ impl Command { println!("[L1]:\n{tx}"); } } + + Command::Balance { + l2, + l1, + wei, + account, + } => { + if !l1 || l2 { + let account_balance = rollup_client.get_balance(account).await?; + println!("{}", balance_in_wei(wei, account_balance)); + } + if l1 { + let account_balance = eth_client.get_balance(account).await?; + println!("{}", balance_in_wei(wei, account_balance)); + } + } } Ok(()) } diff --git a/cmd/ethrex_l2/src/commands/wallet.rs b/cmd/ethrex_l2/src/commands/wallet.rs index e5487e18c5..4eaa99bb1c 100644 --- a/cmd/ethrex_l2/src/commands/wallet.rs +++ b/cmd/ethrex_l2/src/commands/wallet.rs @@ -25,6 +25,8 @@ pub(crate) enum Command { l2: bool, #[arg(long = "l1", required = false)] l1: bool, + #[arg(long = "wei", required = false, default_value_t = false)] + wei: bool, }, #[clap(about = "Deposit funds into some wallet.")] Deposit { @@ -266,17 +268,24 @@ impl Command { token_address, l2, l1, + wei, } => { if token_address.is_some() { todo!("Handle ERC20 balances") } if !l1 || l2 { let account_balance = rollup_client.get_balance(from).await?; - println!("[L2] Account balance: {account_balance}"); + println!( + "[L2] Account balance: {}", + balance_in_wei(wei, account_balance) + ); } if l1 { let account_balance = eth_client.get_balance(from).await?; - println!("[L1] Account balance: {account_balance}"); + println!( + "[L1] Account balance: {}", + balance_in_wei(wei, account_balance) + ); } } Command::Deposit { @@ -599,3 +608,65 @@ pub async fn wait_for_transaction_receipt(client: &EthClient, tx_hash: H256) -> println!("Transaction confirmed"); Ok(()) } + +pub fn balance_in_wei(wei: bool, balance: U256) -> String { + if wei { + format!("{balance}") + } else { + let mut balance = format!("{balance}"); + let len = balance.len(); + + balance = match len { + 18 => { + let mut front = "0.".to_owned(); + front.push_str(&balance); + front + } + 0..=17 => { + let mut front = "0.".to_owned(); + let zeros = "0".repeat(18 - len); + front.push_str(&zeros); + front.push_str(&balance); + front + } + 19.. => { + balance.insert(len - 18, '.'); + balance + } + }; + balance + } +} + +#[test] +fn test_balance_in_ether() { + // test more than 1 ether + assert_eq!( + "999999999.999003869993631450", + balance_in_wei( + false, + U256::from_dec_str("999999999999003869993631450").unwrap() + ) + ); + + // test 0.5 + assert_eq!( + "0.509003869993631450", + balance_in_wei( + false, + U256::from_dec_str("000000000509003869993631450").unwrap() + ) + ); + + // test 0.005 + assert_eq!( + "0.005090038699936314", + balance_in_wei( + false, + U256::from_dec_str("000000000005090038699936314").unwrap() + ) + ); + + // test 0.0 + assert_eq!("0.000000000000000000", balance_in_wei(false, U256::zero())); +} diff --git a/scripts/flamegraph.sh b/scripts/flamegraph.sh index 8726ad1dff..94f9a785d6 100644 --- a/scripts/flamegraph.sh +++ b/scripts/flamegraph.sh @@ -11,17 +11,17 @@ end_val=$((172 * $iterations * $value)) ethrex_l2 test load --path ./test_data/private_keys.txt -i $iterations -v --value $value --to $account -output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) +output=$(ethrex_l2 info -b -a $account 2>&1) while [[ $output -lt 1 ]]; do sleep 5 echo "Balance is $output" - output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) + output=$(ethrex_l2 info -b -a $account 2>&1) done SECONDS=0 # Server is online since balance started, so start measuring time while [[ $output -lt $end_val ]]; do sleep 5 echo "Balance is $output waiting for it to reach $end_val" - output=$(cast balance $account --rpc-url=http://localhost:1729 2>&1) + output=$(ethrex_l2 info -b -a $account 2>&1) done elapsed=$SECONDS minutes=$((elapsed / 60)) From f55c741dd2b8d6083358b2e53bf67314ec082528 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Tue, 7 Jan 2025 17:52:08 -0300 Subject: [PATCH 34/80] rm: unneeded step in ci --- .github/workflows/flamegraph_reporter.yaml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index a92d2afeae..7e85d47a9d 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -46,9 +46,6 @@ jobs: cargo install flamegraph cargo install inferno - - name: Install Foundry - uses: foundry-rs/foundry-toolchain@v1 - - name: Install ethrex_l2 cli run: | cargo install --path cmd/ethrex_l2 @@ -112,9 +109,6 @@ jobs: cargo install flamegraph cargo install inferno - - name: Install Foundry - uses: foundry-rs/foundry-toolchain@v1 - - name: Install ethrex_l2 cli run: | cargo install --path cmd/ethrex_l2 From 9e54c2eba696a6fe1f773c0c5f9fab710d766f26 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Wed, 8 Jan 2025 12:16:35 -0300 Subject: [PATCH 35/80] fix: bash scripts duration time --- .github/scripts/flamegraph_watcher.sh | 20 ++++---------------- cmd/ethrex_l2/src/commands/test.rs | 2 -- scripts/flamegraph.sh | 25 +++++++++---------------- test_data/private_keys.txt | 1 - 4 files changed, 13 insertions(+), 35 deletions(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index db114ec26f..45dbcac86e 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -7,27 +7,15 @@ iterations=1000 value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd -# 172 is the amount of rich accounts in the test_data/private_keys.txt file. -end_val=$((172 * $iterations * $value)) +start_time=$(date +%s) ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_keys.txt -i $iterations -v --value $value --to $account +end_time=$(date +%s) +elapsed=$((end_time - start_time)) -output=$(ethrex_l2 info -b -a $account 2>&1) -while [[ $output -lt 1 ]]; do - sleep 5 - echo "Balance is $output" - output=$(ethrex_l2 info -b -a $account 2>&1) -done -SECONDS=0 # Server is online since balance started, so start measuring time -# bc is used to compare float values -while [ $(echo "$output <= $end_val" | bc -l) -eq 1 ]; do - sleep 5 - echo "Balance is $output waiting for it to reach $end_val" - output=$(ethrex_l2 info -b -a $account 2>&1) -done -elapsed=$SECONDS minutes=$((elapsed / 60)) seconds=$((elapsed % 60)) +output=$(ethrex_l2 info -b -a $account --wei 2>&1) echo "Balance of $output reached in $minutes min $seconds s, killing process" sudo pkill "$PROGRAM" && while pgrep -l "cargo-flamegraph"; do diff --git a/cmd/ethrex_l2/src/commands/test.rs b/cmd/ethrex_l2/src/commands/test.rs index 679ab17164..750c16da12 100644 --- a/cmd/ethrex_l2/src/commands/test.rs +++ b/cmd/ethrex_l2/src/commands/test.rs @@ -99,8 +99,6 @@ async fn transfer_from( chain_id: Some(cfg.network.l2_chain_id), nonce: Some(i), value: Some(value), - gas_price: Some(3121115334), - priority_gas_price: Some(3000000000), gas_limit: Some(TX_GAS_COST), ..Default::default() }, diff --git a/scripts/flamegraph.sh b/scripts/flamegraph.sh index 94f9a785d6..22bf035f15 100644 --- a/scripts/flamegraph.sh +++ b/scripts/flamegraph.sh @@ -7,25 +7,18 @@ iterations=1000 value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd -end_val=$((172 * $iterations * $value)) -ethrex_l2 test load --path ./test_data/private_keys.txt -i $iterations -v --value $value --to $account +start_time=$(date +%s) +ethrex_l2 test load --path ./test_data/private_keys.txt -i $iterations -v --value $value --to $account +end_time=$(date +%s) +elapsed=$((end_time - start_time)) -output=$(ethrex_l2 info -b -a $account 2>&1) -while [[ $output -lt 1 ]]; do - sleep 5 - echo "Balance is $output" - output=$(ethrex_l2 info -b -a $account 2>&1) -done -SECONDS=0 # Server is online since balance started, so start measuring time -while [[ $output -lt $end_val ]]; do - sleep 5 - echo "Balance is $output waiting for it to reach $end_val" - output=$(ethrex_l2 info -b -a $account 2>&1) -done -elapsed=$SECONDS minutes=$((elapsed / 60)) seconds=$((elapsed % 60)) +output=$(ethrex_l2 info -b -a $account --wei 2>&1) echo "Balance of $output reached in $minutes min $seconds s, killing process" -sudo pkill ethrex && while pgrep -l "cargo-flamegraph"; do echo "waiting for ethrex to exit... "; sleep 1;done; +sudo pkill ethrex && while pgrep -l "cargo-flamegraph"; do + echo "waiting for ethrex to exit... " + sleep 1 +done diff --git a/test_data/private_keys.txt b/test_data/private_keys.txt index 2fde9959f5..890bd315a9 100644 --- a/test_data/private_keys.txt +++ b/test_data/private_keys.txt @@ -1,4 +1,3 @@ -0x63b8139bbf84a5a65613e544be239f59f884434462598bd8bfe9f2c9045aa336 0xe4f7dc8b199fdaac6693c9c412ea68aed9e1584d193e1c3478d30a6f01f26057 0xb142300756f21d04354cd336fb01138767825d50c1d91cf751236bdd7cf522ab 0xba73c72b16553dbba5a275f541c06e77dcf7773514898dc0f3ddfe13c44f9e11 From 9392999b01c10c5965a4ca73609a71db8e9592a9 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Wed, 8 Jan 2025 13:12:42 -0300 Subject: [PATCH 36/80] chore: lower the amount of txs --- .github/scripts/flamegraph_watcher.sh | 4 ++-- scripts/flamegraph.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index 45dbcac86e..1f3e572190 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -1,10 +1,10 @@ #!/bin/bash -# This script sends 1000 transactions to a test account, per defined private key +# This script sends 171 * 500 transactions to a test account, per defined private key # then polls the account balance until the expected balance has been reached # and then kills the process. It also measures the elapsed time of the test and # outputs it to Github Action's outputs. -iterations=1000 +iterations=500 value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd diff --git a/scripts/flamegraph.sh b/scripts/flamegraph.sh index 22bf035f15..95b3a127c3 100644 --- a/scripts/flamegraph.sh +++ b/scripts/flamegraph.sh @@ -1,10 +1,10 @@ #!/bin/bash -# This script sends 1000 transactions to a test account, per defined private key +# This script sends 171 * 500 transactions to a test account, per defined private key # then polls the account balance until the expected balance has been reached # and then kills the process. It also measures the elapsed time of the test and # outputs it to Github Action's outputs. -iterations=1000 +iterations=500 value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd From 968d9515999083c5bf6634deaf95320619d55354 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Wed, 8 Jan 2025 14:25:33 -0300 Subject: [PATCH 37/80] chore: suppress output --- .github/scripts/flamegraph_watcher.sh | 2 +- .github/workflows/flamegraph_reporter.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index 1f3e572190..2db15e32d5 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -9,7 +9,7 @@ value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd start_time=$(date +%s) -ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_keys.txt -i $iterations -v --value $value --to $account +ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_keys.txt -i $iterations -v --value $value --to $account >/dev/null end_time=$(date +%s) elapsed=$((end_time - start_time)) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 7e85d47a9d..31aa00ac4b 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -60,7 +60,7 @@ jobs: shell: bash run: | CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \ - --bin ethrex --features dev -- --network /home/runner/work/ethrex/ethrex/test_data/genesis-l2.json --http.port 1729 & + --bin ethrex --features dev -- --network /home/runner/work/ethrex/ethrex/test_data/genesis-l2.json --http.port 1729 >/dev/null & echo "waiting to execute load test..." sleep 30 && echo "executing load test..." @@ -130,7 +130,7 @@ jobs: -- node --chain /home/runner/work/ethrex/ethrex/test_data/genesis-load-test.json --dev \ --dev.block-time 5000ms --http.port 1729 --txpool.max-pending-txns 100000000 --txpool.max-new-txns 1000000000 \ --txpool.pending-max-count 100000000 --txpool.pending-max-size 10000000000 --txpool.basefee-max-count 100000000000 \ - --txpool.basefee-max-size 1000000000000 --txpool.queued-max-count 1000000000 & + --txpool.basefee-max-size 1000000000000 --txpool.queued-max-count 1000000000 >/dev/null & echo "waiting to execute load test..." sleep 180 && bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_watcher.sh && From 15567c997059b69d658d0c4ef99ff2230fb2ac3d Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Wed, 8 Jan 2025 14:53:53 -0300 Subject: [PATCH 38/80] fix: test pgrep -f --- .github/scripts/flamegraph_watcher.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index 2db15e32d5..a8c1489e17 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -18,7 +18,7 @@ seconds=$((elapsed % 60)) output=$(ethrex_l2 info -b -a $account --wei 2>&1) echo "Balance of $output reached in $minutes min $seconds s, killing process" -sudo pkill "$PROGRAM" && while pgrep -l "cargo-flamegraph"; do +sudo pkill "$PROGRAM" && while pgrep -f "cargo-flamegraph"; do echo "waiting for $PROGRAM to exit... " sleep 1 done From 0ba01914c8ff106c8437426652aa626c1c567c44 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Wed, 8 Jan 2025 15:25:49 -0300 Subject: [PATCH 39/80] fix: test pgrep -l shorter --- .github/scripts/flamegraph_watcher.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index a8c1489e17..281167fe15 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -18,7 +18,7 @@ seconds=$((elapsed % 60)) output=$(ethrex_l2 info -b -a $account --wei 2>&1) echo "Balance of $output reached in $minutes min $seconds s, killing process" -sudo pkill "$PROGRAM" && while pgrep -f "cargo-flamegraph"; do +sudo pkill "$PROGRAM" && while pgrep -l "flamegraph"; do echo "waiting for $PROGRAM to exit... " sleep 1 done From 1b8a3a4cae95483eb1c02969cb67dfb1a5422f92 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Wed, 8 Jan 2025 16:01:06 -0300 Subject: [PATCH 40/80] fix: test if full_path works --- .github/workflows/flamegraph_reporter.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 31aa00ac4b..cb696ae204 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -70,7 +70,7 @@ jobs: - name: Generate SVG shell: bash run: | - perf script -v -i perf.data --no-inline > stack.data + perf script -v -i /home/runner/work/ethrex/ethrex/perf.data --no-inline > stack.data inferno-collapse-perf -q < stack.data > collapsed.data inferno-flamegraph --title "Ethrex Flamegraph" < collapsed.data > flamegraph_ethrex.svg From 8bb007710dc4df514675cdd8202cf27ca47aa0c8 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Wed, 8 Jan 2025 16:25:10 -0300 Subject: [PATCH 41/80] fix: test lowering the iterations and wait for perf --- .github/scripts/flamegraph_watcher.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index 281167fe15..803e9b2eff 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -4,7 +4,7 @@ # then polls the account balance until the expected balance has been reached # and then kills the process. It also measures the elapsed time of the test and # outputs it to Github Action's outputs. -iterations=500 +iterations=50 value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd @@ -18,7 +18,7 @@ seconds=$((elapsed % 60)) output=$(ethrex_l2 info -b -a $account --wei 2>&1) echo "Balance of $output reached in $minutes min $seconds s, killing process" -sudo pkill "$PROGRAM" && while pgrep -l "flamegraph"; do +sudo pkill "$PROGRAM" && while pgrep -l "perf"; do echo "waiting for $PROGRAM to exit... " sleep 1 done From 274c7e48ecd99d9a21191babc3b76248e7fa7614 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Wed, 8 Jan 2025 18:11:02 -0300 Subject: [PATCH 42/80] chore: spinner --- .github/scripts/flamegraph_watcher.sh | 13 ++++++++++--- Makefile | 2 +- scripts/flamegraph.sh | 15 +++++++++++---- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index 803e9b2eff..38fae9db9b 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -18,9 +18,16 @@ seconds=$((elapsed % 60)) output=$(ethrex_l2 info -b -a $account --wei 2>&1) echo "Balance of $output reached in $minutes min $seconds s, killing process" -sudo pkill "$PROGRAM" && while pgrep -l "perf"; do - echo "waiting for $PROGRAM to exit... " - sleep 1 +sudo pkill "$PROGRAM" + +spinner=('/' '|' '\\' '-') + +while pgrep -l "perf" >/dev/null; do + for s in "${spinner[@]}"; do + printf "\rWaiting for $PROGRAM to exit $s" + sleep 0.1 + done + sleep 0.6 done # We need this for the following job, to add to the static page diff --git a/Makefile b/Makefile index 08519d418d..28d8087b1b 100644 --- a/Makefile +++ b/Makefile @@ -164,7 +164,7 @@ stats: cargo run --quiet --release -p hive_report flamegraph: - sudo -E CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 & + sudo -E CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph --bin ethrex --features dev -- --network test_data/genesis-l2.json --http.port 1729 >/dev/null & bash scripts/flamegraph.sh test-load: diff --git a/scripts/flamegraph.sh b/scripts/flamegraph.sh index 95b3a127c3..d268c94da0 100644 --- a/scripts/flamegraph.sh +++ b/scripts/flamegraph.sh @@ -9,7 +9,7 @@ value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd start_time=$(date +%s) -ethrex_l2 test load --path ./test_data/private_keys.txt -i $iterations -v --value $value --to $account +ethrex_l2 test load --path ./test_data/private_keys.txt -i $iterations -v --value $value --to $account >/dev/null end_time=$(date +%s) elapsed=$((end_time - start_time)) @@ -18,7 +18,14 @@ seconds=$((elapsed % 60)) output=$(ethrex_l2 info -b -a $account --wei 2>&1) echo "Balance of $output reached in $minutes min $seconds s, killing process" -sudo pkill ethrex && while pgrep -l "cargo-flamegraph"; do - echo "waiting for ethrex to exit... " - sleep 1 +sudo pkill ethrex + +while pgrep -l "perf" >/dev/null; do + for s in "${spinner[@]}"; do + printf "\rWaiting for $PROGRAM to exit $s" + sleep 0.1 + done + sleep 0.6 done + +echo "The Flamegraph should have been generated." From 18e96a5d35e09e81d9e6b58e6431f3f4f87ce346 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Wed, 8 Jan 2025 18:18:46 -0300 Subject: [PATCH 43/80] chore: rm spinner for ci --- .github/scripts/flamegraph_watcher.sh | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index 38fae9db9b..d1b9f154ba 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -20,14 +20,8 @@ echo "Balance of $output reached in $minutes min $seconds s, killing process" sudo pkill "$PROGRAM" -spinner=('/' '|' '\\' '-') - while pgrep -l "perf" >/dev/null; do - for s in "${spinner[@]}"; do - printf "\rWaiting for $PROGRAM to exit $s" - sleep 0.1 - done - sleep 0.6 + sleep 10 done # We need this for the following job, to add to the static page From 3cca963ceff9c03918284b9334eeaf787ea8127b Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Thu, 9 Jan 2025 09:53:38 -0300 Subject: [PATCH 44/80] fix: calculate time to process the balance --- .github/scripts/flamegraph_watcher.sh | 11 ++++++++++- .github/workflows/flamegraph_reporter.yaml | 3 ++- scripts/flamegraph.sh | 11 ++++++++++- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index d1b9f154ba..dc706abd96 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -1,16 +1,25 @@ #!/bin/bash -# This script sends 171 * 500 transactions to a test account, per defined private key +# This script sends 171 * transactions to a test account, per defined private key # then polls the account balance until the expected balance has been reached # and then kills the process. It also measures the elapsed time of the test and # outputs it to Github Action's outputs. iterations=50 value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd +end_val=$((171 * $iterations * $value)) start_time=$(date +%s) ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_keys.txt -i $iterations -v --value $value --to $account >/dev/null + +output=$(ethrex_l2 info -b -a $account --wei 2>&1) + +while [[ $output -lt $end_val ]]; do + sleep 5 + output=$(ethrex_l2 info -b -a $account --wei 2>&1) +done end_time=$(date +%s) + elapsed=$((end_time - start_time)) minutes=$((elapsed / 60)) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index cb696ae204..b63d7af597 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -124,11 +124,12 @@ jobs: - id: generate-flamegraph-reth name: Build and test reth shell: bash + # --dev.block-time 1000ms set to 1000ms to match ethrex block generation time run: | cd ./reth cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin reth --profile profiling \ -- node --chain /home/runner/work/ethrex/ethrex/test_data/genesis-load-test.json --dev \ - --dev.block-time 5000ms --http.port 1729 --txpool.max-pending-txns 100000000 --txpool.max-new-txns 1000000000 \ + --dev.block-time 1000ms --http.port 1729 --txpool.max-pending-txns 100000000 --txpool.max-new-txns 1000000000 \ --txpool.pending-max-count 100000000 --txpool.pending-max-size 10000000000 --txpool.basefee-max-count 100000000000 \ --txpool.basefee-max-size 1000000000000 --txpool.queued-max-count 1000000000 >/dev/null & echo "waiting to execute load test..." diff --git a/scripts/flamegraph.sh b/scripts/flamegraph.sh index d268c94da0..2d9f40668f 100644 --- a/scripts/flamegraph.sh +++ b/scripts/flamegraph.sh @@ -1,16 +1,25 @@ #!/bin/bash -# This script sends 171 * 500 transactions to a test account, per defined private key +# This script sends 171 * transactions to a test account, per defined private key # then polls the account balance until the expected balance has been reached # and then kills the process. It also measures the elapsed time of the test and # outputs it to Github Action's outputs. iterations=500 value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd +end_val=$((171 * $iterations * $value)) start_time=$(date +%s) ethrex_l2 test load --path ./test_data/private_keys.txt -i $iterations -v --value $value --to $account >/dev/null + +output=$(ethrex_l2 info -b -a $account --wei 2>&1) + +while [[ $output -lt $end_val ]]; do + sleep 5 + output=$(ethrex_l2 info -b -a $account --wei 2>&1) +done end_time=$(date +%s) + elapsed=$((end_time - start_time)) minutes=$((elapsed / 60)) From 3c39c68b949dcde9059d3b03401af7ccc29e2d79 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Wed, 15 Jan 2025 16:50:10 -0300 Subject: [PATCH 45/80] chore: add .idea/ to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 1c4f9e2d58..bd7771a7c8 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,7 @@ ethereum-package/ **/.DS_Store **/.vscode +**/.idea # EVM Mlir stuff From b73b2d478a7149c3f90b306aec1e67e0ffab5f98 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Wed, 15 Jan 2025 16:55:18 -0300 Subject: [PATCH 46/80] chore: Bump workflow's CI Rust version to 1.84.0 --- .github/workflows/flamegraph_reporter.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index b63d7af597..3438574a94 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -7,14 +7,14 @@ permissions: on: push: - branches: ["main"] + branches: [ "main" ] pull_request: - branches: ["**"] + branches: [ "**" ] workflow_dispatch: env: - RUST_VERSION: 1.81.0 - RUST_RETH_VERSION: 1.82.0 + RUST_VERSION: 1.84.0 + RUST_RETH_VERSION: 1.84.0 jobs: flamegraph-ethrex: @@ -156,7 +156,7 @@ jobs: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} - needs: [flamegraph-ethrex, flamegraph-reth] + needs: [ flamegraph-ethrex, flamegraph-reth ] steps: - name: Checkout sources uses: actions/checkout@v4 From 28344d5da56d2b9e191a77aa84cf37ee4bcba418 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Wed, 15 Jan 2025 17:10:56 -0300 Subject: [PATCH 47/80] chore: Attempt to cache cargo binaries in CI --- .github/workflows/flamegraph_reporter.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 3438574a94..81a3540326 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -36,6 +36,14 @@ jobs: - name: Caching uses: Swatinem/rust-cache@v2 + - name: Cache Cargo binaries + uses: actions/cache@v4 + with: + path: ~/.cargo/bin + key: ${{ runner.os }}-cargo-install-${{ hashFiles('cmd/ethrex_l2/Cargo.toml') }} + restore-keys: | + ${{ runner.os }}-cargo-install- + - name: Change perf settings run: | sudo sysctl kernel.perf_event_paranoid=-1 From d93c90bab0a98faf46499852656829ca645ac735 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Wed, 15 Jan 2025 19:45:05 -0300 Subject: [PATCH 48/80] chore: ci: try running reth without profile=profiling --- .github/workflows/flamegraph_reporter.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 81a3540326..006b79078b 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -135,7 +135,7 @@ jobs: # --dev.block-time 1000ms set to 1000ms to match ethrex block generation time run: | cd ./reth - cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin reth --profile profiling \ + cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin reth \ -- node --chain /home/runner/work/ethrex/ethrex/test_data/genesis-load-test.json --dev \ --dev.block-time 1000ms --http.port 1729 --txpool.max-pending-txns 100000000 --txpool.max-new-txns 1000000000 \ --txpool.pending-max-count 100000000 --txpool.pending-max-size 10000000000 --txpool.basefee-max-count 100000000000 \ From 9e6524923dbc3a85c3b1d516781bfe8fe59f5304 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Wed, 15 Jan 2025 21:04:50 -0300 Subject: [PATCH 49/80] chore: ci: Use gimli's addr2line for faster perf --- .github/workflows/flamegraph_reporter.yaml | 32 ++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 006b79078b..089778c0eb 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -49,6 +49,19 @@ jobs: sudo sysctl kernel.perf_event_paranoid=-1 sudo perf list hw + - name: Checkout gimli addr2line + uses: actions/checkout@v4 + with: + repository: gimli-rs/addr2line + path: "addr2line" + + - name: Build gimli addr2line + working-directory: ./addr2line + run: | + # Little hack we need else it throws error building + echo "[workspace]" >> ./Cargo.toml + cargo install --features="bin" addr2line + - name: Install flamegraph run: | cargo install flamegraph @@ -78,7 +91,8 @@ jobs: - name: Generate SVG shell: bash run: | - perf script -v -i /home/runner/work/ethrex/ethrex/perf.data --no-inline > stack.data + PATH=$HOME/.cargo/bin:$PATH which addr2line + PATH=$HOME/.cargo/bin:$PATH perf script -v -i /home/runner/work/ethrex/ethrex/perf.data --no-inline > stack.data inferno-collapse-perf -q < stack.data > collapsed.data inferno-flamegraph --title "Ethrex Flamegraph" < collapsed.data > flamegraph_ethrex.svg @@ -112,6 +126,19 @@ jobs: sudo sysctl kernel.perf_event_paranoid=-1 sudo perf list hw + - name: Checkout gimli addr2line + uses: actions/checkout@v4 + with: + repository: gimli-rs/addr2line + path: "addr2line" + + - name: Build gimli addr2line + working-directory: ./addr2line + run: | + # Little hack we need else it throws error building + echo "[workspace]" >> ./Cargo.toml + cargo install --features="bin" addr2line + - name: Install flamegraph run: | cargo install flamegraph @@ -148,7 +175,8 @@ jobs: - name: Generate SVG shell: bash run: | - perf script -v -i /home/runner/work/ethrex/ethrex/reth/perf.data --no-inline > stack.data + PATH=$HOME/.cargo/bin:$PATH which addr2line + PATH=$HOME/.cargo/bin:$PATH perf script -v -i /home/runner/work/ethrex/ethrex/reth/perf.data --no-inline > stack.data inferno-collapse-perf -q < stack.data > collapsed.data inferno-flamegraph --title "Reth Flamegraph" < collapsed.data > flamegraph_reth.svg From e1f9063d30391eeb87cc40cb02f56b8dbd67da14 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Wed, 15 Jan 2025 22:01:07 -0300 Subject: [PATCH 50/80] chore: ci: Cache reth repo --- .github/workflows/flamegraph_reporter.yaml | 27 +++++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 089778c0eb..c9c2bd60c1 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -118,8 +118,29 @@ jobs: with: toolchain: ${{ env.RUST_RETH_VERSION }} + - name: Cache reth repository + uses: actions/cache@v4 + id: cache-reth-repo + with: + path: reth + key: reth-repo-main-${{ hashFiles('reth/Cargo.lock') }} + restore-keys: | + reth-repo-${{ env.RETH_REF }}- + reth-repo- + + - name: Checkout reth + if: steps.cache-reth-repo.outputs.cache-hit != 'true' + uses: actions/checkout@v4 + with: + repository: paradigmxyz/reth + path: "reth" + ref: main + - name: Caching uses: Swatinem/rust-cache@v2 + with: + workspaces: "reth -> target" + key: reth-build-main - name: Change perf settings run: | @@ -150,12 +171,6 @@ jobs: ethrex_l2 config create default --default ethrex_l2 config set default - - name: Checkout reth - uses: actions/checkout@v4 - with: - repository: paradigmxyz/reth - path: "reth" - - id: generate-flamegraph-reth name: Build and test reth shell: bash From dcf001e96c912d66d2fbb3441f9b311869cdcbed Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Wed, 15 Jan 2025 22:30:16 -0300 Subject: [PATCH 51/80] chore: ci: Read kernel symbols in perf --- .github/workflows/flamegraph_reporter.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index c9c2bd60c1..f510b9ebe1 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -47,6 +47,8 @@ jobs: - name: Change perf settings run: | sudo sysctl kernel.perf_event_paranoid=-1 + sudo sysctl -w kernel.kptr_restrict=0 + sudo chmod +r /proc/kallsyms sudo perf list hw - name: Checkout gimli addr2line @@ -145,6 +147,8 @@ jobs: - name: Change perf settings run: | sudo sysctl kernel.perf_event_paranoid=-1 + sudo sysctl -w kernel.kptr_restrict=0 + sudo chmod +r /proc/kallsyms sudo perf list hw - name: Checkout gimli addr2line From 4552225ae52ba9c17ad1156f78a3c4918dbad937 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Wed, 15 Jan 2025 22:51:30 -0300 Subject: [PATCH 52/80] chore: ci: Cache ethrex_l2 in "flamegraph-reth" as well --- .github/workflows/flamegraph_reporter.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index f510b9ebe1..4892d7938a 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -144,6 +144,14 @@ jobs: workspaces: "reth -> target" key: reth-build-main + - name: Cache Cargo binaries + uses: actions/cache@v4 + with: + path: ~/.cargo/bin + key: ${{ runner.os }}-cargo-install-${{ hashFiles('cmd/ethrex_l2/Cargo.toml') }} + restore-keys: | + ${{ runner.os }}-cargo-install- + - name: Change perf settings run: | sudo sysctl kernel.perf_event_paranoid=-1 From 56b57b9bafd8dced17dba1425c107a053e75e2ce Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Wed, 15 Jan 2025 22:53:53 -0300 Subject: [PATCH 53/80] chore: ci: Add CARGO_PROFILE_RELEASE_DEBUG=true to reth call --- .github/workflows/flamegraph_reporter.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 4892d7938a..2fd6b58e4f 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -189,7 +189,7 @@ jobs: # --dev.block-time 1000ms set to 1000ms to match ethrex block generation time run: | cd ./reth - cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin reth \ + CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin reth --profile profiling \ -- node --chain /home/runner/work/ethrex/ethrex/test_data/genesis-load-test.json --dev \ --dev.block-time 1000ms --http.port 1729 --txpool.max-pending-txns 100000000 --txpool.max-new-txns 1000000000 \ --txpool.pending-max-count 100000000 --txpool.pending-max-size 10000000000 --txpool.basefee-max-count 100000000000 \ From a7392f201280c161124313ac12b29aa5f98a530c Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Wed, 15 Jan 2025 23:23:24 -0300 Subject: [PATCH 54/80] chore: ci: Modify slightly how we measure load test time --- .github/scripts/flamegraph_watcher.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index dc706abd96..ec067747d5 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -9,17 +9,15 @@ value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((171 * $iterations * $value)) -start_time=$(date +%s) ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_keys.txt -i $iterations -v --value $value --to $account >/dev/null +start_time=$(date +%s) output=$(ethrex_l2 info -b -a $account --wei 2>&1) - while [[ $output -lt $end_val ]]; do sleep 5 output=$(ethrex_l2 info -b -a $account --wei 2>&1) done end_time=$(date +%s) - elapsed=$((end_time - start_time)) minutes=$((elapsed / 60)) From 4b47cb6c552375963434a3c97e20ffdae968d406 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Wed, 15 Jan 2025 23:24:48 -0300 Subject: [PATCH 55/80] chore: ci: Try compiling reth with maxperf --- .github/workflows/flamegraph_reporter.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 2fd6b58e4f..8524647dcb 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -189,7 +189,7 @@ jobs: # --dev.block-time 1000ms set to 1000ms to match ethrex block generation time run: | cd ./reth - CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin reth --profile profiling \ + CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin reth --profile maxperf \ -- node --chain /home/runner/work/ethrex/ethrex/test_data/genesis-load-test.json --dev \ --dev.block-time 1000ms --http.port 1729 --txpool.max-pending-txns 100000000 --txpool.max-new-txns 1000000000 \ --txpool.pending-max-count 100000000 --txpool.pending-max-size 10000000000 --txpool.basefee-max-count 100000000000 \ From 47c4b8a5bc509e8da88aa3e7933ee560594db5c5 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 00:11:22 -0300 Subject: [PATCH 56/80] chore: ci: fix ethrex_l2 for flamegraph-reth --- .github/workflows/flamegraph_reporter.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 8524647dcb..72e9a643ef 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -112,6 +112,14 @@ jobs: outputs: time: ${{steps.generate-flamegraph-reth.outputs.time}} steps: + - name: Cache Cargo binaries + uses: actions/cache@v4 + with: + path: ~/.cargo/bin + key: ${{ runner.os }}-cargo-install-${{ hashFiles('cmd/ethrex_l2/Cargo.toml') }} + restore-keys: | + ${{ runner.os }}-cargo-install- + - name: Checkout sources uses: actions/checkout@v4 @@ -144,14 +152,6 @@ jobs: workspaces: "reth -> target" key: reth-build-main - - name: Cache Cargo binaries - uses: actions/cache@v4 - with: - path: ~/.cargo/bin - key: ${{ runner.os }}-cargo-install-${{ hashFiles('cmd/ethrex_l2/Cargo.toml') }} - restore-keys: | - ${{ runner.os }}-cargo-install- - - name: Change perf settings run: | sudo sysctl kernel.perf_event_paranoid=-1 From f93037c1ffe8fb64a0e1bf6787ac2e87735f5836 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 01:05:53 -0300 Subject: [PATCH 57/80] chore: ci: Test sleeping 20min before running the perf tests on reth --- .github/workflows/flamegraph_reporter.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 72e9a643ef..4d4152cbc7 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -189,13 +189,13 @@ jobs: # --dev.block-time 1000ms set to 1000ms to match ethrex block generation time run: | cd ./reth - CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin reth --profile maxperf \ + CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin reth --profile profiling \ -- node --chain /home/runner/work/ethrex/ethrex/test_data/genesis-load-test.json --dev \ --dev.block-time 1000ms --http.port 1729 --txpool.max-pending-txns 100000000 --txpool.max-new-txns 1000000000 \ --txpool.pending-max-count 100000000 --txpool.pending-max-size 10000000000 --txpool.basefee-max-count 100000000000 \ --txpool.basefee-max-size 1000000000000 --txpool.queued-max-count 1000000000 >/dev/null & echo "waiting to execute load test..." - sleep 180 && + sleep 1200 && bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_watcher.sh && echo "Load test finished" From fde9afd20badd36e943d45001d1db47bb2f86d24 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 09:40:37 -0300 Subject: [PATCH 58/80] chore: ci: Proper wait for compilation to finish before executing load tests & bump up iterations --- .github/scripts/flamegraph_watcher.sh | 2 +- .github/workflows/flamegraph_reporter.yaml | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index ec067747d5..e5768080eb 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -4,7 +4,7 @@ # then polls the account balance until the expected balance has been reached # and then kills the process. It also measures the elapsed time of the test and # outputs it to Github Action's outputs. -iterations=50 +iterations=5000 value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((171 * $iterations * $value)) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 4d4152cbc7..5051a970ed 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -85,8 +85,12 @@ jobs: CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \ --bin ethrex --features dev -- --network /home/runner/work/ethrex/ethrex/test_data/genesis-l2.json --http.port 1729 >/dev/null & echo "waiting to execute load test..." - sleep 30 && - echo "executing load test..." + echo "Waiting for compilation to finish..." + while [ ! -f ".target/release/ethrex" ]; do + sleep 5 + done + sleep 5 + echo "Compilation finished. Executing load test..." bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_watcher.sh && echo "Load test finished" @@ -194,8 +198,12 @@ jobs: --dev.block-time 1000ms --http.port 1729 --txpool.max-pending-txns 100000000 --txpool.max-new-txns 1000000000 \ --txpool.pending-max-count 100000000 --txpool.pending-max-size 10000000000 --txpool.basefee-max-count 100000000000 \ --txpool.basefee-max-size 1000000000000 --txpool.queued-max-count 1000000000 >/dev/null & - echo "waiting to execute load test..." - sleep 1200 && + echo "Waiting for compilation to finish..." + while [ ! -f ".target/release/reth" ]; do + sleep 5 + done + sleep 5 + echo "Compilation finished. Executing load test..." bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_watcher.sh && echo "Load test finished" From 69f58001ed24550fca5a75013e8e0f7600572405 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 10:16:01 -0300 Subject: [PATCH 59/80] chore: Improve slightly the layout of the flamegraph website --- pages/index.html | 31 ++++++++++++++++++++++++------- pages/style.css | 22 +++++++++++++++++++++- 2 files changed, 45 insertions(+), 8 deletions(-) diff --git a/pages/index.html b/pages/index.html index 3301a14f14..f3b3befbff 100644 --- a/pages/index.html +++ b/pages/index.html @@ -28,17 +28,20 @@

Ethrex

download="flamegraph_ethrex.svg/flamegraph_ethrex.svg">Download

Time elapsed: {{ETHREX_TIME}}

- +
+ +

Time elapsed: {{RETH_TIME}}

- +
+ +
@@ -48,13 +51,27 @@

Reth

const object = document.getElementById(objectId); object.addEventListener('load', () => { const svgDocument = object.contentDocument; - const svgElement = svgDocument.querySelector('svg'); + const svgElement = svgDocument?.querySelector('svg'); if (svgElement) { - svgElement.setAttribute('viewBox', '0 0 1000 1000'); + // Remove explicit width and height attributes to allow scaling + svgElement.removeAttribute('width'); + svgElement.removeAttribute('height'); + // Ensure the aspect ratio is preserved during scaling + svgElement.setAttribute('preserveAspectRatio', 'xMidYMid meet'); + + // Get the current viewBox or calculate a new one based on the bounding box + const bbox = svgElement.getBBox(); + svgElement.setAttribute( + 'viewBox', + `${bbox.x} ${bbox.y} ${bbox.width} ${bbox.height}` + ); + } else { + console.warn(`SVG element not found in object with ID: ${objectId}`); } }); } + adjustViewBox('svg1'); adjustViewBox('svg2'); diff --git a/pages/style.css b/pages/style.css index 91dba15aaa..7e6dc8d295 100644 --- a/pages/style.css +++ b/pages/style.css @@ -36,7 +36,7 @@ h1 { background: #fff; border: 1px solid #ddd; border-radius: 8px; - padding: 5px; + padding: 10px 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); display: flex; flex-direction: column; @@ -65,3 +65,23 @@ h2 { font-size: 0.9em; margin-bottom: 0.8em; } + +.object-container { + position: relative; + width: 100%; + height: 100%; + overflow: hidden; + display: flex; + align-items: center; + justify-content: center; +} + +object { + width: 100%; + height: 100%; + max-height: 100%; + max-width: 100%; + object-fit: contain; + border: 1px solid #ccc; + border-radius: 4px; +} From 8c97beb8b4453bab54015e5228e0b7d8a425674c Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 10:23:43 -0300 Subject: [PATCH 60/80] chore: ci: restore wait for compilation time by minutes --- .github/workflows/flamegraph_reporter.yaml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 5051a970ed..1cea3ae63b 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -84,12 +84,9 @@ jobs: run: | CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \ --bin ethrex --features dev -- --network /home/runner/work/ethrex/ethrex/test_data/genesis-l2.json --http.port 1729 >/dev/null & - echo "waiting to execute load test..." echo "Waiting for compilation to finish..." - while [ ! -f ".target/release/ethrex" ]; do - sleep 5 - done - sleep 5 + sleep 60 + ls -l ./target/ echo "Compilation finished. Executing load test..." bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_watcher.sh && echo "Load test finished" @@ -199,10 +196,8 @@ jobs: --txpool.pending-max-count 100000000 --txpool.pending-max-size 10000000000 --txpool.basefee-max-count 100000000000 \ --txpool.basefee-max-size 1000000000000 --txpool.queued-max-count 1000000000 >/dev/null & echo "Waiting for compilation to finish..." - while [ ! -f ".target/release/reth" ]; do - sleep 5 - done - sleep 5 + sleep 1200 + ls -l ./target/ echo "Compilation finished. Executing load test..." bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_watcher.sh && echo "Load test finished" From 01b540b432b15b671ddeba605d25bf28ccdafe72 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 10:24:48 -0300 Subject: [PATCH 61/80] fix: ci: fix svg path --- pages/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/index.html b/pages/index.html index f3b3befbff..53d91b4038 100644 --- a/pages/index.html +++ b/pages/index.html @@ -29,7 +29,7 @@

Ethrex

Time elapsed: {{ETHREX_TIME}}

- +
@@ -40,7 +40,7 @@

Reth

Time elapsed: {{RETH_TIME}}

- +
From b300c57b6039c8020e425d9edd12fb70b352f2f4 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 11:11:55 -0300 Subject: [PATCH 62/80] chore: ci: cache reth binary --- .github/scripts/flamegraph_watcher.sh | 2 +- .github/workflows/flamegraph_reporter.yaml | 51 ++++++++++++---------- 2 files changed, 28 insertions(+), 25 deletions(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index e5768080eb..8d281d7996 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -4,7 +4,7 @@ # then polls the account balance until the expected balance has been reached # and then kills the process. It also measures the elapsed time of the test and # outputs it to Github Action's outputs. -iterations=5000 +iterations=200 value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((171 * $iterations * $value)) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 1cea3ae63b..7fc3059764 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -82,11 +82,11 @@ jobs: name: Generate Flamegraph data for Ethrex shell: bash run: | - CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \ + CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph --no-build -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \ --bin ethrex --features dev -- --network /home/runner/work/ethrex/ethrex/test_data/genesis-l2.json --http.port 1729 >/dev/null & echo "Waiting for compilation to finish..." sleep 60 - ls -l ./target/ + ls -l ./target/release echo "Compilation finished. Executing load test..." bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_watcher.sh && echo "Load test finished" @@ -124,34 +124,36 @@ jobs: - name: Checkout sources uses: actions/checkout@v4 + - name: Cache reth binary + id: cache-reth-binary + uses: actions/cache@v4 + with: + path: ./reth-binary + key: reth-binary-${{ env.RUST_RETH_VERSION }}-${{ runner.os }} + - name: Rustup toolchain install + if: steps.cache-reth-binary.outputs.cache-hit != 'true' uses: dtolnay/rust-toolchain@stable with: toolchain: ${{ env.RUST_RETH_VERSION }} - - name: Cache reth repository - uses: actions/cache@v4 - id: cache-reth-repo - with: - path: reth - key: reth-repo-main-${{ hashFiles('reth/Cargo.lock') }} - restore-keys: | - reth-repo-${{ env.RETH_REF }}- - reth-repo- - - name: Checkout reth - if: steps.cache-reth-repo.outputs.cache-hit != 'true' + if: steps.cache-reth-binary.outputs.cache-hit != 'true' uses: actions/checkout@v4 with: repository: paradigmxyz/reth path: "reth" ref: main - - name: Caching - uses: Swatinem/rust-cache@v2 - with: - workspaces: "reth -> target" - key: reth-build-main + - name: Build reth + if: steps.cache-reth-binary.outputs.cache-hit != 'true' + run: | + cd ./reth + CARGO_PROFILE_RELEASE_DEBUG=true cargo build --profile profiling --bin reth + ls -l ./target/profiling + mkdir -p ../reth-binary + cp target/profiling/reth ../reth-binary/ + echo "Reth binary built and cached" - name: Change perf settings run: | @@ -189,19 +191,20 @@ jobs: shell: bash # --dev.block-time 1000ms set to 1000ms to match ethrex block generation time run: | + chmod +x ./reth-binary/reth cd ./reth - CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin reth --profile profiling \ - -- node --chain /home/runner/work/ethrex/ethrex/test_data/genesis-load-test.json --dev \ + CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \ + --exec ./reth-binary/reth -- node --chain /home/runner/work/ethrex/ethrex/test_data/genesis-load-test.json --dev \ --dev.block-time 1000ms --http.port 1729 --txpool.max-pending-txns 100000000 --txpool.max-new-txns 1000000000 \ --txpool.pending-max-count 100000000 --txpool.pending-max-size 10000000000 --txpool.basefee-max-count 100000000000 \ --txpool.basefee-max-size 1000000000000 --txpool.queued-max-count 1000000000 >/dev/null & - echo "Waiting for compilation to finish..." - sleep 1200 - ls -l ./target/ - echo "Compilation finished. Executing load test..." + echo "Waiting for reth to start..." + sleep 30 + echo "Executing load test..." bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_watcher.sh && echo "Load test finished" + - name: Generate SVG shell: bash run: | From 1e656093fd0c690d91b78c48a1ba7fec48f95812 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 13:25:50 -0300 Subject: [PATCH 63/80] chore: ci: attempt to fix cache --- .github/workflows/flamegraph_reporter.yaml | 94 +++++++++++++--------- 1 file changed, 58 insertions(+), 36 deletions(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 7fc3059764..32325afdd0 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -51,18 +51,29 @@ jobs: sudo chmod +r /proc/kallsyms sudo perf list hw + - name: Check addr2line installation + id: check-addr2line + run: | + if command -v addr2line >/dev/null 2>&1; then + echo "addr2line_exists=true" >> $GITHUB_OUTPUT + else + echo "addr2line_exists=false" >> $GITHUB_OUTPUT + fi + - name: Checkout gimli addr2line + if: steps.check-addr2line.outputs.addr2line_exists != 'true' uses: actions/checkout@v4 with: repository: gimli-rs/addr2line path: "addr2line" - name: Build gimli addr2line + if: steps.check-addr2line.outputs.addr2line_exists != 'true' working-directory: ./addr2line run: | # Little hack we need else it throws error building echo "[workspace]" >> ./Cargo.toml - cargo install --features="bin" addr2line + cargo install --force --features="bin" addr2line - name: Install flamegraph run: | @@ -82,11 +93,13 @@ jobs: name: Generate Flamegraph data for Ethrex shell: bash run: | - CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph --no-build -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \ - --bin ethrex --features dev -- --network /home/runner/work/ethrex/ethrex/test_data/genesis-l2.json --http.port 1729 >/dev/null & - echo "Waiting for compilation to finish..." - sleep 60 - ls -l ./target/release + CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \ + --bin ethrex --features dev -- --network /home/runner/work/ethrex/ethrex/test_data/genesis-l2.json --http.port 1729 >/dev/null & + while [ ! -x "./target/release/ethrex" ]; do + echo "Waiting for ethrex binary to be ready..." + sleep 2 + done + sleep 10 echo "Compilation finished. Executing load test..." bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_watcher.sh && echo "Load test finished" @@ -113,47 +126,33 @@ jobs: outputs: time: ${{steps.generate-flamegraph-reth.outputs.time}} steps: - - name: Cache Cargo binaries - uses: actions/cache@v4 - with: - path: ~/.cargo/bin - key: ${{ runner.os }}-cargo-install-${{ hashFiles('cmd/ethrex_l2/Cargo.toml') }} - restore-keys: | - ${{ runner.os }}-cargo-install- - - name: Checkout sources uses: actions/checkout@v4 - - name: Cache reth binary - id: cache-reth-binary - uses: actions/cache@v4 - with: - path: ./reth-binary - key: reth-binary-${{ env.RUST_RETH_VERSION }}-${{ runner.os }} - - name: Rustup toolchain install - if: steps.cache-reth-binary.outputs.cache-hit != 'true' uses: dtolnay/rust-toolchain@stable with: toolchain: ${{ env.RUST_RETH_VERSION }} - name: Checkout reth - if: steps.cache-reth-binary.outputs.cache-hit != 'true' uses: actions/checkout@v4 with: repository: paradigmxyz/reth path: "reth" ref: main - - name: Build reth - if: steps.cache-reth-binary.outputs.cache-hit != 'true' - run: | - cd ./reth - CARGO_PROFILE_RELEASE_DEBUG=true cargo build --profile profiling --bin reth - ls -l ./target/profiling - mkdir -p ../reth-binary - cp target/profiling/reth ../reth-binary/ - echo "Reth binary built and cached" + - name: Cache cargo dependencies + uses: actions/cache@v4 + with: + path: | + ~/.cargo/bin + ~/.cargo/registry + ~/.cargo/git + reth/target + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}-${{ env.RUST_RETH_VERSION }} + restore-keys: | + ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}- + ${{ runner.os }}-cargo- - name: Change perf settings run: | @@ -162,18 +161,29 @@ jobs: sudo chmod +r /proc/kallsyms sudo perf list hw + - name: Check addr2line installation + id: check-addr2line + run: | + if command -v addr2line >/dev/null 2>&1; then + echo "addr2line_exists=true" >> $GITHUB_OUTPUT + else + echo "addr2line_exists=false" >> $GITHUB_OUTPUT + fi + - name: Checkout gimli addr2line + if: steps.check-addr2line.outputs.addr2line_exists != 'true' uses: actions/checkout@v4 with: repository: gimli-rs/addr2line path: "addr2line" - name: Build gimli addr2line + if: steps.check-addr2line.outputs.addr2line_exists != 'true' working-directory: ./addr2line run: | # Little hack we need else it throws error building echo "[workspace]" >> ./Cargo.toml - cargo install --features="bin" addr2line + cargo install --force --features="bin" addr2line - name: Install flamegraph run: | @@ -186,19 +196,31 @@ jobs: ethrex_l2 config create default --default ethrex_l2 config set default + - name: Cache reth binary + id: cache-reth-binary + uses: actions/cache@v4 + with: + path: ./reth/target/profiling + key: reth-binary-${{ env.RUST_RETH_VERSION }}-${{ runner.os }}-${{ hashFiles('reth/**/*.rs') }} + - id: generate-flamegraph-reth name: Build and test reth shell: bash # --dev.block-time 1000ms set to 1000ms to match ethrex block generation time run: | - chmod +x ./reth-binary/reth cd ./reth + if [ ! -f "target/profiling/reth" ]; then + CARGO_PROFILE_RELEASE_DEBUG=true cargo build --profile profiling + fi CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \ - --exec ./reth-binary/reth -- node --chain /home/runner/work/ethrex/ethrex/test_data/genesis-load-test.json --dev \ + --bin reth --profile profiling -- node --chain /home/runner/work/ethrex/ethrex/test_data/genesis-load-test.json --dev \ --dev.block-time 1000ms --http.port 1729 --txpool.max-pending-txns 100000000 --txpool.max-new-txns 1000000000 \ --txpool.pending-max-count 100000000 --txpool.pending-max-size 10000000000 --txpool.basefee-max-count 100000000000 \ --txpool.basefee-max-size 1000000000000 --txpool.queued-max-count 1000000000 >/dev/null & - echo "Waiting for reth to start..." + while [ ! -x "./target/profiling/reth" ]; do + echo "Waiting for reth binary to be ready..." + sleep 10 + done sleep 30 echo "Executing load test..." bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_watcher.sh && From a0a3bce78bc3a20d2d97f5a2b82decc52a064255 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 13:51:39 -0300 Subject: [PATCH 64/80] chore: ci: fix addr2line cache & some improvements --- .github/scripts/flamegraph_watcher.sh | 3 +++ .github/workflows/flamegraph_reporter.yaml | 16 ++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index 8d281d7996..ac1ba04169 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -25,11 +25,14 @@ seconds=$((elapsed % 60)) output=$(ethrex_l2 info -b -a $account --wei 2>&1) echo "Balance of $output reached in $minutes min $seconds s, killing process" +echo killing "$PROGRAM" sudo pkill "$PROGRAM" while pgrep -l "perf" >/dev/null; do + echo "perf still alive, waiting for it to exit..." sleep 10 done +echo "perf exited" # We need this for the following job, to add to the static page echo "time=$minutes minutes $seconds seconds" >>"$GITHUB_OUTPUT" diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 32325afdd0..af147d2b3c 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -54,9 +54,11 @@ jobs: - name: Check addr2line installation id: check-addr2line run: | - if command -v addr2line >/dev/null 2>&1; then + if [ -f "./cargo/bin/addr2line" ]; then + echo "./cargo/bin/addr2line found" echo "addr2line_exists=true" >> $GITHUB_OUTPUT else + echo "./cargo/bin/addr2line NOT found" echo "addr2line_exists=false" >> $GITHUB_OUTPUT fi @@ -109,8 +111,8 @@ jobs: run: | PATH=$HOME/.cargo/bin:$PATH which addr2line PATH=$HOME/.cargo/bin:$PATH perf script -v -i /home/runner/work/ethrex/ethrex/perf.data --no-inline > stack.data - inferno-collapse-perf -q < stack.data > collapsed.data - inferno-flamegraph --title "Ethrex Flamegraph" < collapsed.data > flamegraph_ethrex.svg + PATH=$HOME/.cargo/bin:$PATH inferno-collapse-perf -q < stack.data > collapsed.data + PATH=$HOME/.cargo/bin:$PATH inferno-flamegraph --title "Ethrex Flamegraph" < collapsed.data > flamegraph_ethrex.svg - name: Upload artifacts - flamegraph_ethrex.svg uses: actions/upload-artifact@v4 @@ -164,9 +166,11 @@ jobs: - name: Check addr2line installation id: check-addr2line run: | - if command -v addr2line >/dev/null 2>&1; then + if [ -f "./cargo/bin/addr2line" ]; then + echo "./cargo/bin/addr2line found" echo "addr2line_exists=true" >> $GITHUB_OUTPUT else + echo "./cargo/bin/addr2line NOT found" echo "addr2line_exists=false" >> $GITHUB_OUTPUT fi @@ -232,8 +236,8 @@ jobs: run: | PATH=$HOME/.cargo/bin:$PATH which addr2line PATH=$HOME/.cargo/bin:$PATH perf script -v -i /home/runner/work/ethrex/ethrex/reth/perf.data --no-inline > stack.data - inferno-collapse-perf -q < stack.data > collapsed.data - inferno-flamegraph --title "Reth Flamegraph" < collapsed.data > flamegraph_reth.svg + PATH=$HOME/.cargo/bin:$PATH inferno-collapse-perf -q < stack.data > collapsed.data + PATH=$HOME/.cargo/bin:$PATH inferno-flamegraph --title "Reth Flamegraph" < collapsed.data > flamegraph_reth.svg - name: Upload artifacts - flamegraph_reth.svg uses: actions/upload-artifact@v4 From d60eb1558ebd66689270acd240f66ad127170280 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 15:11:05 -0300 Subject: [PATCH 65/80] chore: ci: bump up iterations --- .github/scripts/flamegraph_watcher.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index ac1ba04169..f90776b294 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -4,7 +4,7 @@ # then polls the account balance until the expected balance has been reached # and then kills the process. It also measures the elapsed time of the test and # outputs it to Github Action's outputs. -iterations=200 +iterations=1000 value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((171 * $iterations * $value)) From 6d25f4abbe5aaa786997fe4a7651c84f3080cab7 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 15:15:03 -0300 Subject: [PATCH 66/80] chore: ci: fix cargo install --- .github/workflows/flamegraph_reporter.yaml | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index af147d2b3c..bed67b3e1b 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -79,8 +79,12 @@ jobs: - name: Install flamegraph run: | - cargo install flamegraph - cargo install inferno + if [ ! -f "./cargo/bin/flamegraph" ]; then + cargo install --force flamegraph + fi + if [ ! -f "./cargo/bin/inferno" ]; then + cargo install --force inferno + fi - name: Install ethrex_l2 cli run: | @@ -191,12 +195,16 @@ jobs: - name: Install flamegraph run: | - cargo install flamegraph - cargo install inferno + if [ ! -f "./cargo/bin/flamegraph" ]; then + cargo install --force flamegraph + fi + if [ ! -f "./cargo/bin/inferno" ]; then + cargo install --force inferno + fi - name: Install ethrex_l2 cli run: | - cargo install --path cmd/ethrex_l2 + cargo install --force --path cmd/ethrex_l2 ethrex_l2 config create default --default ethrex_l2 config set default From 9043e78f8ed18e61134de93092d773cdaac70fcc Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 15:42:41 -0300 Subject: [PATCH 67/80] chore: ci: fix ethrex and rex cache. --- .github/workflows/flamegraph_reporter.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index bed67b3e1b..683f049616 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -92,9 +92,6 @@ jobs: ethrex_l2 config create default --default ethrex_l2 config set default - - name: Build ethrex - run: CARGO_PROFILE_RELEASE_DEBUG=true cargo build --release --bin ethrex --features dev - - id: generate-flamegraph-ethrex name: Generate Flamegraph data for Ethrex shell: bash @@ -212,7 +209,9 @@ jobs: id: cache-reth-binary uses: actions/cache@v4 with: - path: ./reth/target/profiling + path: + ./reth/target/ + ~/.cargo key: reth-binary-${{ env.RUST_RETH_VERSION }}-${{ runner.os }}-${{ hashFiles('reth/**/*.rs') }} - id: generate-flamegraph-reth @@ -222,7 +221,10 @@ jobs: run: | cd ./reth if [ ! -f "target/profiling/reth" ]; then + echo "reth binary not in cache, building..." CARGO_PROFILE_RELEASE_DEBUG=true cargo build --profile profiling + else + echo "reth binary cached, skipping build" fi CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \ --bin reth --profile profiling -- node --chain /home/runner/work/ethrex/ethrex/test_data/genesis-load-test.json --dev \ From 687f0da9d11d35c1bb0ac7b5525832307e96b442 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 15:58:12 -0300 Subject: [PATCH 68/80] chore: ci: fix merge issue in daily_reports.yaml --- .github/scripts/publish_link_flamegraphs.sh | 2 +- .github/workflows/daily_reports.yaml | 36 ++++++++------------- 2 files changed, 14 insertions(+), 24 deletions(-) diff --git a/.github/scripts/publish_link_flamegraphs.sh b/.github/scripts/publish_link_flamegraphs.sh index 5b9f9f01ed..4440d561c3 100644 --- a/.github/scripts/publish_link_flamegraphs.sh +++ b/.github/scripts/publish_link_flamegraphs.sh @@ -20,4 +20,4 @@ curl -XPOST -H "Content-type: application/json" -d '{ } } ] -}' "$url" +}' "$1" diff --git a/.github/workflows/daily_reports.yaml b/.github/workflows/daily_reports.yaml index d8dc33699e..78eabb24a9 100644 --- a/.github/workflows/daily_reports.yaml +++ b/.github/workflows/daily_reports.yaml @@ -15,19 +15,19 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - vm: [levm, revm] + vm: [ levm, revm ] test: - { - name: "Rpc Compat tests", - file_name: rpc-compat, - simulation: ethereum/rpc-compat, - } + name: "Rpc Compat tests", + file_name: rpc-compat, + simulation: ethereum/rpc-compat, + } - { name: "Devp2p eth tests", file_name: devp2p, simulation: devp2p } - { - name: "Cancun Engine tests", - file_name: engine, - simulation: ethereum/engine, - } + name: "Cancun Engine tests", + file_name: engine, + simulation: ethereum/engine, + } - { name: "Sync tests", file_name: sync, simulation: ethereum/sync } steps: @@ -67,7 +67,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - vm: [levm, revm] + vm: [ levm, revm ] steps: - name: Checkout sources uses: actions/checkout@v4 @@ -198,17 +198,7 @@ jobs: name: Post to Slack link to Flamegraphs Page runs-on: ubuntu-latest steps: - - name: Post results to ethrex L1 slack channel + - name: Post message to slack env: - url: ${{ secrets.ETHREX_L1_SLACK_WEBHOOK }} - run: sh .github/scripts/publish_link_flamegraphs.sh - - - name: Post results to ethrex L2 slack channel - env: - url: ${{ secrets.ETHREX_L2_SLACK_WEBHOOK }} - run: sh .github/scripts/publish_link_flamegraphs.sh - - - name: Post results to levm slack channel - env: - url: ${{ secrets.LEVM_SLACK_WEBHOOK }} - run: sh .github/scripts/publish_link_flamegraphs.sh + SLACK_WEBHOOK: ${{ secrets.TEST_CHANNEL_SLACK }} + run: sh .github/scripts/publish_link_flamegraphs.sh $SLACK_WEBHOOK From f72caccbeccc55a50d37939c51a7276063a8f48d Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 16:25:51 -0300 Subject: [PATCH 69/80] chore: ci: bump up iterations for testing cache --- .github/scripts/flamegraph_watcher.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index f90776b294..8ad8133340 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -4,7 +4,7 @@ # then polls the account balance until the expected balance has been reached # and then kills the process. It also measures the elapsed time of the test and # outputs it to Github Action's outputs. -iterations=1000 +iterations=1500 value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((171 * $iterations * $value)) From 195013070a3d97db3ad0dcf99b5d30deba385e2f Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 17:10:09 -0300 Subject: [PATCH 70/80] chore: ci: Separate into 2 CI jobs for better cache --- .github/workflows/ci_flamegraph_setup.yaml | 50 ++++++ .github/workflows/flamegraph_reporter.yaml | 199 ++++++++------------- 2 files changed, 129 insertions(+), 120 deletions(-) create mode 100644 .github/workflows/ci_flamegraph_setup.yaml diff --git a/.github/workflows/ci_flamegraph_setup.yaml b/.github/workflows/ci_flamegraph_setup.yaml new file mode 100644 index 0000000000..639090da26 --- /dev/null +++ b/.github/workflows/ci_flamegraph_setup.yaml @@ -0,0 +1,50 @@ +name: Setup Flamegraph Deps + +on: + workflow_call: + outputs: + cache-key: + description: "Cache key for the setup" + value: ${{ jobs.setup.outputs.cache-key }} + +jobs: + setup: + runs-on: ubuntu-latest + outputs: + cache-key: ${{ steps.set-cache-key.outputs.key }} + + steps: + - name: Generate cache key + id: set-cache-key + run: echo "key=${{ runner.os }}-flamegraph-setup-${{ github.sha }}" >> $GITHUB_OUTPUT + + - name: Setup perf and system + run: | + sudo sysctl kernel.perf_event_paranoid=-1 + sudo sysctl -w kernel.kptr_restrict=0 + sudo chmod +r /proc/kallsyms + sudo perf list hw + + - name: Cache tooling + uses: actions/cache@v4 + id: tools-cache + with: + path: | + ~/.cargo/bin/addr2line + ~/.cargo/bin/flamegraph + ~/.cargo/bin/inferno + key: ${{ steps.set-cache-key.outputs.key }} + + - name: Install addr2line + if: steps.tools-cache.outputs.cache-hit != 'true' + run: | + git clone https://github.com/gimli-rs/addr2line + cd addr2line + echo "[workspace]" >> ./Cargo.toml + cargo install --force --features="bin" addr2line + + - name: Install flamegraph tools + if: steps.tools-cache.outputs.cache-hit != 'true' + run: | + cargo install --force flamegraph + cargo install --force inferno diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 683f049616..6906366d7e 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -17,7 +17,11 @@ env: RUST_RETH_VERSION: 1.84.0 jobs: + setup: + uses: ./.github/workflows/ci_flamegraph_setup.yaml + flamegraph-ethrex: + needs: setup name: Generate Flamegraph for Ethrex runs-on: ubuntu-latest env: @@ -28,74 +32,60 @@ jobs: - name: Checkout sources uses: actions/checkout@v4 - - name: Rustup toolchain install - uses: dtolnay/rust-toolchain@stable + - name: Restore flamegraph tools + uses: actions/cache@v4 with: - toolchain: ${{ env.RUST_VERSION }} - - - name: Caching - uses: Swatinem/rust-cache@v2 + path: | + ~/.cargo/bin/addr2line + ~/.cargo/bin/flamegraph + ~/.cargo/bin/inferno-collapse + key: ${{ needs.setup.outputs.cache-key }} + fail-on-cache-miss: true + + - name: Check cached binaries + id: check-binaries + run: | + ls -l ~/.cargo/bin + which addr2line || exit + which flamegraph || exit + which inferno-collapse-perf || exit + which inferno-flamegraph || exit - - name: Cache Cargo binaries + - name: Cache Cargo dependencies uses: actions/cache@v4 with: - path: ~/.cargo/bin - key: ${{ runner.os }}-cargo-install-${{ hashFiles('cmd/ethrex_l2/Cargo.toml') }} - restore-keys: | - ${{ runner.os }}-cargo-install- - - - name: Change perf settings - run: | - sudo sysctl kernel.perf_event_paranoid=-1 - sudo sysctl -w kernel.kptr_restrict=0 - sudo chmod +r /proc/kallsyms - sudo perf list hw + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-cargo-deps-${{ hashFiles('**/Cargo.lock', '**/Cargo.toml') }} - - name: Check addr2line installation - id: check-addr2line - run: | - if [ -f "./cargo/bin/addr2line" ]; then - echo "./cargo/bin/addr2line found" - echo "addr2line_exists=true" >> $GITHUB_OUTPUT - else - echo "./cargo/bin/addr2line NOT found" - echo "addr2line_exists=false" >> $GITHUB_OUTPUT - fi - - - name: Checkout gimli addr2line - if: steps.check-addr2line.outputs.addr2line_exists != 'true' - uses: actions/checkout@v4 + - name: Cache ethrex_l2 binary + id: cache-ethrex + uses: actions/cache@v4 with: - repository: gimli-rs/addr2line - path: "addr2line" + path: | + ~/.cargo/bin/ethrex_l2 + target/release/ethrex_l2 + key: ${{ runner.os }}-ethrex-binary-${{ hashFiles('cmd/ethrex_l2/**/*.rs', 'cmd/ethrex_l2/Cargo.toml') }} - - name: Build gimli addr2line - if: steps.check-addr2line.outputs.addr2line_exists != 'true' - working-directory: ./addr2line - run: | - # Little hack we need else it throws error building - echo "[workspace]" >> ./Cargo.toml - cargo install --force --features="bin" addr2line + - name: Install ethrex_l2 + if: steps.cache-ethrex.outputs.cache-hit != 'true' + run: cargo install --path cmd/ethrex_l2 - - name: Install flamegraph - run: | - if [ ! -f "./cargo/bin/flamegraph" ]; then - cargo install --force flamegraph - fi - if [ ! -f "./cargo/bin/inferno" ]; then - cargo install --force inferno - fi - - - name: Install ethrex_l2 cli + - name: Configure ethrex_l2 run: | - cargo install --path cmd/ethrex_l2 ethrex_l2 config create default --default ethrex_l2 config set default + #- name: Caching + # uses: Swatinem/rust-cache@v2 + - id: generate-flamegraph-ethrex name: Generate Flamegraph data for Ethrex shell: bash run: | + rm -rf target/release/ethrex CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \ --bin ethrex --features dev -- --network /home/runner/work/ethrex/ethrex/test_data/genesis-l2.json --http.port 1729 >/dev/null & while [ ! -x "./target/release/ethrex" ]; do @@ -122,6 +112,7 @@ jobs: path: ./flamegraph_ethrex.svg flamegraph-reth: + needs: setup name: Generate Flamegraph for Reth runs-on: ubuntu-latest env: @@ -132,10 +123,42 @@ jobs: - name: Checkout sources uses: actions/checkout@v4 - - name: Rustup toolchain install - uses: dtolnay/rust-toolchain@stable + - name: Restore flamegraph tools + uses: actions/cache@v4 + with: + path: | + ~/.cargo/bin/addr2line + ~/.cargo/bin/flamegraph + ~/.cargo/bin/inferno + key: ${{ needs.setup.outputs.cache-key }} + fail-on-cache-miss: true + + - name: Check cached binaries + id: check-binaries + run: | + ls -l ~/.cargo/bin + which addr2line || exit + which flamegraph || exit + which inferno-collapse-perf || exit + which inferno-flamegraph || exit + + - name: Cache ethrex_l2 binary + id: cache-ethrex + uses: actions/cache@v4 with: - toolchain: ${{ env.RUST_RETH_VERSION }} + path: | + ~/.cargo/bin/ethrex_l2 + target/release/ethrex_l2 + key: ${{ runner.os }}-ethrex-binary-${{ hashFiles('cmd/ethrex_l2/**/*.rs', 'cmd/ethrex_l2/Cargo.toml') }} + + - name: Install ethrex_l2 if needed + if: steps.cache-ethrex.outputs.cache-hit != 'true' + run: cargo install --path cmd/ethrex_l2 + + - name: Configure ethrex_l2 + run: | + ethrex_l2 config create default --default + ethrex_l2 config set default - name: Checkout reth uses: actions/checkout@v4 @@ -148,7 +171,6 @@ jobs: uses: actions/cache@v4 with: path: | - ~/.cargo/bin ~/.cargo/registry ~/.cargo/git reth/target @@ -157,75 +179,13 @@ jobs: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}- ${{ runner.os }}-cargo- - - name: Change perf settings - run: | - sudo sysctl kernel.perf_event_paranoid=-1 - sudo sysctl -w kernel.kptr_restrict=0 - sudo chmod +r /proc/kallsyms - sudo perf list hw - - - name: Check addr2line installation - id: check-addr2line - run: | - if [ -f "./cargo/bin/addr2line" ]; then - echo "./cargo/bin/addr2line found" - echo "addr2line_exists=true" >> $GITHUB_OUTPUT - else - echo "./cargo/bin/addr2line NOT found" - echo "addr2line_exists=false" >> $GITHUB_OUTPUT - fi - - - name: Checkout gimli addr2line - if: steps.check-addr2line.outputs.addr2line_exists != 'true' - uses: actions/checkout@v4 - with: - repository: gimli-rs/addr2line - path: "addr2line" - - - name: Build gimli addr2line - if: steps.check-addr2line.outputs.addr2line_exists != 'true' - working-directory: ./addr2line - run: | - # Little hack we need else it throws error building - echo "[workspace]" >> ./Cargo.toml - cargo install --force --features="bin" addr2line - - - name: Install flamegraph - run: | - if [ ! -f "./cargo/bin/flamegraph" ]; then - cargo install --force flamegraph - fi - if [ ! -f "./cargo/bin/inferno" ]; then - cargo install --force inferno - fi - - - name: Install ethrex_l2 cli - run: | - cargo install --force --path cmd/ethrex_l2 - ethrex_l2 config create default --default - ethrex_l2 config set default - - - name: Cache reth binary - id: cache-reth-binary - uses: actions/cache@v4 - with: - path: - ./reth/target/ - ~/.cargo - key: reth-binary-${{ env.RUST_RETH_VERSION }}-${{ runner.os }}-${{ hashFiles('reth/**/*.rs') }} - - id: generate-flamegraph-reth name: Build and test reth shell: bash # --dev.block-time 1000ms set to 1000ms to match ethrex block generation time run: | cd ./reth - if [ ! -f "target/profiling/reth" ]; then - echo "reth binary not in cache, building..." - CARGO_PROFILE_RELEASE_DEBUG=true cargo build --profile profiling - else - echo "reth binary cached, skipping build" - fi + rm -rf target/profiling/reth CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \ --bin reth --profile profiling -- node --chain /home/runner/work/ethrex/ethrex/test_data/genesis-load-test.json --dev \ --dev.block-time 1000ms --http.port 1729 --txpool.max-pending-txns 100000000 --txpool.max-new-txns 1000000000 \ @@ -240,7 +200,6 @@ jobs: bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_watcher.sh && echo "Load test finished" - - name: Generate SVG shell: bash run: | From 71b8389c9fc48e88623f24bdc318da36871c144a Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 17:38:21 -0300 Subject: [PATCH 71/80] Revert "chore: ci: Separate into 2 CI jobs for better cache" This reverts commit 195013070a3d97db3ad0dcf99b5d30deba385e2f. --- .github/workflows/ci_flamegraph_setup.yaml | 50 ------ .github/workflows/flamegraph_reporter.yaml | 199 +++++++++++++-------- 2 files changed, 120 insertions(+), 129 deletions(-) delete mode 100644 .github/workflows/ci_flamegraph_setup.yaml diff --git a/.github/workflows/ci_flamegraph_setup.yaml b/.github/workflows/ci_flamegraph_setup.yaml deleted file mode 100644 index 639090da26..0000000000 --- a/.github/workflows/ci_flamegraph_setup.yaml +++ /dev/null @@ -1,50 +0,0 @@ -name: Setup Flamegraph Deps - -on: - workflow_call: - outputs: - cache-key: - description: "Cache key for the setup" - value: ${{ jobs.setup.outputs.cache-key }} - -jobs: - setup: - runs-on: ubuntu-latest - outputs: - cache-key: ${{ steps.set-cache-key.outputs.key }} - - steps: - - name: Generate cache key - id: set-cache-key - run: echo "key=${{ runner.os }}-flamegraph-setup-${{ github.sha }}" >> $GITHUB_OUTPUT - - - name: Setup perf and system - run: | - sudo sysctl kernel.perf_event_paranoid=-1 - sudo sysctl -w kernel.kptr_restrict=0 - sudo chmod +r /proc/kallsyms - sudo perf list hw - - - name: Cache tooling - uses: actions/cache@v4 - id: tools-cache - with: - path: | - ~/.cargo/bin/addr2line - ~/.cargo/bin/flamegraph - ~/.cargo/bin/inferno - key: ${{ steps.set-cache-key.outputs.key }} - - - name: Install addr2line - if: steps.tools-cache.outputs.cache-hit != 'true' - run: | - git clone https://github.com/gimli-rs/addr2line - cd addr2line - echo "[workspace]" >> ./Cargo.toml - cargo install --force --features="bin" addr2line - - - name: Install flamegraph tools - if: steps.tools-cache.outputs.cache-hit != 'true' - run: | - cargo install --force flamegraph - cargo install --force inferno diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 6906366d7e..683f049616 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -17,11 +17,7 @@ env: RUST_RETH_VERSION: 1.84.0 jobs: - setup: - uses: ./.github/workflows/ci_flamegraph_setup.yaml - flamegraph-ethrex: - needs: setup name: Generate Flamegraph for Ethrex runs-on: ubuntu-latest env: @@ -32,60 +28,74 @@ jobs: - name: Checkout sources uses: actions/checkout@v4 - - name: Restore flamegraph tools - uses: actions/cache@v4 + - name: Rustup toolchain install + uses: dtolnay/rust-toolchain@stable with: - path: | - ~/.cargo/bin/addr2line - ~/.cargo/bin/flamegraph - ~/.cargo/bin/inferno-collapse - key: ${{ needs.setup.outputs.cache-key }} - fail-on-cache-miss: true - - - name: Check cached binaries - id: check-binaries - run: | - ls -l ~/.cargo/bin - which addr2line || exit - which flamegraph || exit - which inferno-collapse-perf || exit - which inferno-flamegraph || exit + toolchain: ${{ env.RUST_VERSION }} + + - name: Caching + uses: Swatinem/rust-cache@v2 - - name: Cache Cargo dependencies + - name: Cache Cargo binaries uses: actions/cache@v4 with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: ${{ runner.os }}-cargo-deps-${{ hashFiles('**/Cargo.lock', '**/Cargo.toml') }} + path: ~/.cargo/bin + key: ${{ runner.os }}-cargo-install-${{ hashFiles('cmd/ethrex_l2/Cargo.toml') }} + restore-keys: | + ${{ runner.os }}-cargo-install- - - name: Cache ethrex_l2 binary - id: cache-ethrex - uses: actions/cache@v4 + - name: Change perf settings + run: | + sudo sysctl kernel.perf_event_paranoid=-1 + sudo sysctl -w kernel.kptr_restrict=0 + sudo chmod +r /proc/kallsyms + sudo perf list hw + + - name: Check addr2line installation + id: check-addr2line + run: | + if [ -f "./cargo/bin/addr2line" ]; then + echo "./cargo/bin/addr2line found" + echo "addr2line_exists=true" >> $GITHUB_OUTPUT + else + echo "./cargo/bin/addr2line NOT found" + echo "addr2line_exists=false" >> $GITHUB_OUTPUT + fi + + - name: Checkout gimli addr2line + if: steps.check-addr2line.outputs.addr2line_exists != 'true' + uses: actions/checkout@v4 with: - path: | - ~/.cargo/bin/ethrex_l2 - target/release/ethrex_l2 - key: ${{ runner.os }}-ethrex-binary-${{ hashFiles('cmd/ethrex_l2/**/*.rs', 'cmd/ethrex_l2/Cargo.toml') }} + repository: gimli-rs/addr2line + path: "addr2line" - - name: Install ethrex_l2 - if: steps.cache-ethrex.outputs.cache-hit != 'true' - run: cargo install --path cmd/ethrex_l2 + - name: Build gimli addr2line + if: steps.check-addr2line.outputs.addr2line_exists != 'true' + working-directory: ./addr2line + run: | + # Little hack we need else it throws error building + echo "[workspace]" >> ./Cargo.toml + cargo install --force --features="bin" addr2line - - name: Configure ethrex_l2 + - name: Install flamegraph + run: | + if [ ! -f "./cargo/bin/flamegraph" ]; then + cargo install --force flamegraph + fi + if [ ! -f "./cargo/bin/inferno" ]; then + cargo install --force inferno + fi + + - name: Install ethrex_l2 cli run: | + cargo install --path cmd/ethrex_l2 ethrex_l2 config create default --default ethrex_l2 config set default - #- name: Caching - # uses: Swatinem/rust-cache@v2 - - id: generate-flamegraph-ethrex name: Generate Flamegraph data for Ethrex shell: bash run: | - rm -rf target/release/ethrex CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \ --bin ethrex --features dev -- --network /home/runner/work/ethrex/ethrex/test_data/genesis-l2.json --http.port 1729 >/dev/null & while [ ! -x "./target/release/ethrex" ]; do @@ -112,7 +122,6 @@ jobs: path: ./flamegraph_ethrex.svg flamegraph-reth: - needs: setup name: Generate Flamegraph for Reth runs-on: ubuntu-latest env: @@ -123,42 +132,10 @@ jobs: - name: Checkout sources uses: actions/checkout@v4 - - name: Restore flamegraph tools - uses: actions/cache@v4 - with: - path: | - ~/.cargo/bin/addr2line - ~/.cargo/bin/flamegraph - ~/.cargo/bin/inferno - key: ${{ needs.setup.outputs.cache-key }} - fail-on-cache-miss: true - - - name: Check cached binaries - id: check-binaries - run: | - ls -l ~/.cargo/bin - which addr2line || exit - which flamegraph || exit - which inferno-collapse-perf || exit - which inferno-flamegraph || exit - - - name: Cache ethrex_l2 binary - id: cache-ethrex - uses: actions/cache@v4 + - name: Rustup toolchain install + uses: dtolnay/rust-toolchain@stable with: - path: | - ~/.cargo/bin/ethrex_l2 - target/release/ethrex_l2 - key: ${{ runner.os }}-ethrex-binary-${{ hashFiles('cmd/ethrex_l2/**/*.rs', 'cmd/ethrex_l2/Cargo.toml') }} - - - name: Install ethrex_l2 if needed - if: steps.cache-ethrex.outputs.cache-hit != 'true' - run: cargo install --path cmd/ethrex_l2 - - - name: Configure ethrex_l2 - run: | - ethrex_l2 config create default --default - ethrex_l2 config set default + toolchain: ${{ env.RUST_RETH_VERSION }} - name: Checkout reth uses: actions/checkout@v4 @@ -171,6 +148,7 @@ jobs: uses: actions/cache@v4 with: path: | + ~/.cargo/bin ~/.cargo/registry ~/.cargo/git reth/target @@ -179,13 +157,75 @@ jobs: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}- ${{ runner.os }}-cargo- + - name: Change perf settings + run: | + sudo sysctl kernel.perf_event_paranoid=-1 + sudo sysctl -w kernel.kptr_restrict=0 + sudo chmod +r /proc/kallsyms + sudo perf list hw + + - name: Check addr2line installation + id: check-addr2line + run: | + if [ -f "./cargo/bin/addr2line" ]; then + echo "./cargo/bin/addr2line found" + echo "addr2line_exists=true" >> $GITHUB_OUTPUT + else + echo "./cargo/bin/addr2line NOT found" + echo "addr2line_exists=false" >> $GITHUB_OUTPUT + fi + + - name: Checkout gimli addr2line + if: steps.check-addr2line.outputs.addr2line_exists != 'true' + uses: actions/checkout@v4 + with: + repository: gimli-rs/addr2line + path: "addr2line" + + - name: Build gimli addr2line + if: steps.check-addr2line.outputs.addr2line_exists != 'true' + working-directory: ./addr2line + run: | + # Little hack we need else it throws error building + echo "[workspace]" >> ./Cargo.toml + cargo install --force --features="bin" addr2line + + - name: Install flamegraph + run: | + if [ ! -f "./cargo/bin/flamegraph" ]; then + cargo install --force flamegraph + fi + if [ ! -f "./cargo/bin/inferno" ]; then + cargo install --force inferno + fi + + - name: Install ethrex_l2 cli + run: | + cargo install --force --path cmd/ethrex_l2 + ethrex_l2 config create default --default + ethrex_l2 config set default + + - name: Cache reth binary + id: cache-reth-binary + uses: actions/cache@v4 + with: + path: + ./reth/target/ + ~/.cargo + key: reth-binary-${{ env.RUST_RETH_VERSION }}-${{ runner.os }}-${{ hashFiles('reth/**/*.rs') }} + - id: generate-flamegraph-reth name: Build and test reth shell: bash # --dev.block-time 1000ms set to 1000ms to match ethrex block generation time run: | cd ./reth - rm -rf target/profiling/reth + if [ ! -f "target/profiling/reth" ]; then + echo "reth binary not in cache, building..." + CARGO_PROFILE_RELEASE_DEBUG=true cargo build --profile profiling + else + echo "reth binary cached, skipping build" + fi CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \ --bin reth --profile profiling -- node --chain /home/runner/work/ethrex/ethrex/test_data/genesis-load-test.json --dev \ --dev.block-time 1000ms --http.port 1729 --txpool.max-pending-txns 100000000 --txpool.max-new-txns 1000000000 \ @@ -200,6 +240,7 @@ jobs: bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_watcher.sh && echo "Load test finished" + - name: Generate SVG shell: bash run: | From adcfeb69f5893d90bb01fa39b164df4db3db0930 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 17:56:08 -0300 Subject: [PATCH 72/80] chore: ci: Just use Swatinem/rust-cache@v2 for caching --- .github/workflows/flamegraph_reporter.yaml | 64 +++++++++------------- 1 file changed, 26 insertions(+), 38 deletions(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 683f049616..b95de45dc4 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -36,14 +36,6 @@ jobs: - name: Caching uses: Swatinem/rust-cache@v2 - - name: Cache Cargo binaries - uses: actions/cache@v4 - with: - path: ~/.cargo/bin - key: ${{ runner.os }}-cargo-install-${{ hashFiles('cmd/ethrex_l2/Cargo.toml') }} - restore-keys: | - ${{ runner.os }}-cargo-install- - - name: Change perf settings run: | sudo sysctl kernel.perf_event_paranoid=-1 @@ -81,14 +73,22 @@ jobs: run: | if [ ! -f "./cargo/bin/flamegraph" ]; then cargo install --force flamegraph + else + echo "./cargo/bin/flamegraph" already found fi - if [ ! -f "./cargo/bin/inferno" ]; then + if [ ! -f "./cargo/bin/inferno-collapse-perf" ]; then cargo install --force inferno + else + echo "./cargo/bin/inferno-collapse-perf" already found fi - name: Install ethrex_l2 cli run: | - cargo install --path cmd/ethrex_l2 + if [ -f "./cargo/bin/ethrex_l2" ]; then + echo "./cargo/bin/ethrex_l2" already found + else + cargo install --path cmd/ethrex_l2 + fi ethrex_l2 config create default --default ethrex_l2 config set default @@ -96,6 +96,7 @@ jobs: name: Generate Flamegraph data for Ethrex shell: bash run: | + rm -rf target/release/ethrex CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \ --bin ethrex --features dev -- --network /home/runner/work/ethrex/ethrex/test_data/genesis-l2.json --http.port 1729 >/dev/null & while [ ! -x "./target/release/ethrex" ]; do @@ -144,18 +145,11 @@ jobs: path: "reth" ref: main - - name: Cache cargo dependencies - uses: actions/cache@v4 + - name: Caching + uses: Swatinem/rust-cache@v2 with: - path: | - ~/.cargo/bin - ~/.cargo/registry - ~/.cargo/git - reth/target - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}-${{ env.RUST_RETH_VERSION }} - restore-keys: | - ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}- - ${{ runner.os }}-cargo- + workspaces: '. -> target + ./reth -> ./reth/target' - name: Change perf settings run: | @@ -194,38 +188,32 @@ jobs: run: | if [ ! -f "./cargo/bin/flamegraph" ]; then cargo install --force flamegraph + else + echo "./cargo/bin/flamegraph" already found fi - if [ ! -f "./cargo/bin/inferno" ]; then + if [ ! -f "./cargo/bin/inferno-collapse-perf" ]; then cargo install --force inferno + else + echo "./cargo/bin/inferno-collapse-perf" already found fi - name: Install ethrex_l2 cli run: | - cargo install --force --path cmd/ethrex_l2 + if [ -f "./cargo/bin/ethrex_l2" ]; then + echo "./cargo/bin/ethrex_l2" already found + else + cargo install --path cmd/ethrex_l2 + fi ethrex_l2 config create default --default ethrex_l2 config set default - - name: Cache reth binary - id: cache-reth-binary - uses: actions/cache@v4 - with: - path: - ./reth/target/ - ~/.cargo - key: reth-binary-${{ env.RUST_RETH_VERSION }}-${{ runner.os }}-${{ hashFiles('reth/**/*.rs') }} - - id: generate-flamegraph-reth name: Build and test reth shell: bash # --dev.block-time 1000ms set to 1000ms to match ethrex block generation time run: | cd ./reth - if [ ! -f "target/profiling/reth" ]; then - echo "reth binary not in cache, building..." - CARGO_PROFILE_RELEASE_DEBUG=true cargo build --profile profiling - else - echo "reth binary cached, skipping build" - fi + rm -rf target/profiling/reth CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \ --bin reth --profile profiling -- node --chain /home/runner/work/ethrex/ethrex/test_data/genesis-load-test.json --dev \ --dev.block-time 1000ms --http.port 1729 --txpool.max-pending-txns 100000000 --txpool.max-new-txns 1000000000 \ From ae1bb5c25a446a88e1e805b931a63612a3ac13a8 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 18:20:39 -0300 Subject: [PATCH 73/80] chore: ci: Change iterations to test CI cache --- .github/scripts/flamegraph_watcher.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index 8ad8133340..6f3f50f5bc 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -4,7 +4,7 @@ # then polls the account balance until the expected balance has been reached # and then kills the process. It also measures the elapsed time of the test and # outputs it to Github Action's outputs. -iterations=1500 +iterations=800 value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((171 * $iterations * $value)) From 82782f9e51525c3704e9d8680ae750de773f7423 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Thu, 16 Jan 2025 19:38:26 -0300 Subject: [PATCH 74/80] chore: ci: Attempt to cache binaries --- .github/scripts/flamegraph_watcher.sh | 2 +- .github/workflows/flamegraph_reporter.yaml | 34 ++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index 6f3f50f5bc..96d8459ef5 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -4,7 +4,7 @@ # then polls the account balance until the expected balance has been reached # and then kills the process. It also measures the elapsed time of the test and # outputs it to Github Action's outputs. -iterations=800 +iterations=500 value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((171 * $iterations * $value)) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index b95de45dc4..9db190ead4 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -36,6 +36,23 @@ jobs: - name: Caching uses: Swatinem/rust-cache@v2 + - name: Cache Extra Binaries + id: cache-binaries + uses: actions/cache@v4 + with: + path: | + ~/.cargo/bin/addr2line + ~/.cargo/bin/flamegraph + ~/.cargo/bin/inferno-* + key: ${{ runner.os }}-${{ env.RUST_VERSION }}-extra-binaries + + - name: Cache ethrex_l2 + id: cache-ethrex-l2 + uses: actions/cache@v4 + with: + path: ~/.cargo/bin/ethrex_l2 + key: ${{ runner.os }}-${{ env.RUST_VERSION }}-ethrex-l2-${{ hashFiles('cmd/ethrex_l2/Cargo.lock') }} + - name: Change perf settings run: | sudo sysctl kernel.perf_event_paranoid=-1 @@ -151,6 +168,23 @@ jobs: workspaces: '. -> target ./reth -> ./reth/target' + - name: Cache Extra Binaries + id: cache-binaries + uses: actions/cache@v4 + with: + path: | + ~/.cargo/bin/addr2line + ~/.cargo/bin/flamegraph + ~/.cargo/bin/inferno-* + key: ${{ runner.os }}-${{ env.RUST_VERSION }}-extra-binaries + + - name: Cache ethrex_l2 + id: cache-ethrex-l2 + uses: actions/cache@v4 + with: + path: ~/.cargo/bin/ethrex_l2 + key: ${{ runner.os }}-${{ env.RUST_VERSION }}-ethrex-l2-${{ hashFiles('cmd/ethrex_l2/Cargo.lock') }} + - name: Change perf settings run: | sudo sysctl kernel.perf_event_paranoid=-1 From ff0553f577f3de0426e23455857df04319c418fa Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Fri, 17 Jan 2025 10:15:34 -0300 Subject: [PATCH 75/80] chore: ci: Change action name & only trigger on commits to main. --- .github/workflows/flamegraph_reporter.yaml | 4 +--- scripts/flamegraph.sh | 1 + 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index 9db190ead4..aab64dcf03 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -1,4 +1,4 @@ -name: Daily Flamegraph Reporter +name: Flamegraph Reporter permissions: contents: read @@ -8,8 +8,6 @@ permissions: on: push: branches: [ "main" ] - pull_request: - branches: [ "**" ] workflow_dispatch: env: diff --git a/scripts/flamegraph.sh b/scripts/flamegraph.sh index 2d9f40668f..1c441ce9c0 100644 --- a/scripts/flamegraph.sh +++ b/scripts/flamegraph.sh @@ -28,6 +28,7 @@ output=$(ethrex_l2 info -b -a $account --wei 2>&1) echo "Balance of $output reached in $minutes min $seconds s, killing process" sudo pkill ethrex +spinner=( '/' '-' '\' '|' ) while pgrep -l "perf" >/dev/null; do for s in "${spinner[@]}"; do From e00c1539dee8fc5c629ff8a29d6d3b661933bd0f Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Fri, 17 Jan 2025 10:47:29 -0300 Subject: [PATCH 76/80] chore: ci: Fix link unfurling in Slack message --- .github/scripts/publish_link_flamegraphs.sh | 14 ++++++++------ .github/workflows/flamegraph_reporter.yaml | 2 +- pages/index.html | 4 ++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.github/scripts/publish_link_flamegraphs.sh b/.github/scripts/publish_link_flamegraphs.sh index 4440d561c3..32938ecd84 100644 --- a/.github/scripts/publish_link_flamegraphs.sh +++ b/.github/scripts/publish_link_flamegraphs.sh @@ -4,7 +4,7 @@ curl -XPOST -H "Content-type: application/json" -d '{ "type": "header", "text": { "type": "plain_text", - "text": "Daily Flamegraph Report" + "text": "๐Ÿ”ฅ Daily Flamegraph Report" } }, { @@ -14,10 +14,12 @@ curl -XPOST -H "Content-type: application/json" -d '{ "type": "section", "text": { "type": "mrkdwn", - "text": "๐Ÿ”ฅ Flamegraphs are available at **\n - โ€ข **\n - โ€ข **\n" + "text": "Flamegraphs are available at **\n + โ€ข **\n + โ€ข **\n" } - } - ] + }, + ], + "unfurl_links": true, + "unfurl_media": true }' "$1" diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index aab64dcf03..dc60317b9d 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -7,7 +7,7 @@ permissions: on: push: - branches: [ "main" ] + branches: [ "main", "automate-perf-tests" ] workflow_dispatch: env: diff --git a/pages/index.html b/pages/index.html index 53d91b4038..df69995c16 100644 --- a/pages/index.html +++ b/pages/index.html @@ -10,9 +10,9 @@ - + - + From 5735f724039d4fbb0c2becab1746dafc9980fc0f Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Fri, 17 Jan 2025 17:42:18 -0300 Subject: [PATCH 77/80] chore: ci: Actually post links to slack --- .github/scripts/flamegraph_watcher.sh | 2 +- .github/workflows/daily_reports.yaml | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index 96d8459ef5..8ad8133340 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -4,7 +4,7 @@ # then polls the account balance until the expected balance has been reached # and then kills the process. It also measures the elapsed time of the test and # outputs it to Github Action's outputs. -iterations=500 +iterations=1500 value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((171 * $iterations * $value)) diff --git a/.github/workflows/daily_reports.yaml b/.github/workflows/daily_reports.yaml index 78eabb24a9..00fc18507e 100644 --- a/.github/workflows/daily_reports.yaml +++ b/.github/workflows/daily_reports.yaml @@ -200,5 +200,17 @@ jobs: steps: - name: Post message to slack env: - SLACK_WEBHOOK: ${{ secrets.TEST_CHANNEL_SLACK }} - run: sh .github/scripts/publish_link_flamegraphs.sh $SLACK_WEBHOOK + SLACK_WEBHOOKS: > + ${{ github.event_name == 'workflow_dispatch' + && secrets.TEST_CHANNEL_SLACK + || format( + '{0} {1} {2}', + secrets.ETHREX_L1_SLACK_WEBHOOK, + secrets.ETHREX_L2_SLACK_WEBHOOK, + secrets.LEVM_SLACK_WEBHOOK + ) + }} + run: | + for webhook in $SLACK_WEBHOOKS; do + sh .github/scripts/publish_link_flamegraphs.sh "$webhook" + done From f1532cf826550959ca99725c132b935f341b5f0c Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Mon, 20 Jan 2025 09:44:33 -0300 Subject: [PATCH 78/80] fix: ci: Fix cache paths --- .github/workflows/flamegraph_reporter.yaml | 56 +++++++++++----------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/.github/workflows/flamegraph_reporter.yaml b/.github/workflows/flamegraph_reporter.yaml index dc60317b9d..3a530e4763 100644 --- a/.github/workflows/flamegraph_reporter.yaml +++ b/.github/workflows/flamegraph_reporter.yaml @@ -39,16 +39,16 @@ jobs: uses: actions/cache@v4 with: path: | - ~/.cargo/bin/addr2line - ~/.cargo/bin/flamegraph - ~/.cargo/bin/inferno-* + ${{ env.HOME }}/.cargo/bin/addr2line + ${{ env.HOME }}/.cargo/bin/flamegraph + ${{ env.HOME }}/.cargo/bin/inferno-* key: ${{ runner.os }}-${{ env.RUST_VERSION }}-extra-binaries - name: Cache ethrex_l2 id: cache-ethrex-l2 uses: actions/cache@v4 with: - path: ~/.cargo/bin/ethrex_l2 + path: ${{ env.HOME }}/.cargo/bin/ethrex_l2 key: ${{ runner.os }}-${{ env.RUST_VERSION }}-ethrex-l2-${{ hashFiles('cmd/ethrex_l2/Cargo.lock') }} - name: Change perf settings @@ -61,11 +61,11 @@ jobs: - name: Check addr2line installation id: check-addr2line run: | - if [ -f "./cargo/bin/addr2line" ]; then - echo "./cargo/bin/addr2line found" + if [ -f "$HOME/.cargo/bin/addr2line" ]; then + echo "$HOME/.cargo/bin/addr2line found" echo "addr2line_exists=true" >> $GITHUB_OUTPUT else - echo "./cargo/bin/addr2line NOT found" + echo "$HOME/.cargo/bin/addr2line NOT found" echo "addr2line_exists=false" >> $GITHUB_OUTPUT fi @@ -86,23 +86,23 @@ jobs: - name: Install flamegraph run: | - if [ ! -f "./cargo/bin/flamegraph" ]; then + if [ ! -f "$HOME/.cargo/bin/flamegraph" ]; then cargo install --force flamegraph else - echo "./cargo/bin/flamegraph" already found + echo "$HOME/.cargo/bin/flamegraph" already found fi - if [ ! -f "./cargo/bin/inferno-collapse-perf" ]; then + if [ ! -f "$HOME/.cargo/bin/inferno-collapse-perf" ]; then cargo install --force inferno else - echo "./cargo/bin/inferno-collapse-perf" already found + echo "$HOME/.cargo/bin/inferno-collapse-perf" already found fi - name: Install ethrex_l2 cli run: | - if [ -f "./cargo/bin/ethrex_l2" ]; then - echo "./cargo/bin/ethrex_l2" already found + if [ -f "$HOME/.cargo/bin/ethrex_l2" ]; then + echo "$HOME/.cargo/bin/ethrex_l2" already found else - cargo install --path cmd/ethrex_l2 + cargo install --force --path cmd/ethrex_l2 fi ethrex_l2 config create default --default ethrex_l2 config set default @@ -171,16 +171,16 @@ jobs: uses: actions/cache@v4 with: path: | - ~/.cargo/bin/addr2line - ~/.cargo/bin/flamegraph - ~/.cargo/bin/inferno-* + ${{ env.HOME }}/.cargo/bin/addr2line + ${{ env.HOME }}/.cargo/bin/flamegraph + ${{ env.HOME }}/.cargo/bin/inferno-* key: ${{ runner.os }}-${{ env.RUST_VERSION }}-extra-binaries - name: Cache ethrex_l2 id: cache-ethrex-l2 uses: actions/cache@v4 with: - path: ~/.cargo/bin/ethrex_l2 + path: ${{ env.HOME }}/.cargo/bin/ethrex_l2 key: ${{ runner.os }}-${{ env.RUST_VERSION }}-ethrex-l2-${{ hashFiles('cmd/ethrex_l2/Cargo.lock') }} - name: Change perf settings @@ -193,11 +193,11 @@ jobs: - name: Check addr2line installation id: check-addr2line run: | - if [ -f "./cargo/bin/addr2line" ]; then - echo "./cargo/bin/addr2line found" + if [ -f "$HOME/.cargo/bin/addr2line" ]; then + echo "$HOME/.cargo/bin/addr2line found" echo "addr2line_exists=true" >> $GITHUB_OUTPUT else - echo "./cargo/bin/addr2line NOT found" + echo "$HOME/.cargo/bin/addr2line NOT found" echo "addr2line_exists=false" >> $GITHUB_OUTPUT fi @@ -218,23 +218,23 @@ jobs: - name: Install flamegraph run: | - if [ ! -f "./cargo/bin/flamegraph" ]; then + if [ ! -f "$HOME/.cargo/bin/flamegraph" ]; then cargo install --force flamegraph else - echo "./cargo/bin/flamegraph" already found + echo "$HOME/.cargo/bin/flamegraph" already found fi - if [ ! -f "./cargo/bin/inferno-collapse-perf" ]; then + if [ ! -f "$HOME/.cargo/bin/inferno-collapse-perf" ]; then cargo install --force inferno else - echo "./cargo/bin/inferno-collapse-perf" already found + echo "$HOME/.cargo/bin/inferno-collapse-perf" already found fi - name: Install ethrex_l2 cli run: | - if [ -f "./cargo/bin/ethrex_l2" ]; then - echo "./cargo/bin/ethrex_l2" already found + if [ -f "$HOME/.cargo/bin/ethrex_l2" ]; then + echo "$HOME/.cargo/bin/ethrex_l2" already found else - cargo install --path cmd/ethrex_l2 + cargo install --force --path cmd/ethrex_l2 fi ethrex_l2 config create default --default ethrex_l2 config set default From 25e81481188cebb181a61630685a22e4fcc0c7e9 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Mon, 20 Jan 2025 13:16:18 -0300 Subject: [PATCH 79/80] fix: ci: Update gas limit --- .github/scripts/flamegraph_watcher.sh | 6 +- test_data/genesis-load-test.json | 1126 ++++++++++++------------- 2 files changed, 567 insertions(+), 565 deletions(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index 8ad8133340..a8aa42350d 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -4,7 +4,7 @@ # then polls the account balance until the expected balance has been reached # and then kills the process. It also measures the elapsed time of the test and # outputs it to Github Action's outputs. -iterations=1500 +iterations=3500 value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((171 * $iterations * $value)) @@ -13,9 +13,11 @@ ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_key start_time=$(date +%s) output=$(ethrex_l2 info -b -a $account --wei 2>&1) +echo "balance: $output" while [[ $output -lt $end_val ]]; do - sleep 5 + sleep 2 output=$(ethrex_l2 info -b -a $account --wei 2>&1) + echo "balance: $output" done end_time=$(date +%s) elapsed=$((end_time - start_time)) diff --git a/test_data/genesis-load-test.json b/test_data/genesis-load-test.json index 3b35b21efe..3b8476ead7 100644 --- a/test_data/genesis-load-test.json +++ b/test_data/genesis-load-test.json @@ -1,565 +1,565 @@ { - "config": { - "chainId": 1729, - "homesteadBlock": 0, - "eip150Block": 0, - "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "eip155Block": 0, - "eip158Block": 0, - "daoForkBlock": 0, - "frontierBlock": 0, - "byzantiumBlock": 0, - "constantinopleBlock": 0, - "petersburgBlock": 0, - "muirGlacierBlock": 0, - "istanbulBlock": 0, - "berlinBlock": 0, - "londonBlock": 0, - "terminalTotalDifficulty": "0x0", - "mergeNetsplitBlock": 0, - "shanghaiTime": 0, - "cancunTime": 0, - "clique": { - "period": 0, - "epoch": 30000 - } - }, - "nonce": "0x0", - "timestamp": "0x5ca9158b", - "gasLimit": "0x37e11d600", - "difficulty": "0x0", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "coinbase": "0x0000000000000000000000000000000000000000", - "alloc": { - "0x0007a881CD95B1484fca47615B64803dad620C8d": { - "balance": "0xc097ce7bc90715b34b9f1000000000", - "nonce": "0" - }, - "0x0000bd19F707CA481886244bDd20Bd6B8a81bd3e": { - "balance": "0xc097ce7bc90715b34b9f1000000000", - "nonce": "0" - }, - "0x000cD1537A823Ae7609E3897DA8d95801B557a8a": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006d77295a0260ceAC113c5Aa15CFf0d28d9723": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000eA2e72065A2ceCA7f677Bc5E648279c2D843d": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000a52D537c4150ec274dcE3962a0d179B7E71B0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0009aEFF154De37C8e02E83f93D2FeC5EC96f8a3": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000f1EB7F258D4A7683E5D0FC3C01058841DDC6f": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000aC79590dCc656c00c4453f123AcBf10DBb086": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0002Bf507275217c9E5EE250bC1B5ca177bb4f74": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000a3fC3BFD55b37025E6F4f57B0B6121F54e5bF": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000b4C43cce938dfD3420F975591Ee46D872C136": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004b0C6de796fD980554cc7ff7B062b3B5079E1": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00025eea83bA285532F5054b238c938076833d13": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000352E93fe11f9B715fdc61864315970B3DC082": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000c0d6b7C4516a5B274C51EA331A9410fe69127": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000D06C23EeD09A7Fa81cADd7eD5C783E8a25635": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0003Ea7fDFCdb89E9ddAb0128ec5C628F8D09D45": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0005C34d7B8b06CE8019C3Bb232dE82B2748A560": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00079f33619F70F1DCE64EB6782E45D3498d807C": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0003E72436Ff296B3d39339784499D021b72Aca5": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00075af7E665F3Ca4A4b05520CD6d5c13BbFEAf8": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000b59AeD48ADCd6c36Ae5f437AbB9CA730a2c43": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004e4dfCed9d798767A4d7BA2B03495cE80A2b7": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000e73282F60E2CdE0D4FA9B323B6D54d860f330": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00010AB05661Bfde304A4d884DF99d3011A83C54": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000B9Ea41A9dF00b7ae597afc0D10AF42666081F": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00087C666bf7f52758DE186570979C4C79747157": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0008a52c83D34f0791D07FfeD04Fb6b14f94E2D4": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000A7Bbde38Fc53925D0De9cc1beE3038d36c2d2": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000Aa0154ed6560257d222B5dbE6ce4b66c48979": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000b681738e1f8aF387c41b2b1f0A04E0C33e9DB": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000D66A7706f2DD5F557d5b68e01E07E8FFDfaf5": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00069DA530A71Dc92D02090d7f5f63e326e9beD0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000db74a3da16609F183ACE7AF65B43D896349CE": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0003B1aB565508e095a543C89531e3fbc4a349DA": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0001c94c108BcE19CDb36b00F867A1798A81DedA": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000995137728C7C2a9142F4628f95c98Cac433d7": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000Ec60762AD0425A04C40c118Db5B9710Aa639e": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000Ebf88AE1BA960B06b0a9bbE576baa3B72E92E": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000e1a554572dd96fF3d1F2664832F3E4a66E7b7": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00032C03f3b02D816128Fb5D2752398E2919a03c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000A073dAC5ec2058a0De0e175874D5E297E086E": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000e06626Bb8618D9A1867362D46ddb1bF95ad75": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000212949b4866db43bAF7c4e0975426710ED081": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00094cc0653B52406170105F4eb96C5e2f31Ab74": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000E67E4b1A23A3826304099cb24f337c916CF4b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000885A4932ebeD6D760EA381e4EdAe51A53db05": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000883A40409Fa2193b698928459CB9E4DD5f8D8": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0002590DD45738F909115B163F1322A8A24a8B4E": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0005f132597da3152a6Da6beDB7C10bcC9B1B7f5": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00031470def99c1d4dfE1fd08DD7A8520Ce21DB7": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0001Ebe3a3bA36f57F5989B3F0e5BEEBc710569C": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006Bd0469166f63D0A1c33F71898D2b2E009b9b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00000A8d3f37af8DeF18832962Ee008d8dCa4F7b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000e490f26249951F8527779399aa8F281509aC0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0000638374f7dB166990BDc6aBeE884Ee01a8920": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00031dE95353DeE86dc9B1248e825500DE0B39aF": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000511B42328794337D8b6846E5cFFef30c2d77A": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000d0576AdEf7083d53F6676bfc7c30d03b6Db1B": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0001E8Ff6406a7cd9071F46B8255Db6C16178448": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000C47c771A8db282eC233b28AD8525dc74D13FE": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000798832bb08268dB237898b95A8DaE9D58b62c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000c877a5D9b9De61e5318B3f4330c56ecdC0865": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0003Ffc1f09d39FBFE87eD63E98249039C7b1d9A": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000d72403c18B2516d8ada074E1E7822bF1084DB": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00054e17Db8C8Db028B19cB0f631888AdEb35E4b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0002d9b2a816717C4d70040D66A714795F9B27a4": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0002AfCC1B0B608E86b5a1Dc45dE08184E629796": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000b1db69627F04688aA47951d847c8BFAB3fFaE": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000c2de896E4a92e796d6A9c1E4B01feB3e6Ed61": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000EDC52118DadB4B81f013005b6db2665B682ac": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0009e10C0D2F1a7A2b00b61c476aa8b608c60aDc": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000f2AbaA7581fAA2ad5C82b604C77ef68c3eAD9": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000F74AA6EE08C15076b3576eE33Ed3a80c9A1AD": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0001533C6C5b425815b2BaDdCdd42DFF3be04BCb": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0002D79686DeF20a0aB43FEA4a41a1Ad56529621": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00077A336FCA40F933a7A301F4a39C26594F3EB5": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000B05E15C62CBC266A4DD1804b017d1f6dB078b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000130badE00212bE1AA2F4aCFe965934635C9cD": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0008Bd31Ee6A758e168844cBEA107Ca4d87251aF": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000A390975F21371F1Cf3C783a4A7C1aF49074Fe": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000701F7d594Fb146e4d1c71342012e48A788055": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0005c6BeD054FEad199D72C6f663fC6fBf996153": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0009d862F87F26c638AAd14F2cc48FCa54DBf49d": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00029637dA962294449549f804f8184046F5fbB0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000279CB54E00B858774afEA4601034Db41c1A05": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0003dDe6f01e3B755e24891a5B0f2463BaD83e15": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000086Eeea461Ca48e4D319F9789F3Efd134E574": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004351AD413792131011CC7ed8299dd783C6487": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00097B4463159340Ac83B9bdf657C304cD70c11c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004ad0D0823e3d31C6ECA2A3495373fA76c43aC": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0005E815c1A3F40011Bd70C76062bbcBc51c546B": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006A070bAC6195b59d4bC7f73741DCBe4e16b5e": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006cEE23d8E9BC8d99E826cDa50481394aD9bDD": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000a523148845bEe3EE1e9F83df8257a1191C85B": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000D268F322F10925cdB5d2AD527E582259Da655": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000E5DE0a0175866d21F4Ec6c41F0422A05f14D6": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000cDF8Dba2393a40857cbCB0FCD9b998a941078": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000A341763112a5E3452c7AEE45c382a3fb7dc78": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000635BCbB109781Cea0Cd53e9f1370Dbac9937f": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000E0ea540095B3853c4cb09E5Cdd197330D3B55": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00044cbfb4Ef6054667994C37c0fe0B6BB639718": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00065fC4337dF331242bEE738031dAf35817Ee9e": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000815A8A659a51A8EF01F02441947Ea99182568": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004C8da21c68dED2F63efD9836De7D43e7cDa10": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006ed38815a9439c59bD917c12f77a9A7D39BCE": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004Aa0442d0d43222431b3017912EC6a099771C": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000b3F6da04b6261B4154C8FaEd119632C49DBd5": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000AEBc2568796FDB763CAB67B31e0feE58Fe17d": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000425E97fC6692891876012824a210451cC06C4": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000036e0f87f8Cd3e97f9cfDB2e4E5Ff193c217a": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000305CD7184aB37fdd3D826B92A640218D09527": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000c95f1D83De53B76a0828F1bCdB1DfE12C0ab3": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000882c5FbD315801e4C367BCB04dBD299B9F571": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0000E101815A78EbB9FBBa34F4871aD32d5eb6CD": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000A997c1ceCB1DA78C16249e032e77d1865646a": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00056bde49E3cAA9166C2a4C4951d0Cf067956A0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000e65342176C7dac47bc75113F569695d6A113C": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0008D608884cd733642ab17aCa0c8504850B94fA": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000dFE27e1b71a49B641ad762aB95558584878D1": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00085D9D1a71acf1080cED44CB501B350900627f": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0007d272a1f7Dfe862b030adE2922D149f3bDe3B": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0004b230511F921934F33E8B4425E43295232680": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0007514395022786B59ff91408692462C48d872c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0005b34eB0d99dE72DB14d466f692009c4049D46": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0001a2c749FE0Ab1C09f1131BA17530f9D764fBC": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000c6c1D8F778D981968F9904772B0c455E1C17c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000e64e0a2Fd76B4883c800833c82c5F2420b813": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000577bDc84B4019F77D9D09BDD8ED6145E0e890": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000029bD811D292E7f1CF36c0FA08fd753C45074": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000cE6740261E297FaD4c975D6D8F89f95C29add": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0001d0bAE8B1B9fe61d0B788E562A987813cbD98": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000E3388598A0534275104Ad44745620AF31EC7E": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000791D3185781e14eBb342E5df3BC9910f62E6F": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000Df55E76cf6dfD9598DD2b54948dE937f50f2B": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000055acf237931902ceBf4B905BF59813180555": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00009074D8fc5Eeb25f1548Df05AD955E21FB08D": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000C1aE5FeCf09595C0C76Db609FEB2a5Af0962E": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000F76B2Fe7cCC13474de28586A877664EBA16B4": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000F7cFBa0B176Afc2eBadA9d4764d2eA6BBC5a1": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00002132cE94eEfB06eB15898C1AABd94feb0AC2": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00069dC0cc6b9d7B48B5348b12F625E8aB704104": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000A0191cf913E03bd594bC8817FC3B2895C0a25": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0007316aEDc52EB35c9B5c2E44e9fD712d1DF887": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000EBd066B6FEBB9d7f3B767DF06C08e369Dc20F": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00096af89fd96f0d6E1721d9145944e813317d46": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000C5e39879228A1Fc8dF2470822CB8ce2Af8e07": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000ea86B4A3d7e4AF8CFab052c8b9a040149b507": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000796370C839773893a2cEFA5fc81f2332936fB": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000990B05481b1661bc6211298f6429451B09425": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0008a02d3E8507621f430345b98478058cDca79A": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000d35f8cd11bd989216b3669cBaac6fd8c07196": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000541653a96ABAdDba52fAA8D118e570d529543": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006264bf7E3395309F728222641Ff8D0e1ad2C0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000688AA0fBfB3F1e6554A63dF13bE08cB671b3b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00030da862690D170F096074e9E8b38db7D6f037": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0005e37296348571bd3604f7E56B67a7022801f6": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000ed6E0F4Fdc3615663BF4A601E35e7A8d66E1c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000c53b37fA4977B59FD3Efdb473D8069844aDeA": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00057714949aD700733C5b8E6cF3e8c6B7D228a2": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000C8FC4132881c31f67638c3941dF8D94a92299": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000fA71E446e1EcFd74d835b5bD6fA848A770d26": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000784B47aC2843419Df4cAd697d4e7b65CE1F93": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0002869e27c6FaEe08cCA6b765a726E7a076Ee0F": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0003135C47c441506b58483Ec6173F767182670B": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0006E80d584cbF9EB8C41CF2b009C607744a70F6": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000C1C05dBFf111c79D5c9E91420DFBEA1c31716": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0009Bf72AF31A4E6B8Ef6FbbFcb017823E4d2aF2": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x00021C20F3e68F930077Cca109Ca3C044E8B39bD": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000E90875aC71eD46A11dc1b509d2B35E2c9C31F": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x000f17eB09AA3f28132323E6075C672949526d5A": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x0000000000000000000000000000000000000000": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "0x3d1e15a1a55578f7c920884a9943b3b35d0d885b": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - } - }, - "number": "0x0", - "gasUsed": "0x0", - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": 1, - "excessBlobGas": "0x0", - "blobGasUsed": 0 + "config": { + "chainId": 1729, + "homesteadBlock": 0, + "eip150Block": 0, + "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "eip155Block": 0, + "eip158Block": 0, + "daoForkBlock": 0, + "frontierBlock": 0, + "byzantiumBlock": 0, + "constantinopleBlock": 0, + "petersburgBlock": 0, + "muirGlacierBlock": 0, + "istanbulBlock": 0, + "berlinBlock": 0, + "londonBlock": 0, + "terminalTotalDifficulty": "0x0", + "mergeNetsplitBlock": 0, + "shanghaiTime": 0, + "cancunTime": 0, + "clique": { + "period": 0, + "epoch": 30000 + } + }, + "nonce": "0x0", + "timestamp": "0x5ca9158b", + "gasLimit": "0x8f0d180", + "difficulty": "0x0", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "coinbase": "0x0000000000000000000000000000000000000000", + "alloc": { + "0x0007a881CD95B1484fca47615B64803dad620C8d": { + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0" + }, + "0x0000bd19F707CA481886244bDd20Bd6B8a81bd3e": { + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0" + }, + "0x000cD1537A823Ae7609E3897DA8d95801B557a8a": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006d77295a0260ceAC113c5Aa15CFf0d28d9723": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000eA2e72065A2ceCA7f677Bc5E648279c2D843d": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000a52D537c4150ec274dcE3962a0d179B7E71B0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0009aEFF154De37C8e02E83f93D2FeC5EC96f8a3": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000f1EB7F258D4A7683E5D0FC3C01058841DDC6f": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000aC79590dCc656c00c4453f123AcBf10DBb086": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0002Bf507275217c9E5EE250bC1B5ca177bb4f74": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000a3fC3BFD55b37025E6F4f57B0B6121F54e5bF": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000b4C43cce938dfD3420F975591Ee46D872C136": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004b0C6de796fD980554cc7ff7B062b3B5079E1": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00025eea83bA285532F5054b238c938076833d13": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000352E93fe11f9B715fdc61864315970B3DC082": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000c0d6b7C4516a5B274C51EA331A9410fe69127": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000D06C23EeD09A7Fa81cADd7eD5C783E8a25635": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0003Ea7fDFCdb89E9ddAb0128ec5C628F8D09D45": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0005C34d7B8b06CE8019C3Bb232dE82B2748A560": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00079f33619F70F1DCE64EB6782E45D3498d807C": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0003E72436Ff296B3d39339784499D021b72Aca5": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00075af7E665F3Ca4A4b05520CD6d5c13BbFEAf8": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000b59AeD48ADCd6c36Ae5f437AbB9CA730a2c43": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004e4dfCed9d798767A4d7BA2B03495cE80A2b7": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000e73282F60E2CdE0D4FA9B323B6D54d860f330": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00010AB05661Bfde304A4d884DF99d3011A83C54": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000B9Ea41A9dF00b7ae597afc0D10AF42666081F": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00087C666bf7f52758DE186570979C4C79747157": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0008a52c83D34f0791D07FfeD04Fb6b14f94E2D4": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000A7Bbde38Fc53925D0De9cc1beE3038d36c2d2": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000Aa0154ed6560257d222B5dbE6ce4b66c48979": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000b681738e1f8aF387c41b2b1f0A04E0C33e9DB": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000D66A7706f2DD5F557d5b68e01E07E8FFDfaf5": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00069DA530A71Dc92D02090d7f5f63e326e9beD0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000db74a3da16609F183ACE7AF65B43D896349CE": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0003B1aB565508e095a543C89531e3fbc4a349DA": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0001c94c108BcE19CDb36b00F867A1798A81DedA": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000995137728C7C2a9142F4628f95c98Cac433d7": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000Ec60762AD0425A04C40c118Db5B9710Aa639e": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000Ebf88AE1BA960B06b0a9bbE576baa3B72E92E": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000e1a554572dd96fF3d1F2664832F3E4a66E7b7": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00032C03f3b02D816128Fb5D2752398E2919a03c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000A073dAC5ec2058a0De0e175874D5E297E086E": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000e06626Bb8618D9A1867362D46ddb1bF95ad75": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000212949b4866db43bAF7c4e0975426710ED081": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00094cc0653B52406170105F4eb96C5e2f31Ab74": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000E67E4b1A23A3826304099cb24f337c916CF4b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000885A4932ebeD6D760EA381e4EdAe51A53db05": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000883A40409Fa2193b698928459CB9E4DD5f8D8": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0002590DD45738F909115B163F1322A8A24a8B4E": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0005f132597da3152a6Da6beDB7C10bcC9B1B7f5": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00031470def99c1d4dfE1fd08DD7A8520Ce21DB7": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0001Ebe3a3bA36f57F5989B3F0e5BEEBc710569C": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006Bd0469166f63D0A1c33F71898D2b2E009b9b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00000A8d3f37af8DeF18832962Ee008d8dCa4F7b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000e490f26249951F8527779399aa8F281509aC0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0000638374f7dB166990BDc6aBeE884Ee01a8920": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00031dE95353DeE86dc9B1248e825500DE0B39aF": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000511B42328794337D8b6846E5cFFef30c2d77A": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000d0576AdEf7083d53F6676bfc7c30d03b6Db1B": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0001E8Ff6406a7cd9071F46B8255Db6C16178448": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000C47c771A8db282eC233b28AD8525dc74D13FE": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000798832bb08268dB237898b95A8DaE9D58b62c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000c877a5D9b9De61e5318B3f4330c56ecdC0865": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0003Ffc1f09d39FBFE87eD63E98249039C7b1d9A": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000d72403c18B2516d8ada074E1E7822bF1084DB": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00054e17Db8C8Db028B19cB0f631888AdEb35E4b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0002d9b2a816717C4d70040D66A714795F9B27a4": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0002AfCC1B0B608E86b5a1Dc45dE08184E629796": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000b1db69627F04688aA47951d847c8BFAB3fFaE": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000c2de896E4a92e796d6A9c1E4B01feB3e6Ed61": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000EDC52118DadB4B81f013005b6db2665B682ac": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0009e10C0D2F1a7A2b00b61c476aa8b608c60aDc": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000f2AbaA7581fAA2ad5C82b604C77ef68c3eAD9": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000F74AA6EE08C15076b3576eE33Ed3a80c9A1AD": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0001533C6C5b425815b2BaDdCdd42DFF3be04BCb": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0002D79686DeF20a0aB43FEA4a41a1Ad56529621": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00077A336FCA40F933a7A301F4a39C26594F3EB5": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000B05E15C62CBC266A4DD1804b017d1f6dB078b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000130badE00212bE1AA2F4aCFe965934635C9cD": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0008Bd31Ee6A758e168844cBEA107Ca4d87251aF": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000A390975F21371F1Cf3C783a4A7C1aF49074Fe": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000701F7d594Fb146e4d1c71342012e48A788055": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0005c6BeD054FEad199D72C6f663fC6fBf996153": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0009d862F87F26c638AAd14F2cc48FCa54DBf49d": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00029637dA962294449549f804f8184046F5fbB0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000279CB54E00B858774afEA4601034Db41c1A05": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0003dDe6f01e3B755e24891a5B0f2463BaD83e15": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000086Eeea461Ca48e4D319F9789F3Efd134E574": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004351AD413792131011CC7ed8299dd783C6487": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00097B4463159340Ac83B9bdf657C304cD70c11c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004ad0D0823e3d31C6ECA2A3495373fA76c43aC": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0005E815c1A3F40011Bd70C76062bbcBc51c546B": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006A070bAC6195b59d4bC7f73741DCBe4e16b5e": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006cEE23d8E9BC8d99E826cDa50481394aD9bDD": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000a523148845bEe3EE1e9F83df8257a1191C85B": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000D268F322F10925cdB5d2AD527E582259Da655": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000E5DE0a0175866d21F4Ec6c41F0422A05f14D6": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000cDF8Dba2393a40857cbCB0FCD9b998a941078": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000A341763112a5E3452c7AEE45c382a3fb7dc78": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000635BCbB109781Cea0Cd53e9f1370Dbac9937f": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000E0ea540095B3853c4cb09E5Cdd197330D3B55": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00044cbfb4Ef6054667994C37c0fe0B6BB639718": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00065fC4337dF331242bEE738031dAf35817Ee9e": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000815A8A659a51A8EF01F02441947Ea99182568": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004C8da21c68dED2F63efD9836De7D43e7cDa10": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006ed38815a9439c59bD917c12f77a9A7D39BCE": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004Aa0442d0d43222431b3017912EC6a099771C": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000b3F6da04b6261B4154C8FaEd119632C49DBd5": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000AEBc2568796FDB763CAB67B31e0feE58Fe17d": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000425E97fC6692891876012824a210451cC06C4": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000036e0f87f8Cd3e97f9cfDB2e4E5Ff193c217a": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000305CD7184aB37fdd3D826B92A640218D09527": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000c95f1D83De53B76a0828F1bCdB1DfE12C0ab3": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000882c5FbD315801e4C367BCB04dBD299B9F571": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0000E101815A78EbB9FBBa34F4871aD32d5eb6CD": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000A997c1ceCB1DA78C16249e032e77d1865646a": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00056bde49E3cAA9166C2a4C4951d0Cf067956A0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000e65342176C7dac47bc75113F569695d6A113C": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0008D608884cd733642ab17aCa0c8504850B94fA": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000dFE27e1b71a49B641ad762aB95558584878D1": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00085D9D1a71acf1080cED44CB501B350900627f": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0007d272a1f7Dfe862b030adE2922D149f3bDe3B": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0004b230511F921934F33E8B4425E43295232680": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0007514395022786B59ff91408692462C48d872c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0005b34eB0d99dE72DB14d466f692009c4049D46": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0001a2c749FE0Ab1C09f1131BA17530f9D764fBC": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000c6c1D8F778D981968F9904772B0c455E1C17c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000e64e0a2Fd76B4883c800833c82c5F2420b813": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000577bDc84B4019F77D9D09BDD8ED6145E0e890": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000029bD811D292E7f1CF36c0FA08fd753C45074": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000cE6740261E297FaD4c975D6D8F89f95C29add": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0001d0bAE8B1B9fe61d0B788E562A987813cbD98": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000E3388598A0534275104Ad44745620AF31EC7E": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000791D3185781e14eBb342E5df3BC9910f62E6F": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000Df55E76cf6dfD9598DD2b54948dE937f50f2B": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000055acf237931902ceBf4B905BF59813180555": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00009074D8fc5Eeb25f1548Df05AD955E21FB08D": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000C1aE5FeCf09595C0C76Db609FEB2a5Af0962E": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000F76B2Fe7cCC13474de28586A877664EBA16B4": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000F7cFBa0B176Afc2eBadA9d4764d2eA6BBC5a1": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00002132cE94eEfB06eB15898C1AABd94feb0AC2": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00069dC0cc6b9d7B48B5348b12F625E8aB704104": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000A0191cf913E03bd594bC8817FC3B2895C0a25": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0007316aEDc52EB35c9B5c2E44e9fD712d1DF887": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000EBd066B6FEBB9d7f3B767DF06C08e369Dc20F": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00096af89fd96f0d6E1721d9145944e813317d46": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000C5e39879228A1Fc8dF2470822CB8ce2Af8e07": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000ea86B4A3d7e4AF8CFab052c8b9a040149b507": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000796370C839773893a2cEFA5fc81f2332936fB": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000990B05481b1661bc6211298f6429451B09425": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0008a02d3E8507621f430345b98478058cDca79A": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000d35f8cd11bd989216b3669cBaac6fd8c07196": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000541653a96ABAdDba52fAA8D118e570d529543": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006264bf7E3395309F728222641Ff8D0e1ad2C0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000688AA0fBfB3F1e6554A63dF13bE08cB671b3b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00030da862690D170F096074e9E8b38db7D6f037": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0005e37296348571bd3604f7E56B67a7022801f6": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000ed6E0F4Fdc3615663BF4A601E35e7A8d66E1c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000c53b37fA4977B59FD3Efdb473D8069844aDeA": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00057714949aD700733C5b8E6cF3e8c6B7D228a2": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000C8FC4132881c31f67638c3941dF8D94a92299": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000fA71E446e1EcFd74d835b5bD6fA848A770d26": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000784B47aC2843419Df4cAd697d4e7b65CE1F93": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0002869e27c6FaEe08cCA6b765a726E7a076Ee0F": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0003135C47c441506b58483Ec6173F767182670B": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0006E80d584cbF9EB8C41CF2b009C607744a70F6": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000C1C05dBFf111c79D5c9E91420DFBEA1c31716": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0009Bf72AF31A4E6B8Ef6FbbFcb017823E4d2aF2": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x00021C20F3e68F930077Cca109Ca3C044E8B39bD": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000E90875aC71eD46A11dc1b509d2B35E2c9C31F": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x000f17eB09AA3f28132323E6075C672949526d5A": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x0000000000000000000000000000000000000000": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "0x3d1e15a1a55578f7c920884a9943b3b35d0d885b": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + } + }, + "number": "0x0", + "gasUsed": "0x0", + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": 1, + "excessBlobGas": "0x0", + "blobGasUsed": 0 } From 785f32ba6011562a041dafdebe33a5da28e4ea64 Mon Sep 17 00:00:00 2001 From: Dylan Socolobsky Date: Mon, 20 Jan 2025 15:44:23 -0300 Subject: [PATCH 80/80] chore: ci: Start measuring time before executing the test load --- .github/scripts/flamegraph_watcher.sh | 2 +- scripts/flamegraph.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/scripts/flamegraph_watcher.sh b/.github/scripts/flamegraph_watcher.sh index a8aa42350d..368ce462d6 100644 --- a/.github/scripts/flamegraph_watcher.sh +++ b/.github/scripts/flamegraph_watcher.sh @@ -9,9 +9,9 @@ value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((171 * $iterations * $value)) +start_time=$(date +%s) ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_keys.txt -i $iterations -v --value $value --to $account >/dev/null -start_time=$(date +%s) output=$(ethrex_l2 info -b -a $account --wei 2>&1) echo "balance: $output" while [[ $output -lt $end_val ]]; do diff --git a/scripts/flamegraph.sh b/scripts/flamegraph.sh index 1c441ce9c0..fa1d1fe4d8 100644 --- a/scripts/flamegraph.sh +++ b/scripts/flamegraph.sh @@ -4,7 +4,7 @@ # then polls the account balance until the expected balance has been reached # and then kills the process. It also measures the elapsed time of the test and # outputs it to Github Action's outputs. -iterations=500 +iterations=3500 value=1 account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd end_val=$((171 * $iterations * $value))