Skip to content

feat(l2): use levm for pre execution #2411

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 144 commits into from
Closed

feat(l2): use levm for pre execution #2411

wants to merge 144 commits into from

Conversation

tomip01
Copy link
Contributor

@tomip01 tomip01 commented Apr 4, 2025

Motivation

Description

Closes #issue_number

Copy link

github-actions bot commented Apr 4, 2025

Lines of code report

Total lines added: 384
Total lines removed: 260
Total lines changed: 644

Detailed view
+------------------------------------------------+-------+------+
| File                                           | Lines | Diff |
+------------------------------------------------+-------+------+
| ethrex/crates/l2/prover/bench/src/constants.rs | 39    | +3   |
+------------------------------------------------+-------+------+
| ethrex/crates/l2/prover/bench/src/main.rs      | 96    | -2   |
+------------------------------------------------+-------+------+
| ethrex/crates/l2/prover/bench/src/rpc/db.rs    | 538   | +125 |
+------------------------------------------------+-------+------+
| ethrex/crates/l2/sequencer/prover_server.rs    | 469   | +1   |
+------------------------------------------------+-------+------+
| ethrex/crates/l2/utils/test_data_io.rs         | 86    | -4   |
+------------------------------------------------+-------+------+
| ethrex/crates/vm/backends/levm/db.rs           | 196   | +62  |
+------------------------------------------------+-------+------+
| ethrex/crates/vm/backends/levm/mod.rs          | 674   | +183 |
+------------------------------------------------+-------+------+
| ethrex/crates/vm/backends/mod.rs               | 242   | +6   |
+------------------------------------------------+-------+------+
| ethrex/crates/vm/backends/revm/db.rs           | 206   | -155 |
+------------------------------------------------+-------+------+
| ethrex/crates/vm/backends/revm/execution_db.rs | 123   | -3   |
+------------------------------------------------+-------+------+
| ethrex/crates/vm/db.rs                         | 46    | -96  |
+------------------------------------------------+-------+------+
| ethrex/crates/vm/errors.rs                     | 121   | +2   |
+------------------------------------------------+-------+------+
| ethrex/crates/vm/levm/src/vm.rs                | 441   | +2   |
+------------------------------------------------+-------+------+

@tomip01 tomip01 changed the title first approach feat(l2): use levm for pre execution Apr 4, 2025
@jrchatruc jrchatruc changed the base branch from main to l2/test_prover_client April 9, 2025 13:56
Base automatically changed from l2/test_prover_client to main April 10, 2025 22:02
Copy link

github-actions bot commented Apr 14, 2025

Benchmark Results Comparison

PR Results

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
revm_Factorial 238.7 ± 1.1 237.6 240.9 1.00
levm_Factorial 798.1 ± 8.5 791.6 818.6 3.34 ± 0.04

Benchmark Results: Factorial - Recursive

Command Mean [s] Min [s] Max [s] Relative
revm_FactorialRecursive 1.409 ± 0.089 1.333 1.566 1.00
levm_FactorialRecursive 13.798 ± 0.024 13.764 13.841 9.79 ± 0.62

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
revm_Fibonacci 210.2 ± 1.4 208.7 213.6 1.00
levm_Fibonacci 785.5 ± 9.7 776.1 807.6 3.74 ± 0.05

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ManyHashes 8.7 ± 0.1 8.6 8.7 1.00
levm_ManyHashes 16.4 ± 0.2 16.2 16.7 1.89 ± 0.02

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
revm_BubbleSort 3.287 ± 0.019 3.264 3.323 1.00
levm_BubbleSort 5.684 ± 0.095 5.579 5.900 1.73 ± 0.03

Benchmark Results: ERC20 - Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ERC20Transfer 248.6 ± 4.5 246.0 260.9 1.00
levm_ERC20Transfer 485.4 ± 6.9 477.2 501.0 1.95 ± 0.04

Benchmark Results: ERC20 - Mint

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ERC20Mint 141.5 ± 1.0 140.4 143.6 1.00
levm_ERC20Mint 315.5 ± 3.4 311.8 324.2 2.23 ± 0.03

Benchmark Results: ERC20 - Approval

Command Mean [s] Min [s] Max [s] Relative
revm_ERC20Approval 1.038 ± 0.006 1.033 1.053 1.00
levm_ERC20Approval 1.842 ± 0.016 1.822 1.866 1.77 ± 0.02

Main Results

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
revm_Factorial 238.8 ± 2.4 237.3 245.3 1.00
levm_Factorial 799.6 ± 9.3 792.2 823.8 3.35 ± 0.05

Benchmark Results: Factorial - Recursive

Command Mean [s] Min [s] Max [s] Relative
revm_FactorialRecursive 1.468 ± 0.090 1.345 1.602 1.00
levm_FactorialRecursive 13.832 ± 0.022 13.790 13.860 9.42 ± 0.58

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
revm_Fibonacci 209.4 ± 1.0 207.7 211.5 1.00
levm_Fibonacci 785.4 ± 6.8 775.6 795.7 3.75 ± 0.04

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ManyHashes 8.9 ± 0.1 8.8 9.1 1.00
levm_ManyHashes 16.7 ± 0.1 16.4 16.9 1.87 ± 0.02

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
revm_BubbleSort 3.244 ± 0.018 3.223 3.276 1.00
levm_BubbleSort 5.667 ± 0.063 5.609 5.832 1.75 ± 0.02

Benchmark Results: ERC20 - Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ERC20Transfer 249.3 ± 3.8 245.5 255.4 1.00
levm_ERC20Transfer 490.2 ± 2.2 487.4 493.9 1.97 ± 0.03

Benchmark Results: ERC20 - Mint

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ERC20Mint 140.3 ± 0.8 139.4 142.0 1.00
levm_ERC20Mint 317.9 ± 7.4 312.3 338.0 2.27 ± 0.05

Benchmark Results: ERC20 - Approval

Command Mean [s] Min [s] Max [s] Relative
revm_ERC20Approval 1.023 ± 0.006 1.014 1.036 1.00
levm_ERC20Approval 1.867 ± 0.036 1.832 1.960 1.82 ± 0.04

@jrchatruc
Copy link
Collaborator

Closed since it became part of #2332

@jrchatruc jrchatruc closed this Apr 15, 2025
@jrchatruc jrchatruc deleted the levm/pre-execute-new branch April 15, 2025 18:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants