Skip to content

perf: optimize SSZ merkle proof verification#59

Merged
pk910 merged 5 commits intopk910:masterfrom
Sahil-4555:optimize-proof
Dec 11, 2025
Merged

perf: optimize SSZ merkle proof verification#59
pk910 merged 5 commits intopk910:masterfrom
Sahil-4555:optimize-proof

Conversation

@Sahil-4555
Copy link
Copy Markdown
Contributor

@Sahil-4555 Sahil-4555 commented Dec 10, 2025

@pk910 Optimize single and multi merkle proof verification for time and memory

goos: linux
goarch: amd64
pkg: github.com/pk910/dynamic-ssz/treeproof
cpu: Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz
                                             │ new_bench.txt │             old_bench.txt             │
                                             │    sec/op     │    sec/op      vs base                │
VerifyMultiproof/Prove_2_Adjacent_Leaves-8       13.19µ ± 7%    14.54µ ± 16%  +10.23% (p=0.001 n=10)
VerifyMultiproof/Prove_16_Scattered_Leaves-8     140.6µ ± 3%    154.3µ ±  5%   +9.78% (p=0.000 n=10)
VerifyMultiproof/Prove_All_Leaves-8              87.19m ± 4%   109.94m ±  7%  +26.10% (p=0.000 n=10)
geomean                                          544.7µ         627.1µ        +15.12%

                                             │ new_bench.txt │            old_bench.txt             │
                                             │     B/op      │     B/op      vs base                │
VerifyMultiproof/Prove_2_Adjacent_Leaves-8      6.242Ki ± 0%   6.852Ki ± 0%   +9.76% (p=0.000 n=10)
VerifyMultiproof/Prove_16_Scattered_Leaves-8    58.14Ki ± 0%   67.77Ki ± 0%  +16.55% (p=0.000 n=10)
VerifyMultiproof/Prove_All_Leaves-8             27.68Mi ± 0%   43.95Mi ± 0%  +58.81% (p=0.000 n=10)
geomean                                         217.5Ki        275.4Ki       +26.66%

                                             │ new_bench.txt │           old_bench.txt            │
                                             │   allocs/op   │  allocs/op   vs base               │
VerifyMultiproof/Prove_2_Adjacent_Leaves-8        38.00 ± 0%    40.00 ± 0%  +5.26% (p=0.000 n=10)
VerifyMultiproof/Prove_16_Scattered_Leaves-8      214.0 ± 0%    227.0 ± 0%  +6.07% (p=0.000 n=10)
VerifyMultiproof/Prove_All_Leaves-8              67.11k ± 0%   68.71k ± 0%  +2.39% (p=0.000 n=10)
geomean                                           817.2         854.5       +4.56%

@codecov
Copy link
Copy Markdown

codecov Bot commented Dec 11, 2025

Codecov Report

❌ Patch coverage is 93.61702% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 83.67%. Comparing base (4fc2459) to head (bb61bdd).
⚠️ Report is 10 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master      #59      +/-   ##
==========================================
- Coverage   83.68%   83.67%   -0.01%     
==========================================
  Files          34       34              
  Lines        5841     5851      +10     
==========================================
+ Hits         4888     4896       +8     
- Misses        570      571       +1     
- Partials      383      384       +1     
Components Coverage Δ
dynssz 80.62% <ø> (ø)
dynsszgen 82.70% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@pk910
Copy link
Copy Markdown
Owner

pk910 commented Dec 11, 2025

Heya @Sahil-4555
Thanks for your improvements, looks very good :)

@pk910 pk910 merged commit 6c259a5 into pk910:master Dec 11, 2025
17 checks passed
@Sahil-4555 Sahil-4555 deleted the optimize-proof branch December 11, 2025 05:10
@Sahil-4555 Sahil-4555 restored the optimize-proof branch December 19, 2025 06: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