Skip to content
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

feat(levm): add support for eip3651_warm_coinbase test suite #1919

Merged
merged 2 commits into from
Feb 11, 2025

Conversation

tomip01
Copy link
Contributor

@tomip01 tomip01 commented Feb 11, 2025

Motivation

In this PR we add support for the eip3651_warm_coinbase test suite.

Description

Change the cold/warm cost for balance and extcodesize of the eip-2929 to be on forks after Berlin and not after Cancun.

Closes #1916

@tomip01 tomip01 added ef-tests Hive tests, execution-spec-tests levm Lambda EVM implementation labels Feb 11, 2025
@tomip01 tomip01 self-assigned this Feb 11, 2025
@tomip01 tomip01 requested a review from a team as a code owner February 11, 2025 20:02
Copy link

github-actions bot commented Feb 11, 2025

Total lines added: 0
Total lines removed: 0
Total lines changed: 0

Copy link
Contributor

@lima-limon-inc lima-limon-inc left a comment

Choose a reason for hiding this comment

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

LGTM! Great catch Tomi.

Copy link
Contributor

@JulianVentura JulianVentura left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link

Summary: 13083/16775 (77.99%)
Prague: 2373/2373 (100.00%)
Cancun: 3579/3579 (100.00%)
Shanghai: 221/221 (100.00%)
Paris: 62/62 (100.00%)
London: 39/39 (100.00%)
Berlin: 2/35 (5.71%)
Istanbul: 34/35 (97.14%)
Constantinople: 1463/2406 (60.81%)
Petersburg: 1895/2400 (78.96%)
Byzantium: 1855/2330 (79.61%)
Homestead: 633/1324 (47.81%)
Frontier: 152/742 (20.49%)
SpuriousDragon: 408/579 (70.47%)
Tangerine: 367/650 (56.46%)

Copy link

Benchmark Results Comparison

PR Results

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
revm_Factorial 234.2 ± 0.6 233.5 235.5 1.00
levm_Factorial 909.6 ± 8.1 902.2 924.6 3.88 ± 0.04

Benchmark Results: Factorial - Recursive

Command Mean [s] Min [s] Max [s] Relative
revm_FactorialRecursive 1.415 ± 0.088 1.315 1.575 1.00
levm_FactorialRecursive 15.872 ± 0.050 15.797 15.953 11.22 ± 0.70

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
revm_Fibonacci 212.9 ± 2.8 211.1 220.5 1.00
levm_Fibonacci 910.4 ± 5.8 901.1 922.4 4.28 ± 0.06

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ManyHashes 8.7 ± 0.1 8.7 8.8 1.00
levm_ManyHashes 18.4 ± 0.1 18.3 18.5 2.11 ± 0.02

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
revm_BubbleSort 3.221 ± 0.019 3.191 3.253 1.00
levm_BubbleSort 6.198 ± 0.085 6.142 6.424 1.92 ± 0.03

Benchmark Results: ERC20 - Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ERC20Transfer 248.8 ± 2.0 246.8 253.5 1.00
levm_ERC20Transfer 547.2 ± 2.6 543.5 551.5 2.20 ± 0.02

Benchmark Results: ERC20 - Mint

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ERC20Mint 140.3 ± 0.3 139.8 140.8 1.00
levm_ERC20Mint 360.4 ± 9.3 354.8 386.5 2.57 ± 0.07

Benchmark Results: ERC20 - Approval

Command Mean [s] Min [s] Max [s] Relative
revm_ERC20Approval 1.048 ± 0.012 1.033 1.070 1.00
levm_ERC20Approval 2.058 ± 0.015 2.036 2.083 1.96 ± 0.03

Main Results

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
revm_Factorial 235.2 ± 1.1 234.2 238.0 1.00
levm_Factorial 911.0 ± 8.7 898.9 924.1 3.87 ± 0.04

Benchmark Results: Factorial - Recursive

Command Mean [s] Min [s] Max [s] Relative
revm_FactorialRecursive 1.416 ± 0.078 1.316 1.568 1.00
levm_FactorialRecursive 15.818 ± 0.030 15.784 15.865 11.17 ± 0.62

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
revm_Fibonacci 213.6 ± 4.6 208.3 224.4 1.00
levm_Fibonacci 910.1 ± 9.3 895.9 932.5 4.26 ± 0.10

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ManyHashes 8.6 ± 0.0 8.5 8.6 1.00
levm_ManyHashes 18.4 ± 0.2 18.1 18.8 2.15 ± 0.03

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
revm_BubbleSort 3.215 ± 0.031 3.189 3.291 1.00
levm_BubbleSort 6.188 ± 0.054 6.137 6.272 1.92 ± 0.02

Benchmark Results: ERC20 - Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ERC20Transfer 252.2 ± 3.7 247.5 260.8 1.00
levm_ERC20Transfer 549.8 ± 4.8 542.2 558.3 2.18 ± 0.04

Benchmark Results: ERC20 - Mint

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ERC20Mint 141.6 ± 0.6 140.5 142.3 1.00
levm_ERC20Mint 356.3 ± 1.6 354.0 359.2 2.52 ± 0.02

Benchmark Results: ERC20 - Approval

Command Mean [s] Min [s] Max [s] Relative
revm_ERC20Approval 1.043 ± 0.012 1.032 1.059 1.00
levm_ERC20Approval 2.056 ± 0.012 2.033 2.073 1.97 ± 0.03

Copy link

EF Tests Comparison

Test Name MAIN PR DIFF
Summary: 12997/16775 13083/16775 ⬆️
Prague: 2373/2373 2373/2373 ➖️
Cancun: 3579/3579 3579/3579 ➖️
Shanghai: 137/221 221/221 ⬆️
Paris: 60/62 62/62 ⬆️
London: 39/39 39/39 ➖️
Berlin: 2/35 2/35 ➖️
Istanbul: 34/35 34/35 ➖️
Constantinople: 1463/2406 1463/2406 ➖️
Petersburg: 1895/2400 1895/2400 ➖️
Byzantium: 1855/2330 1855/2330 ➖️
Homestead: 633/1324 633/1324 ➖️
Frontier: 152/742 152/742 ➖️
SpuriousDragon: 408/579 408/579 ➖️
Tangerine: 367/650 367/650 ➖️

@tomip01 tomip01 added this pull request to the merge queue Feb 11, 2025
Merged via the queue into main with commit e1a9543 Feb 11, 2025
28 checks passed
@tomip01 tomip01 deleted the levm/warm-coinbase branch February 11, 2025 20:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ef-tests Hive tests, execution-spec-tests levm Lambda EVM implementation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

LEVM: Add support for the eip3651_warm_coinbase test suite
3 participants