Skip to content

refactor(l1): migrate tooling workspace to ethrex-tooling repo#6487

Open
ilitteri wants to merge 9 commits intomainfrom
migrate-tooling-to-ethrex-tooling
Open

refactor(l1): migrate tooling workspace to ethrex-tooling repo#6487
ilitteri wants to merge 9 commits intomainfrom
migrate-tooling-to-ethrex-tooling

Conversation

@ilitteri
Copy link
Copy Markdown
Collaborator

@ilitteri ilitteri commented Apr 15, 2026

Motivation

The ethrex repo mixes core node code with development tooling (EF tests, load tests, monitor TUI, REPL, loc counter, etc.). This makes the repo harder to navigate and couples tooling release cadence to node releases. This PR moves all tooling to the new lambdaclass/ethrex-tooling repository.

Description

  • Remove tooling/ directory — all contents migrated to ethrex-tooling
  • Convert ethrex-monitor and ethrex-repl from local path deps to git deps pointing to ethrex-tooling (branch = "main")
  • Add [patch."https://github.com/lambdaclass/ethrex"] section to root Cargo.toml so ethrex-tooling's transitive deps resolve to local workspace crates (prevents duplicate crate versions)
  • Update 7 CI workflows to checkout ethrex-tooling into the tooling/ path before use — all existing cd tooling/... commands remain unchanged
  • Update Dockerfile to remove COPY tooling lines (monitor/repl are now fetched as git deps by cargo)
  • Add .cargo/config.toml.example documenting local path patch overrides for cross-repo development

Cross-repo dev workflow

For changes that touch both repos:

  1. Use .cargo/config.toml patches for local development (see .cargo/config.toml.example)
  2. Merge ethrex-tooling PR first
  3. Run cargo update in ethrex to pick up new tooling revision
  4. Merge ethrex PR

How to Test

  • cargo check --workspace passes
  • CI workflows that use tooling/ paths pass (EF tests, LOC, hive report, upgradeability, reorgs, license check, cargo lock check)
  • Docker build succeeds
  • ethrex-tooling repo builds standalone: cargo check --workspace

Move all tooling crates (ef_tests, load_test, monitor, repl, loc, hive_report,
migrations, reorgs, archive_sync, hardhat, import_benchmark, log_analysis, sync)
to the standalone ethrex-tooling repository.

ethrex-monitor and ethrex-repl are now fetched as git dependencies from
ethrex-tooling (branch = "main"). A [patch] section ensures ethrex-tooling's
transitive deps resolve to local workspace crates, avoiding duplicate crate
versions.

CI workflows that reference tooling/ paths now checkout ethrex-tooling into
the tooling/ directory before use. Makefile targets are unchanged since they
use relative tooling/ paths.
@ilitteri ilitteri requested a review from a team as a code owner April 15, 2026 20:27
Copilot AI review requested due to automatic review settings April 15, 2026 20:27
@greptile-apps
Copy link
Copy Markdown

greptile-apps bot commented Apr 15, 2026

Too many files changed for review. (141 files found, 100 file limit)

@review-notebook-app
Copy link
Copy Markdown

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Migrates the in-repo tooling/ workspace out to the dedicated lambdaclass/ethrex-tooling repository, updating dependencies and CI so existing tooling/... commands keep working.

Changes:

  • Removes the tooling/ workspace and its crates/scripts from this repo (migrated to ethrex-tooling).
  • Switches ethrex-monitor and ethrex-repl to git dependencies from ethrex-tooling and adds a git-source patch to resolve transitive ethrex crates to local workspace paths.
  • Updates CI workflows to checkout ethrex-tooling into tooling/ before running existing steps; adds .cargo/config.toml.example for cross-repo development.

Reviewed changes

Copilot reviewed 122 out of 141 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
Cargo.toml Removes tooling/repl from workspace; switches monitor/repl to git deps; adds git-source patch to reuse local ethrex crates
.github/workflows/pr_upgradeability.yaml Checks out ethrex-tooling into tooling/ so existing upgradeability steps keep working
.github/workflows/pr_loc.yaml Checks out ethrex-tooling into tooling/ for LOC jobs while preserving prior checkout state
.github/workflows/pr-main_levm.yaml Checks out ethrex-tooling into tooling/ for LEVM/EF-test jobs
.github/workflows/pr-main_l1.yaml Checks out ethrex-tooling into tooling/ for L1 CI jobs relying on tooling paths
.github/workflows/daily_loc_report.yaml Checks out ethrex-tooling into tooling/ for scheduled LOC report
.github/workflows/daily_hive_report.yaml Checks out ethrex-tooling into tooling/ for scheduled hive reporting
.cargo/config.toml.example Documents local patch overrides to develop ethrex + ethrex-tooling together
tooling/Cargo.toml Removed tooling workspace manifest (workspace moved to external repo)
tooling/repl/Cargo.toml Removed (migrated to ethrex-tooling)
tooling/repl/README.md Removed (migrated to ethrex-tooling)
tooling/repl/src/client.rs Removed (migrated to ethrex-tooling)
tooling/repl/src/commands/admin.rs Removed (migrated to ethrex-tooling)
tooling/repl/src/commands/debug.rs Removed (migrated to ethrex-tooling)
tooling/repl/src/commands/engine.rs Removed (migrated to ethrex-tooling)
tooling/repl/src/commands/net.rs Removed (migrated to ethrex-tooling)
tooling/repl/src/commands/txpool.rs Removed (migrated to ethrex-tooling)
tooling/repl/src/commands/web3.rs Removed (migrated to ethrex-tooling)
tooling/reorgs/Cargo.toml Removed (migrated to ethrex-tooling)
tooling/reorgs/README.md Removed (migrated to ethrex-tooling)
tooling/monitor/Cargo.toml Removed (migrated to ethrex-tooling)
tooling/monitor/src/lib.rs Removed (migrated to ethrex-tooling)
tooling/monitor/src/config.rs Removed (migrated to ethrex-tooling)
tooling/monitor/src/error.rs Removed (migrated to ethrex-tooling)
tooling/monitor/src/utils.rs Removed (migrated to ethrex-tooling)
tooling/monitor/src/widget/mod.rs Removed (migrated to ethrex-tooling)
tooling/monitor/src/widget/tabs.rs Removed (migrated to ethrex-tooling)
tooling/monitor/src/widget/rich_accounts.rs Removed (migrated to ethrex-tooling)
tooling/monitor/src/widget/node_status.rs Removed (migrated to ethrex-tooling)
tooling/monitor/src/widget/mempool.rs Removed (migrated to ethrex-tooling)
tooling/monitor/src/widget/l1_to_l2_messages.rs Removed (migrated to ethrex-tooling)
tooling/monitor/src/widget/chain_status.rs Removed (migrated to ethrex-tooling)
tooling/monitor/src/widget/blocks.rs Removed (migrated to ethrex-tooling)
tooling/monitor/src/widget/batches.rs Removed (migrated to ethrex-tooling)
tooling/migrations/Cargo.toml Removed (migrated to ethrex-tooling)
tooling/migrations/README.md Removed (migrated to ethrex-tooling)
tooling/migrations/src/main.rs Removed (migrated to ethrex-tooling)
tooling/migrations/src/cli.rs Removed (migrated to ethrex-tooling)
tooling/migrations/src/utils.rs Removed (migrated to ethrex-tooling)
tooling/log_analysis/requirements.txt Removed (migrated to ethrex-tooling)
tooling/log_analysis/log_analysis.ipynb Removed (migrated to ethrex-tooling)
tooling/log_analysis/README.md Removed (migrated to ethrex-tooling)
tooling/log_analysis/Makefile Removed (migrated to ethrex-tooling)
tooling/log_analysis/.gitignore Removed (migrated to ethrex-tooling)
tooling/loc/Cargo.toml Removed (migrated to ethrex-tooling)
tooling/loc/Makefile Removed (migrated to ethrex-tooling)
tooling/loc/src/main.rs Removed (migrated to ethrex-tooling)
tooling/loc/src/report.rs Removed (migrated to ethrex-tooling)
tooling/load_test/Cargo.toml Removed (migrated to ethrex-tooling)
tooling/load_test/README.md Removed (migrated to ethrex-tooling)
tooling/l2/dev/README.md Removed (migrated to ethrex-tooling)
tooling/import_benchmark/parse_bench.py Removed (migrated to ethrex-tooling)
tooling/import_benchmark/benchmark.sh Removed (migrated to ethrex-tooling)
tooling/import_benchmark/README.md Removed (migrated to ethrex-tooling)
tooling/import_benchmark/Makefile Removed (migrated to ethrex-tooling)
tooling/hive_report/Cargo.toml Removed (migrated to ethrex-tooling)
tooling/hive_report/src/main.rs Removed (migrated to ethrex-tooling)
tooling/hardhat/package.json Removed (migrated to ethrex-tooling)
tooling/hardhat/hardhat.config.js Removed (migrated to ethrex-tooling)
tooling/hardhat/README.md Removed (migrated to ethrex-tooling)
tooling/hardhat/.gitignore Removed (migrated to ethrex-tooling)
tooling/hardhat/scripts/validate-upgrades.js Removed (migrated to ethrex-tooling)
tooling/hardhat/test/counter.test.js Removed (migrated to ethrex-tooling)
tooling/hardhat/test/upgradeability.local.test.js Removed (migrated to ethrex-tooling)
tooling/ef_tests/state_v2/Cargo.toml Removed (migrated to ethrex-tooling)
tooling/ef_tests/state_v2/README.md Removed (migrated to ethrex-tooling)
tooling/ef_tests/state_v2/Makefile Removed (migrated to ethrex-tooling)
tooling/ef_tests/state_v2/.gitignore Removed (migrated to ethrex-tooling)
tooling/ef_tests/state_v2/src/lib.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/state_v2/src/main.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/state_v2/src/modules/mod.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/state_v2/src/modules/error.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/state_v2/src/modules/parser.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/state_v2/src/modules/report.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/state_v2/src/modules/result_check.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/state_v2/src/modules/runner.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/state_v2/src/modules/utils.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/state_v2/src/modules/deserialize.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/state_v2/src/modules/block_runner.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/state/Cargo.toml Removed (migrated to ethrex-tooling)
tooling/ef_tests/state/README.md Removed (migrated to ethrex-tooling)
tooling/ef_tests/state/Makefile Removed (migrated to ethrex-tooling)
tooling/ef_tests/state/lib.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/state/parser.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/state/types.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/state/utils.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/state/tests/all.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/state/runner/revm_db.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/state/.gitignore Removed (migrated to ethrex-tooling)
tooling/ef_tests/state/.fixtures_url Removed (migrated to ethrex-tooling)
tooling/ef_tests/state/.fixtures_url_amsterdam Removed (migrated to ethrex-tooling)
tooling/ef_tests/blockchain/Cargo.toml Removed (migrated to ethrex-tooling)
tooling/ef_tests/blockchain/README.md Removed (migrated to ethrex-tooling)
tooling/ef_tests/blockchain/Makefile Removed (migrated to ethrex-tooling)
tooling/ef_tests/blockchain/lib.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/blockchain/fork.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/blockchain/deserialize.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/blockchain/tests/all.rs Removed (migrated to ethrex-tooling)
tooling/ef_tests/blockchain/.fixtures_url Removed (migrated to ethrex-tooling)
tooling/ef_tests/blockchain/.fixtures_url_amsterdam Removed (migrated to ethrex-tooling)
tooling/ef_tests/blockchain/.fixtures_url_zkevm Removed (migrated to ethrex-tooling)
tooling/archive_sync/Cargo.toml Removed (migrated to ethrex-tooling)
tooling/archive_sync/README.md Removed (migrated to ethrex-tooling)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Cargo.toml
Comment on lines +79 to +80
ethrex-monitor = { git = "https://github.com/lambdaclass/ethrex-tooling", branch = "main" }
ethrex-repl = { git = "https://github.com/lambdaclass/ethrex-tooling", branch = "main" }
Copy link

Copilot AI Apr 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using branch = \"main\" for git dependencies makes the chosen upstream revision implicit and can lead to non-obvious updates when Cargo.lock is regenerated (e.g., in different CI contexts or when the lockfile changes). Prefer pinning these dependencies with an explicit rev = \"<commit sha>\" (or a tag) to make upgrades intentional and reproducible.

Suggested change
ethrex-monitor = { git = "https://github.com/lambdaclass/ethrex-tooling", branch = "main" }
ethrex-repl = { git = "https://github.com/lambdaclass/ethrex-tooling", branch = "main" }
ethrex-monitor = { git = "https://github.com/lambdaclass/ethrex-tooling", rev = "<commit sha>" }
ethrex-repl = { git = "https://github.com/lambdaclass/ethrex-tooling", rev = "<commit sha>" }

Copilot uses AI. Check for mistakes.
- name: Checkout ethrex-tooling
uses: actions/checkout@v4
with:
repository: lambdaclass/ethrex-tooling
Copy link

Copilot AI Apr 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This checkout relies on the external repository’s default branch. Since the PR description implies using the main branch, it would be more robust to set ref: main explicitly (and consider pinning to a specific commit SHA for CI stability). Otherwise, a default-branch rename or unexpected default-branch change in ethrex-tooling could break CI without any change in this repo.

