Skip to content

Conversation

@SDartayet
Copy link
Contributor

@SDartayet SDartayet commented Nov 25, 2025

Motivation

Complicance with the RPC spec

Description

When we added the eth_config endpoint, there were no Osaka test cases, so we used a (plausible) placeholder name for the precompile introduced by EIP-7951. Now there are test cases indicating the expected name for this precompile, which is different than the one we used. This PR fixed the naming for the precompile. Additionally, a bug with the get_fork function was fixed where the BPO forks weren't being considered.

@SDartayet SDartayet force-pushed the eth-config-p256-precompile branch from 787d8b3 to c179cd9 Compare November 25, 2025 17:48
@github-actions
Copy link

github-actions bot commented Nov 25, 2025

Lines of code report

Total lines added: 10
Total lines removed: 1
Total lines changed: 11

Detailed view
+------------------------------------------+-------+------+
| File                                     | Lines | Diff |
+------------------------------------------+-------+------+
| ethrex/crates/common/types/genesis.rs    | 962   | +10  |
+------------------------------------------+-------+------+
| ethrex/crates/vm/levm/src/precompiles.rs | 1650  | -1   |
+------------------------------------------+-------+------+

@github-actions
Copy link

github-actions bot commented Nov 25, 2025

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 2.970 ± 0.021 2.953 3.024 1.00 ± 0.01
main_levm_BubbleSort 3.084 ± 0.022 3.059 3.121 1.04 ± 0.01
pr_revm_BubbleSort 2.964 ± 0.009 2.953 2.980 1.00
pr_levm_BubbleSort 3.094 ± 0.031 3.062 3.161 1.04 ± 0.01

Benchmark Results: ERC20Approval

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Approval 980.4 ± 9.5 967.4 995.0 1.01 ± 0.01
main_levm_ERC20Approval 1086.2 ± 8.2 1078.3 1104.5 1.12 ± 0.01
pr_revm_ERC20Approval 969.1 ± 9.0 962.6 993.9 1.00
pr_levm_ERC20Approval 1094.1 ± 10.2 1084.7 1120.7 1.13 ± 0.01

Benchmark Results: ERC20Mint

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Mint 135.4 ± 2.1 133.8 141.0 1.00 ± 0.02
main_levm_ERC20Mint 165.1 ± 3.2 161.9 172.5 1.22 ± 0.03
pr_revm_ERC20Mint 135.3 ± 1.3 134.1 137.6 1.00
pr_levm_ERC20Mint 166.7 ± 3.7 163.9 174.5 1.23 ± 0.03

Benchmark Results: ERC20Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ERC20Transfer 229.9 ± 1.2 227.8 231.7 1.00
main_levm_ERC20Transfer 276.8 ± 3.0 271.8 281.9 1.20 ± 0.01
pr_revm_ERC20Transfer 231.3 ± 3.0 227.6 237.4 1.01 ± 0.01
pr_levm_ERC20Transfer 277.6 ± 3.1 274.0 283.0 1.21 ± 0.01

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Factorial 227.1 ± 3.7 225.2 237.4 1.00
main_levm_Factorial 263.9 ± 1.2 262.5 265.7 1.16 ± 0.02
pr_revm_Factorial 227.3 ± 3.5 222.8 236.5 1.00 ± 0.02
pr_levm_Factorial 266.7 ± 1.1 265.3 268.7 1.17 ± 0.02

Benchmark Results: FactorialRecursive

Command Mean [s] Min [s] Max [s] Relative
main_revm_FactorialRecursive 1.637 ± 0.032 1.597 1.684 1.00 ± 0.03
main_levm_FactorialRecursive 8.336 ± 0.086 8.220 8.505 5.10 ± 0.10
pr_revm_FactorialRecursive 1.633 ± 0.027 1.597 1.668 1.00
pr_levm_FactorialRecursive 8.383 ± 0.064 8.223 8.443 5.13 ± 0.09

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Fibonacci 205.4 ± 1.6 201.1 206.6 1.00
main_levm_Fibonacci 256.8 ± 7.9 247.5 268.3 1.25 ± 0.04
pr_revm_Fibonacci 206.7 ± 1.4 205.6 210.3 1.01 ± 0.01
pr_levm_Fibonacci 255.6 ± 6.5 248.0 265.2 1.24 ± 0.03

Benchmark Results: FibonacciRecursive

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_FibonacciRecursive 851.7 ± 9.8 834.2 863.2 1.12 ± 0.01
main_levm_FibonacciRecursive 764.4 ± 8.3 755.9 783.8 1.00 ± 0.01
pr_revm_FibonacciRecursive 852.8 ± 8.4 841.3 865.2 1.12 ± 0.01
pr_levm_FibonacciRecursive 763.6 ± 4.5 758.8 771.8 1.00

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_ManyHashes 8.3 ± 0.1 8.2 8.5 1.00 ± 0.01
main_levm_ManyHashes 9.2 ± 0.2 9.0 9.6 1.11 ± 0.02
pr_revm_ManyHashes 8.3 ± 0.0 8.2 8.4 1.00
pr_levm_ManyHashes 9.1 ± 0.1 9.0 9.4 1.11 ± 0.02

Benchmark Results: MstoreBench

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_MstoreBench 265.9 ± 5.2 261.0 276.5 1.10 ± 0.02
main_levm_MstoreBench 241.1 ± 1.6 238.6 243.1 1.00
pr_revm_MstoreBench 263.8 ± 7.3 260.2 284.4 1.09 ± 0.03
pr_levm_MstoreBench 242.3 ± 1.5 240.8 244.8 1.01 ± 0.01

Benchmark Results: Push

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_Push 293.6 ± 1.4 292.1 297.1 1.00 ± 0.01
main_levm_Push 308.9 ± 29.4 297.7 392.4 1.05 ± 0.10
pr_revm_Push 293.1 ± 1.8 291.0 297.9 1.00
pr_levm_Push 300.8 ± 20.8 291.1 359.8 1.03 ± 0.07

Benchmark Results: SstoreBench_no_opt

Command Mean [ms] Min [ms] Max [ms] Relative
main_revm_SstoreBench_no_opt 174.8 ± 4.7 167.0 178.3 1.97 ± 0.06
main_levm_SstoreBench_no_opt 89.6 ± 2.3 87.4 94.9 1.01 ± 0.03
pr_revm_SstoreBench_no_opt 175.3 ± 2.9 168.0 178.5 1.98 ± 0.05
pr_levm_SstoreBench_no_opt 88.6 ± 1.6 87.0 92.8 1.00

@github-actions github-actions bot added the L1 Ethereum client label Nov 25, 2025
@SDartayet SDartayet marked this pull request as ready for review November 25, 2025 21:45
@SDartayet SDartayet requested a review from a team as a code owner November 25, 2025 21:45
@ethrex-project-sync ethrex-project-sync bot moved this to In Review in ethrex_l1 Nov 25, 2025
@SDartayet SDartayet added this pull request to the merge queue Nov 25, 2025
Merged via the queue into main with commit 647e76f Nov 25, 2025
60 checks passed
@SDartayet SDartayet deleted the eth-config-p256-precompile branch November 25, 2025 22:08
@github-project-automation github-project-automation bot moved this from In Review to Done in ethrex_l1 Nov 25, 2025
LeanSerra pushed a commit that referenced this pull request Nov 26, 2025
**Motivation**

Complicance with the RPC spec

**Description**

When we added the eth_config endpoint, there were no Osaka test cases,
so we used a (plausible) placeholder name for the precompile introduced
by [EIP-7951](https://eips.ethereum.org/EIPS/eip-7951). Now there [are
test
cases](https://github.com/ethereum/execution-specs/blob/1e99293904cf3efc4c82834cc30159cfeb66f299/packages/testing/src/execution_testing/cli/pytest_commands/plugins/execute/eth_config/tests/test_execute_eth_config.py#L228)
indicating the expected name for this precompile, which is different
than the one we used. This PR fixed the naming for the precompile.
Additionally, a bug with the `get_fork` function was fixed where the BPO
forks weren't being considered.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

L1 Ethereum client

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants