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

fix(l2): fix zkVM programs #1901

Merged
merged 5 commits into from
Feb 10, 2025
Merged

fix(l2): fix zkVM programs #1901

merged 5 commits into from
Feb 10, 2025

Conversation

xqft
Copy link
Contributor

@xqft xqft commented Feb 10, 2025

Motivation

zkVM programs fail to compile after #1861 was merged to main. This PR fixes the problem and bumps provers' versions.

L2 breaking changes keep being merged because the prover compilation job isn't run in pushes that don't modify the L2 code, but the L2 is strongly dependent on L1 code. This PR enables the job for all pushes. The job takes ~13 minutes to complete, which is comparable to other jobs which run on all pushes.

  • fixes ethrex-levm adding c-kzg into the zkVMs programs dependency tree
  • bumps SP1 and Risc0 versions
  • enables prover CI job for all pushes

@xqft xqft marked this pull request as ready for review February 10, 2025 22:00
@xqft xqft requested a review from a team as a code owner February 10, 2025 22:01
Copy link

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

Copy link
Contributor

@fborello-lambda fborello-lambda left a comment

Choose a reason for hiding this comment

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

👍

Copy link

Summary: 11342/14408 (78.72%)

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: 1709/2439 (70.07%)
Byzantium: 1795/2330 (77.04%)
Homestead: 612/1324 (46.22%)
Frontier: 149/742 (20.08%)

Copy link

Benchmark Results Comparison

PR Results

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
revm_Factorial 230.3 ± 0.8 229.7 231.8 1.00
levm_Factorial 906.7 ± 10.0 896.7 923.6 3.94 ± 0.05

Benchmark Results: Factorial - Recursive

Command Mean [s] Min [s] Max [s] Relative
revm_FactorialRecursive 1.465 ± 0.130 1.319 1.704 1.00
levm_FactorialRecursive 15.671 ± 0.028 15.639 15.715 10.70 ± 0.95

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
revm_Fibonacci 207.1 ± 2.4 205.6 213.8 1.00
levm_Fibonacci 904.5 ± 12.6 889.4 931.2 4.37 ± 0.08

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ManyHashes 8.8 ± 0.6 8.5 10.3 1.00
levm_ManyHashes 18.1 ± 0.1 17.9 18.3 2.05 ± 0.14

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
revm_BubbleSort 3.184 ± 0.008 3.169 3.195 1.00
levm_BubbleSort 6.179 ± 0.043 6.124 6.260 1.94 ± 0.01

Benchmark Results: ERC20 - Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ERC20Transfer 249.8 ± 4.1 245.9 257.3 1.00
levm_ERC20Transfer 543.4 ± 8.0 536.0 565.5 2.18 ± 0.05

Benchmark Results: ERC20 - Mint

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ERC20Mint 140.3 ± 0.7 139.6 142.1 1.00
levm_ERC20Mint 354.5 ± 2.5 350.5 357.7 2.53 ± 0.02

Benchmark Results: ERC20 - Approval

Command Mean [s] Min [s] Max [s] Relative
revm_ERC20Approval 1.044 ± 0.008 1.033 1.063 1.00
levm_ERC20Approval 2.050 ± 0.032 2.028 2.132 1.96 ± 0.03

Main Results

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
revm_Factorial 233.3 ± 0.6 232.1 234.4 1.00
levm_Factorial 910.4 ± 8.5 899.2 920.6 3.90 ± 0.04

Benchmark Results: Factorial - Recursive

Command Mean [s] Min [s] Max [s] Relative
revm_FactorialRecursive 1.412 ± 0.082 1.316 1.552 1.00
levm_FactorialRecursive 15.666 ± 0.028 15.633 15.720 11.10 ± 0.65

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
revm_Fibonacci 205.7 ± 1.4 202.2 207.2 1.00
levm_Fibonacci 906.5 ± 16.1 891.5 950.0 4.41 ± 0.08

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ManyHashes 8.6 ± 0.0 8.6 8.7 1.00
levm_ManyHashes 18.3 ± 0.2 18.0 18.6 2.12 ± 0.03

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
revm_BubbleSort 3.228 ± 0.037 3.202 3.323 1.00
levm_BubbleSort 6.220 ± 0.070 6.167 6.398 1.93 ± 0.03

Benchmark Results: ERC20 - Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ERC20Transfer 248.4 ± 1.2 246.9 251.0 1.00
levm_ERC20Transfer 545.8 ± 2.8 542.0 551.0 2.20 ± 0.02

Benchmark Results: ERC20 - Mint

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ERC20Mint 142.1 ± 0.5 141.1 142.9 1.00
levm_ERC20Mint 357.2 ± 6.5 353.0 374.9 2.51 ± 0.05

Benchmark Results: ERC20 - Approval

Command Mean [s] Min [s] Max [s] Relative
revm_ERC20Approval 1.045 ± 0.015 1.035 1.083 1.00
levm_ERC20Approval 2.056 ± 0.035 2.030 2.151 1.97 ± 0.04

@fborello-lambda fborello-lambda added this pull request to the merge queue Feb 10, 2025
Merged via the queue into main with commit d874830 Feb 10, 2025
47 of 48 checks passed
@fborello-lambda fborello-lambda deleted the fix_l2 branch February 10, 2025 22:43
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.

2 participants