Suggested change
repository: lambdaclass/ethrex-tooling
repository: lambdaclass/ethrex-tooling
ref: main

Copilot uses AI. Check for mistakes.
Comment thread Cargo.toml
Comment on lines +146 to +168
# Ensure ethrex-tooling's transitive deps resolve to local workspace crates
# instead of fetching a second copy from git (avoids "two versions of the same crate" errors).
[patch."https://github.com/lambdaclass/ethrex"]
ethrex = { path = "./cmd/ethrex" }
ethrex-blockchain = { path = "./crates/blockchain" }
ethrex-common = { path = "./crates/common" }
ethrex-config = { path = "./crates/common/config" }
ethrex-crypto = { path = "./crates/common/crypto" }
ethrex-guest-program = { path = "./crates/guest-program" }
ethrex-l2 = { path = "./crates/l2" }
ethrex-l2-common = { path = "./crates/l2/common" }
ethrex-l2-prover = { path = "./crates/l2/prover" }
ethrex-l2-rpc = { path = "./crates/l2/networking/rpc" }
ethrex-levm = { path = "./crates/vm/levm" }
ethrex-p2p = { path = "./crates/networking/p2p" }
ethrex-prover = { path = "./crates/prover" }
ethrex-rlp = { path = "./crates/common/rlp" }
ethrex-rpc = { path = "./crates/networking/rpc" }
ethrex-sdk = { path = "./crates/l2/sdk" }
ethrex-storage = { path = "./crates/storage" }
ethrex-storage-rollup = { path = "./crates/l2/storage" }
ethrex-trie = { path = "./crates/common/trie" }
ethrex-vm = { path = "./crates/vm" }
Copy link

Copilot AI Apr 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This adds a global patch for the https://github.com/lambdaclass/ethrex git source. That patch will affect any crate in the dependency graph coming from that git source (including indirect uses outside tooling), which can make debugging dependency resolution harder when unexpected overrides happen. Consider limiting the blast radius by either (a) moving this patch behind a documented opt-in workflow (e.g., .cargo/config.toml for local dev), or (b) ensuring ethrex-tooling does not pull ethrex crates via git for normal builds so the patch is unnecessary in production/CI.

Suggested change
# Ensure ethrex-tooling's transitive deps resolve to local workspace crates
# instead of fetching a second copy from git (avoids "two versions of the same crate" errors).
[patch."https://github.com/lambdaclass/ethrex"]
ethrex = { path = "./cmd/ethrex" }
ethrex-blockchain = { path = "./crates/blockchain" }
ethrex-common = { path = "./crates/common" }
ethrex-config = { path = "./crates/common/config" }
ethrex-crypto = { path = "./crates/common/crypto" }
ethrex-guest-program = { path = "./crates/guest-program" }
ethrex-l2 = { path = "./crates/l2" }
ethrex-l2-common = { path = "./crates/l2/common" }
ethrex-l2-prover = { path = "./crates/l2/prover" }
ethrex-l2-rpc = { path = "./crates/l2/networking/rpc" }
ethrex-levm = { path = "./crates/vm/levm" }
ethrex-p2p = { path = "./crates/networking/p2p" }
ethrex-prover = { path = "./crates/prover" }
ethrex-rlp = { path = "./crates/common/rlp" }
ethrex-rpc = { path = "./crates/networking/rpc" }
ethrex-sdk = { path = "./crates/l2/sdk" }
ethrex-storage = { path = "./crates/storage" }
ethrex-storage-rollup = { path = "./crates/l2/storage" }
ethrex-trie = { path = "./crates/common/trie" }
ethrex-vm = { path = "./crates/vm" }
# Do not commit a workspace-wide patch for the ethrex git source here.
# If local development needs path overrides to avoid duplicate git/workspace crates,
# configure them as an explicit opt-in in `.cargo/config.toml` instead.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I ran make lint and it's working

@ilitteri ilitteri changed the title Migrate tooling workspace to ethrex-tooling repo refactor(l1): migrate tooling workspace to ethrex-tooling repo Apr 15, 2026
@github-actions github-actions bot added the L1 Ethereum client label Apr 15, 2026
- Add ethrex-tooling checkout to pr_lint_license.yaml (license check does cd tooling)
- Add ethrex-tooling checkout to check-cargo-locks job in pr-main_l1.yaml
- Remove COPY tooling lines from Dockerfile (monitor/repl are now git deps)
- Remove stale tooling/ entries from .dockerignore
Copy link
Copy Markdown
Contributor

@iovoid iovoid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The references in the Makefile and docs should be updated, and maybe the repo's existence should be mentioned in the README.

@github-project-automation github-project-automation bot moved this to In Progress in ethrex_l1 Apr 15, 2026
Explicitly set ref: main on all actions/checkout steps for ethrex-tooling
to guard against default branch renames.
Copy link
Copy Markdown
Collaborator

@MegaRedHand MegaRedHand left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LFG

Copy link
Copy Markdown
Contributor

@avilagaston9 avilagaston9 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The on.pull_request.paths trigger in .github/workflows/pr-main_levm.yaml still references tooling/ef_tests/state/** and tooling/ef_tests/state (lines 11-16), but these paths no longer exist in the repo since tooling was moved to ethrex-tooling. PRs that only change EF test code won't trigger this workflow anymore. These stale path entries should be removed.

Resolve modify/delete conflicts in tooling/repl/ by keeping deletion
(files now live in ethrex-tooling). Port repl changes from #6427
(proof coordinator removal) to ethrex-tooling and update Cargo.lock
to pick up the new revision.
Mention the separate ethrex-tooling repository where development tools
(EF tests, load tests, monitor TUI, REPL, benchmarks) now live.
These paths no longer exist in the repo since tooling was migrated to
ethrex-tooling. Without removing them, PRs that only change EF test
code won't trigger this workflow.
@ilitteri
Copy link
Copy Markdown
Collaborator Author

b00af96 — Added ethrex-tooling reference to README

@ilitteri
Copy link
Copy Markdown
Collaborator Author

7b4a796 — Removed stale tooling/ef_tests/state paths from LEVM workflow trigger

Replace stale tooling/ paths in documentation with ethrex-tooling/
references now that tooling lives in a separate repository:

- crates/vm/levm/README.md: fix broken relative links to ef_tests READMEs
- docs/developers/l1/testing/ef-tests.md: add clone note, update cd paths
- docs/developers/l1/testing/hive.md: update all tooling/ paths
- docs/eip-8025.md: update ef_tests/blockchain paths
- docs/workflows/prover_benchmarking.md: update load_test build/run commands
@ilitteri ilitteri requested review from avilagaston9 and iovoid April 16, 2026 15:23
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 16, 2026

Benchmark Results Comparison

No significant difference was registered for any benchmark run.

Detailed Results

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
main_revm_BubbleSort 3.006 ± 0.028 2.981 3.066 1.12 ± 0.01
main_levm_BubbleSort 2.704 ± 0.024 2.675 2.751 1.01 ± 0.01
pr_revm_BubbleSort 3.022 ± 0.050 2.986 3.157 1.13 ± 0.02
pr_levm_BubbleSort 2.682 ± 0.018 2.659 2.710 1.00

Benchmark Results: ERC20Approval

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Approval 988.6 ± 7.7 979.1 999.0 1.00
main_levm_ERC20Approval 1027.8 ± 12.0 1019.0 1058.4 1.04 ± 0.01
pr_revm_ERC20Approval 993.8 ± 12.5 985.7 1027.4 1.01 ± 0.01
pr_levm_ERC20Approval 1019.0 ± 6.5 1008.6 1029.9 1.03 ± 0.01

Benchmark Results: ERC20Mint

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Mint 137.6 ± 11.3 132.9 169.6 1.03 ± 0.08
main_levm_ERC20Mint 150.0 ± 3.5 148.0 159.4 1.12 ± 0.03
pr_revm_ERC20Mint 134.0 ± 0.8 133.3 135.8 1.00
pr_levm_ERC20Mint 149.2 ± 1.2 148.3 152.3 1.11 ± 0.01

Benchmark Results: ERC20Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Transfer 233.1 ± 2.7 230.9 239.4 1.00
main_levm_ERC20Transfer 252.1 ± 2.8 248.8 257.4 1.08 ± 0.02
pr_revm_ERC20Transfer 245.0 ± 20.6 234.9 303.1 1.05 ± 0.09
pr_levm_ERC20Transfer 252.2 ± 2.0 249.0 254.6 1.08 ± 0.02

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Factorial 225.0 ± 1.1 223.7 227.6 1.00
main_levm_Factorial 252.4 ± 1.7 250.2 254.7 1.12 ± 0.01
pr_revm_Factorial 228.9 ± 12.3 222.8 263.7 1.02 ± 0.05
pr_levm_Factorial 253.6 ± 1.8 249.6 255.9 1.13 ± 0.01

Benchmark Results: FactorialRecursive

Command Mean [s] Min [s] Max [s] Relative
main_revm_FactorialRecursive 1.655 ± 0.029 1.603 1.695 1.07 ± 0.02
main_levm_FactorialRecursive 1.556 ± 0.022 1.532 1.597 1.01 ± 0.02
pr_revm_FactorialRecursive 1.625 ± 0.037 1.572 1.689 1.05 ± 0.03
pr_levm_FactorialRecursive 1.547 ± 0.015 1.524 1.582 1.00

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Fibonacci 204.7 ± 3.4 199.0 213.0 1.01 ± 0.02
main_levm_Fibonacci 239.9 ± 25.9 222.6 312.1 1.18 ± 0.13
pr_revm_Fibonacci 203.7 ± 0.7 202.5 204.5 1.00
pr_levm_Fibonacci 240.8 ± 27.5 225.0 302.5 1.18 ± 0.14

Benchmark Results: FibonacciRecursive

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_FibonacciRecursive 850.6 ± 6.0 845.0 865.0 1.23 ± 0.01
main_levm_FibonacciRecursive 702.2 ± 7.8 690.4 713.2 1.01 ± 0.01
pr_revm_FibonacciRecursive 864.3 ± 10.3 849.5 884.5 1.25 ± 0.02
pr_levm_FibonacciRecursive 694.1 ± 2.8 689.6 697.9 1.00

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ManyHashes 8.4 ± 0.1 8.3 8.5 1.00
main_levm_ManyHashes 9.8 ± 0.1 9.7 9.9 1.17 ± 0.01
pr_revm_ManyHashes 8.5 ± 0.1 8.4 8.6 1.01 ± 0.01
pr_levm_ManyHashes 9.9 ± 0.1 9.7 10.2 1.18 ± 0.02

Benchmark Results: MstoreBench

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_MstoreBench 269.8 ± 6.4 263.6 282.0 1.15 ± 0.03
main_levm_MstoreBench 234.7 ± 1.8 232.3 237.8 1.00
pr_revm_MstoreBench 269.1 ± 3.7 265.0 277.8 1.15 ± 0.02
pr_levm_MstoreBench 235.0 ± 2.5 232.2 239.8 1.00 ± 0.01

Benchmark Results: Push

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Push 291.1 ± 4.1 288.4 302.2 1.03 ± 0.02
main_levm_Push 283.9 ± 2.3 281.6 289.7 1.00
pr_revm_Push 291.1 ± 3.2 288.7 299.6 1.03 ± 0.01
pr_levm_Push 284.3 ± 2.4 280.2 288.7 1.00 ± 0.01

Benchmark Results: SstoreBench_no_opt

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_SstoreBench_no_opt 170.2 ± 1.8 167.7 172.6 1.69 ± 0.03
main_levm_SstoreBench_no_opt 101.9 ± 3.0 100.0 108.0 1.01 ± 0.03
pr_revm_SstoreBench_no_opt 169.7 ± 1.9 167.6 171.7 1.68 ± 0.03
pr_levm_SstoreBench_no_opt 101.0 ± 1.1 100.0 103.3 1.00

The [patch] section in Cargo.toml is needed during the cook phase so
that ethrex-monitor's transitive git deps resolve to local workspace
crates instead of fetching a separate copy from the ethrex git repo.
cargo-chef cook cannot resolve git dependencies (ethrex-monitor/repl)
because the [patch] section references local source paths that only
contain stubs during the cook phase. Let cook fail gracefully since it's
a caching optimization — the real build step has all sources available.
Copy link
Copy Markdown
Contributor

@iovoid iovoid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some places assume the folder is cloned to tooling, and others mention ethrex-tooling.

Also the folder should be gitignored to avoid pushing it.


```sh
cd tooling/ef_tests/state
cd ethrex-tooling/ef_tests/state
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent with scripts assuming the folder is named 'tooling'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

L1 Ethereum client

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

5 participants