Skip to content

Conversation

@philknows
Copy link
Member

Motivation

As per release.md we must re-merge stable back to unstable to bump package versions.

@philknows philknows requested a review from a team as a code owner November 4, 2025 18:34
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @philknows, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request performs a routine version bump across the entire monorepo, updating all package versions to 1.36.0. This action is a standard part of the release process, ensuring that the unstable branch is synchronized with the latest stable release, as outlined in the project's release.md documentation.

Highlights

  • Version Bump: The project's root lerna.json file has been updated to version 1.36.0.
  • Package Version Updates: All individual @lodestar packages within the monorepo have had their version fields updated from 1.35.0 to 1.36.0 in their respective package.json files.
  • Dependency Updates: Internal @lodestar dependencies and dev dependencies across all packages have been updated to reference the new ^1.36.0 version.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request merges the v1.36.0 release back into the unstable branch, bumping the package versions across the monorepo. I have reviewed the version updates in lerna.json and all the package.json files. The changes are consistent and correctly update the version to 1.36.0 and update the internal dependencies accordingly. The changes look good and are in line with the repository's release process.

@philknows philknows merged commit 6d7c41d into unstable Nov 4, 2025
24 of 27 checks passed
@codecov
Copy link

codecov bot commented Nov 4, 2025

Codecov Report

❌ Patch coverage is 32.37364% with 1057 lines in your changes missing coverage. Please review.
✅ Project coverage is 51.99%. Comparing base (a8e3089) to head (c5e987f).
⚠️ Report is 60 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #8608      +/-   ##
============================================
- Coverage     52.25%   51.99%   -0.27%     
============================================
  Files           852      848       -4     
  Lines         65054    65941     +887     
  Branches       4774     4815      +41     
============================================
+ Hits          33995    34286     +291     
- Misses        30990    31587     +597     
+ Partials         69       68       -1     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions
Copy link
Contributor

github-actions bot commented Nov 4, 2025

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 3355eb6 Previous: 782dc5e Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 913.02 us/op 1.4772 ms/op 0.62
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 36.534 us/op 58.442 us/op 0.63
BLS verify - blst 1.0634 ms/op 1.5481 ms/op 0.69
BLS verifyMultipleSignatures 3 - blst 1.6882 ms/op 2.2621 ms/op 0.75
BLS verifyMultipleSignatures 8 - blst 2.3542 ms/op 3.3122 ms/op 0.71
BLS verifyMultipleSignatures 32 - blst 7.4291 ms/op 9.4613 ms/op 0.79
BLS verifyMultipleSignatures 64 - blst 12.635 ms/op 16.607 ms/op 0.76
BLS verifyMultipleSignatures 128 - blst 17.523 ms/op 30.794 ms/op 0.57
BLS deserializing 10000 signatures 709.75 ms/op 1.3187 s/op 0.54
BLS deserializing 100000 signatures 6.8900 s/op 13.270 s/op 0.52
BLS verifyMultipleSignatures - same message - 3 - blst 957.24 us/op 1.8435 ms/op 0.52
BLS verifyMultipleSignatures - same message - 8 - blst 1.0279 ms/op 1.9454 ms/op 0.53
BLS verifyMultipleSignatures - same message - 32 - blst 1.6667 ms/op 2.9908 ms/op 0.56
BLS verifyMultipleSignatures - same message - 64 - blst 2.6635 ms/op 4.7252 ms/op 0.56
BLS verifyMultipleSignatures - same message - 128 - blst 4.4054 ms/op 7.7097 ms/op 0.57
BLS aggregatePubkeys 32 - blst 21.271 us/op 39.422 us/op 0.54
BLS aggregatePubkeys 128 - blst 69.280 us/op 126.58 us/op 0.55
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 60.211 ms/op 110.00 ms/op 0.55
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 49.090 ms/op 93.630 ms/op 0.52
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 45.513 ms/op 69.464 ms/op 0.66
getSlashingsAndExits - default max 78.521 us/op 143.93 us/op 0.55
getSlashingsAndExits - 2k 327.52 us/op 354.96 us/op 0.92
isKnown best case - 1 super set check 222.00 ns/op 301.00 ns/op 0.74
isKnown normal case - 2 super set checks 221.00 ns/op 290.00 ns/op 0.76
isKnown worse case - 16 super set checks 223.00 ns/op 308.00 ns/op 0.72
InMemoryCheckpointStateCache - add get delete 2.5360 us/op 3.5060 us/op 0.72
validate api signedAggregateAndProof - struct 1.5330 ms/op 2.1177 ms/op 0.72
validate gossip signedAggregateAndProof - struct 1.7911 ms/op 2.3087 ms/op 0.78
batch validate gossip attestation - vc 640000 - chunk 32 125.57 us/op 146.16 us/op 0.86
batch validate gossip attestation - vc 640000 - chunk 64 108.92 us/op 121.44 us/op 0.90
batch validate gossip attestation - vc 640000 - chunk 128 103.35 us/op 110.65 us/op 0.93
batch validate gossip attestation - vc 640000 - chunk 256 103.43 us/op 112.58 us/op 0.92
pickEth1Vote - no votes 965.90 us/op 1.0961 ms/op 0.88
pickEth1Vote - max votes 5.5378 ms/op 7.5163 ms/op 0.74
pickEth1Vote - Eth1Data hashTreeRoot value x2048 12.236 ms/op 13.977 ms/op 0.88
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 16.516 ms/op 20.223 ms/op 0.82
pickEth1Vote - Eth1Data fastSerialize value x2048 446.19 us/op 517.87 us/op 0.86
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.2319 ms/op 2.7539 ms/op 0.81
bytes32 toHexString 370.00 ns/op 427.00 ns/op 0.87
bytes32 Buffer.toString(hex) 253.00 ns/op 304.00 ns/op 0.83
bytes32 Buffer.toString(hex) from Uint8Array 343.00 ns/op 372.00 ns/op 0.92
bytes32 Buffer.toString(hex) + 0x 258.00 ns/op 286.00 ns/op 0.90
Object access 1 prop 0.12100 ns/op 0.13800 ns/op 0.88
Map access 1 prop 0.13000 ns/op 0.13000 ns/op 1.00
Object get x1000 6.0540 ns/op 7.0060 ns/op 0.86
Map get x1000 6.4990 ns/op 9.8190 ns/op 0.66
Object set x1000 28.967 ns/op 33.202 ns/op 0.87
Map set x1000 19.845 ns/op 22.714 ns/op 0.87
Return object 10000 times 0.29360 ns/op 0.32340 ns/op 0.91
Throw Error 10000 times 4.3990 us/op 5.1569 us/op 0.85
toHex 134.52 ns/op 167.97 ns/op 0.80
Buffer.from 122.65 ns/op 144.44 ns/op 0.85
shared Buffer 86.248 ns/op 91.676 ns/op 0.94
fastMsgIdFn sha256 / 200 bytes 2.2250 us/op 2.4230 us/op 0.92
fastMsgIdFn h32 xxhash / 200 bytes 212.00 ns/op 229.00 ns/op 0.93
fastMsgIdFn h64 xxhash / 200 bytes 263.00 ns/op 298.00 ns/op 0.88
fastMsgIdFn sha256 / 1000 bytes 7.7540 us/op 8.3490 us/op 0.93
fastMsgIdFn h32 xxhash / 1000 bytes 346.00 ns/op 397.00 ns/op 0.87
fastMsgIdFn h64 xxhash / 1000 bytes 343.00 ns/op 392.00 ns/op 0.88
fastMsgIdFn sha256 / 10000 bytes 68.868 us/op 78.496 us/op 0.88
fastMsgIdFn h32 xxhash / 10000 bytes 1.8210 us/op 2.0670 us/op 0.88
fastMsgIdFn h64 xxhash / 10000 bytes 1.2050 us/op 1.3900 us/op 0.87
100 bytes - compress - snappyjs 1.4060 us/op 2.0032 us/op 0.70
100 bytes - compress - snappy 1.1401 us/op 1.3357 us/op 0.85
100 bytes - compress - #snappy 1.9652 us/op 1.7228 us/op 1.14
200 bytes - compress - snappyjs 1.8895 us/op 2.2392 us/op 0.84
200 bytes - compress - snappy 1.2031 us/op 1.3498 us/op 0.89
200 bytes - compress - #snappy 2.0506 us/op 2.4333 us/op 0.84
300 bytes - compress - snappyjs 2.6679 us/op 2.7629 us/op 0.97
300 bytes - compress - snappy 1.2176 us/op 1.3287 us/op 0.92
300 bytes - compress - #snappy 2.4091 us/op 2.8715 us/op 0.84
400 bytes - compress - snappyjs 2.6760 us/op 3.4787 us/op 0.77
400 bytes - compress - snappy 1.3381 us/op 1.3733 us/op 0.97
400 bytes - compress - #snappy 2.6491 us/op 3.0441 us/op 0.87
500 bytes - compress - snappyjs 2.8722 us/op 3.2730 us/op 0.88
500 bytes - compress - snappy 1.3732 us/op 1.3685 us/op 1.00
500 bytes - compress - #snappy 3.1922 us/op 3.4871 us/op 0.92
1000 bytes - compress - snappyjs 5.8552 us/op 5.6629 us/op 1.03
1000 bytes - compress - snappy 1.7742 us/op 1.5783 us/op 1.12
1000 bytes - compress - #snappy 5.5234 us/op 5.8911 us/op 0.94
10000 bytes - compress - snappyjs 30.516 us/op 30.634 us/op 1.00
10000 bytes - compress - snappy 29.910 us/op 31.007 us/op 0.96
10000 bytes - compress - #snappy 30.279 us/op 30.639 us/op 0.99
100 bytes - uncompress - snappyjs 707.69 ns/op 1.1199 us/op 0.63
100 bytes - uncompress - snappy 1.0426 us/op 1.0232 us/op 1.02
100 bytes - uncompress - #snappy 715.14 ns/op 753.82 ns/op 0.95
200 bytes - uncompress - snappyjs 1.0861 us/op 1.6024 us/op 0.68
200 bytes - uncompress - snappy 1.0962 us/op 1.0242 us/op 1.07
200 bytes - uncompress - #snappy 1.0330 us/op 1.5017 us/op 0.69
300 bytes - uncompress - snappyjs 1.5299 us/op 1.3278 us/op 1.15
300 bytes - uncompress - snappy 1.1887 us/op 1.1515 us/op 1.03
300 bytes - uncompress - #snappy 1.5724 us/op 1.6763 us/op 0.94
400 bytes - uncompress - snappyjs 1.8042 us/op 2.1130 us/op 0.85
400 bytes - uncompress - snappy 1.2622 us/op 1.2679 us/op 1.00
400 bytes - uncompress - #snappy 1.6778 us/op 1.6396 us/op 1.02
500 bytes - uncompress - snappyjs 1.8145 us/op 1.9303 us/op 0.94
500 bytes - uncompress - snappy 1.2719 us/op 1.3708 us/op 0.93
500 bytes - uncompress - #snappy 1.6195 us/op 1.6849 us/op 0.96
1000 bytes - uncompress - snappyjs 2.6579 us/op 2.8783 us/op 0.92
1000 bytes - uncompress - snappy 1.5857 us/op 1.5672 us/op 1.01
1000 bytes - uncompress - #snappy 2.2097 us/op 2.4388 us/op 0.91
10000 bytes - uncompress - snappyjs 14.309 us/op 16.932 us/op 0.85
10000 bytes - uncompress - snappy 40.201 us/op 30.384 us/op 1.32
10000 bytes - uncompress - #snappy 15.373 us/op 16.247 us/op 0.95
send data - 1000 256B messages 16.116 ms/op 18.123 ms/op 0.89
send data - 1000 512B messages 21.699 ms/op 21.405 ms/op 1.01
send data - 1000 1024B messages 28.207 ms/op 34.936 ms/op 0.81
send data - 1000 1200B messages 24.795 ms/op 27.615 ms/op 0.90
send data - 1000 2048B messages 27.799 ms/op 30.095 ms/op 0.92
send data - 1000 4096B messages 32.114 ms/op 35.853 ms/op 0.90
send data - 1000 16384B messages 47.358 ms/op 52.242 ms/op 0.91
send data - 1000 65536B messages 138.52 ms/op 131.43 ms/op 1.05
enrSubnets - fastDeserialize 64 bits 932.00 ns/op 1.0330 us/op 0.90
enrSubnets - ssz BitVector 64 bits 340.00 ns/op 377.00 ns/op 0.90
enrSubnets - fastDeserialize 4 bits 146.00 ns/op 157.00 ns/op 0.93
enrSubnets - ssz BitVector 4 bits 354.00 ns/op 384.00 ns/op 0.92
prioritizePeers score -10:0 att 32-0.1 sync 2-0 245.48 us/op 290.39 us/op 0.85
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 271.84 us/op 301.29 us/op 0.90
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 389.04 us/op 431.89 us/op 0.90
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 730.65 us/op 800.29 us/op 0.91
prioritizePeers score 0:0 att 64-1 sync 4-1 882.71 us/op 950.65 us/op 0.93
array of 16000 items push then shift 1.6587 us/op 1.9137 us/op 0.87
LinkedList of 16000 items push then shift 7.8800 ns/op 8.0490 ns/op 0.98
array of 16000 items push then pop 83.372 ns/op 89.575 ns/op 0.93
LinkedList of 16000 items push then pop 7.3840 ns/op 8.1600 ns/op 0.90
array of 24000 items push then shift 2.4632 us/op 2.5835 us/op 0.95
LinkedList of 24000 items push then shift 7.5460 ns/op 7.8730 ns/op 0.96
array of 24000 items push then pop 112.29 ns/op 115.08 ns/op 0.98
LinkedList of 24000 items push then pop 7.3130 ns/op 7.8980 ns/op 0.93
intersect bitArray bitLen 8 6.5480 ns/op 7.2520 ns/op 0.90
intersect array and set length 8 38.891 ns/op 43.159 ns/op 0.90
intersect bitArray bitLen 128 30.587 ns/op 33.801 ns/op 0.90
intersect array and set length 128 638.80 ns/op 691.02 ns/op 0.92
bitArray.getTrueBitIndexes() bitLen 128 1.0560 us/op 1.1800 us/op 0.89
bitArray.getTrueBitIndexes() bitLen 248 1.9590 us/op 1.9680 us/op 1.00
bitArray.getTrueBitIndexes() bitLen 512 3.7840 us/op 4.0430 us/op 0.94
Full columns - reconstruct all 6 blobs 72.391 us/op 72.429 us/op 1.00
Full columns - reconstruct half of the blobs out of 6 44.277 us/op 40.976 us/op 1.08
Full columns - reconstruct single blob out of 6 20.631 us/op 19.114 us/op 1.08
Half columns - reconstruct all 6 blobs 279.60 ms/op 326.19 ms/op 0.86
Half columns - reconstruct half of the blobs out of 6 150.09 ms/op 167.76 ms/op 0.89
Half columns - reconstruct single blob out of 6 52.639 ms/op 58.528 ms/op 0.90
Full columns - reconstruct all 10 blobs 182.69 us/op 135.32 us/op 1.35
Full columns - reconstruct half of the blobs out of 10 68.632 us/op 81.342 us/op 0.84
Full columns - reconstruct single blob out of 10 19.783 us/op 23.831 us/op 0.83
Half columns - reconstruct all 10 blobs 481.47 ms/op 533.16 ms/op 0.90
Half columns - reconstruct half of the blobs out of 10 238.23 ms/op 272.24 ms/op 0.88
Half columns - reconstruct single blob out of 10 52.191 ms/op 62.961 ms/op 0.83
Full columns - reconstruct all 20 blobs 236.25 us/op 371.87 us/op 0.64
Full columns - reconstruct half of the blobs out of 20 117.04 us/op 176.42 us/op 0.66
Full columns - reconstruct single blob out of 20 18.741 us/op 24.789 us/op 0.76
Half columns - reconstruct all 20 blobs 944.38 ms/op 1.1176 s/op 0.85
Half columns - reconstruct half of the blobs out of 20 491.69 ms/op 588.26 ms/op 0.84
Half columns - reconstruct single blob out of 20 52.867 ms/op 64.442 ms/op 0.82
Buffer.concat 32 items 679.00 ns/op 757.00 ns/op 0.90
Uint8Array.set 32 items 1.3810 us/op 1.3660 us/op 1.01
Buffer.copy 2.2780 us/op 2.5620 us/op 0.89
Uint8Array.set - with subarray 2.0010 us/op 1.9530 us/op 1.02
Uint8Array.set - without subarray 1.0110 us/op 1.4870 us/op 0.68
getUint32 - dataview 264.00 ns/op 254.00 ns/op 1.04
getUint32 - manual 134.00 ns/op 161.00 ns/op 0.83
Set add up to 64 items then delete first 2.5364 us/op 2.8640 us/op 0.89
OrderedSet add up to 64 items then delete first 3.7174 us/op 4.1880 us/op 0.89
Set add up to 64 items then delete last 2.6968 us/op 3.1913 us/op 0.85
OrderedSet add up to 64 items then delete last 4.5746 us/op 4.5701 us/op 1.00
Set add up to 64 items then delete middle 2.7297 us/op 3.1394 us/op 0.87
OrderedSet add up to 64 items then delete middle 6.0447 us/op 7.6209 us/op 0.79
Set add up to 128 items then delete first 5.9452 us/op 7.0644 us/op 0.84
OrderedSet add up to 128 items then delete first 8.4094 us/op 10.972 us/op 0.77
Set add up to 128 items then delete last 5.3150 us/op 7.4261 us/op 0.72
OrderedSet add up to 128 items then delete last 7.7386 us/op 11.218 us/op 0.69
Set add up to 128 items then delete middle 5.0649 us/op 6.6424 us/op 0.76
OrderedSet add up to 128 items then delete middle 16.681 us/op 17.359 us/op 0.96
Set add up to 256 items then delete first 10.699 us/op 12.614 us/op 0.85
OrderedSet add up to 256 items then delete first 16.459 us/op 20.614 us/op 0.80
Set add up to 256 items then delete last 10.935 us/op 14.078 us/op 0.78
OrderedSet add up to 256 items then delete last 17.401 us/op 18.910 us/op 0.92
Set add up to 256 items then delete middle 10.539 us/op 12.637 us/op 0.83
OrderedSet add up to 256 items then delete middle 46.657 us/op 64.911 us/op 0.72
transfer serialized Status (84 B) 2.2640 us/op 3.0200 us/op 0.75
copy serialized Status (84 B) 1.2430 us/op 1.5460 us/op 0.80
transfer serialized SignedVoluntaryExit (112 B) 2.3200 us/op 2.9470 us/op 0.79
copy serialized SignedVoluntaryExit (112 B) 1.3100 us/op 1.6960 us/op 0.77
transfer serialized ProposerSlashing (416 B) 2.8280 us/op 3.2570 us/op 0.87
copy serialized ProposerSlashing (416 B) 1.3550 us/op 1.6820 us/op 0.81
transfer serialized Attestation (485 B) 2.3700 us/op 3.8350 us/op 0.62
copy serialized Attestation (485 B) 1.3960 us/op 2.6940 us/op 0.52
transfer serialized AttesterSlashing (33232 B) 2.4580 us/op 3.1690 us/op 0.78
copy serialized AttesterSlashing (33232 B) 5.6220 us/op 5.8550 us/op 0.96
transfer serialized Small SignedBeaconBlock (128000 B) 3.4640 us/op 6.4060 us/op 0.54
copy serialized Small SignedBeaconBlock (128000 B) 18.189 us/op 18.841 us/op 0.97
transfer serialized Avg SignedBeaconBlock (200000 B) 6.3030 us/op 7.9520 us/op 0.79
copy serialized Avg SignedBeaconBlock (200000 B) 68.372 us/op 24.809 us/op 2.76
transfer serialized BlobsSidecar (524380 B) 5.1190 us/op 6.8900 us/op 0.74
copy serialized BlobsSidecar (524380 B) 94.963 us/op 110.68 us/op 0.86
transfer serialized Big SignedBeaconBlock (1000000 B) 4.2810 us/op 6.7510 us/op 0.63
copy serialized Big SignedBeaconBlock (1000000 B) 298.84 us/op 172.72 us/op 1.73
pass gossip attestations to forkchoice per slot 3.0900 ms/op 3.4975 ms/op 0.88
forkChoice updateHead vc 100000 bc 64 eq 0 485.19 us/op 658.04 us/op 0.74
forkChoice updateHead vc 600000 bc 64 eq 0 3.1927 ms/op 3.6963 ms/op 0.86
forkChoice updateHead vc 1000000 bc 64 eq 0 4.8483 ms/op 6.1389 ms/op 0.79
forkChoice updateHead vc 600000 bc 320 eq 0 2.9478 ms/op 4.1172 ms/op 0.72
forkChoice updateHead vc 600000 bc 1200 eq 0 2.9943 ms/op 4.0691 ms/op 0.74
forkChoice updateHead vc 600000 bc 7200 eq 0 3.2651 ms/op 3.7250 ms/op 0.88
forkChoice updateHead vc 600000 bc 64 eq 1000 2.9767 ms/op 3.4994 ms/op 0.85
forkChoice updateHead vc 600000 bc 64 eq 10000 3.1007 ms/op 3.6079 ms/op 0.86
forkChoice updateHead vc 600000 bc 64 eq 300000 9.6700 ms/op 13.988 ms/op 0.69
computeDeltas 1400000 validators 0% inactive 14.369 ms/op 19.531 ms/op 0.74
computeDeltas 1400000 validators 10% inactive 13.882 ms/op 17.573 ms/op 0.79
computeDeltas 1400000 validators 20% inactive 12.402 ms/op 16.047 ms/op 0.77
computeDeltas 1400000 validators 50% inactive 9.2113 ms/op 12.465 ms/op 0.74
computeDeltas 2100000 validators 0% inactive 22.264 ms/op 27.046 ms/op 0.82
computeDeltas 2100000 validators 10% inactive 20.197 ms/op 24.630 ms/op 0.82
computeDeltas 2100000 validators 20% inactive 18.247 ms/op 22.660 ms/op 0.81
computeDeltas 2100000 validators 50% inactive 13.825 ms/op 17.008 ms/op 0.81
altair processAttestation - 250000 vs - 7PWei normalcase 2.0772 ms/op 4.2365 ms/op 0.49
altair processAttestation - 250000 vs - 7PWei worstcase 3.0401 ms/op 4.8529 ms/op 0.63
altair processAttestation - setStatus - 1/6 committees join 128.90 us/op 212.81 us/op 0.61
altair processAttestation - setStatus - 1/3 committees join 247.00 us/op 369.63 us/op 0.67
altair processAttestation - setStatus - 1/2 committees join 339.39 us/op 527.19 us/op 0.64
altair processAttestation - setStatus - 2/3 committees join 427.77 us/op 574.33 us/op 0.74
altair processAttestation - setStatus - 4/5 committees join 625.69 us/op 918.22 us/op 0.68
altair processAttestation - setStatus - 100% committees join 720.42 us/op 1.0555 ms/op 0.68
altair processBlock - 250000 vs - 7PWei normalcase 4.7595 ms/op 6.3719 ms/op 0.75
altair processBlock - 250000 vs - 7PWei normalcase hashState 34.038 ms/op 37.177 ms/op 0.92
altair processBlock - 250000 vs - 7PWei worstcase 47.564 ms/op 42.914 ms/op 1.11
altair processBlock - 250000 vs - 7PWei worstcase hashState 86.076 ms/op 109.13 ms/op 0.79
phase0 processBlock - 250000 vs - 7PWei normalcase 2.0286 ms/op 2.4002 ms/op 0.85
phase0 processBlock - 250000 vs - 7PWei worstcase 22.976 ms/op 31.653 ms/op 0.73
altair processEth1Data - 250000 vs - 7PWei normalcase 396.43 us/op 511.84 us/op 0.77
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 14.192 us/op 8.1090 us/op 1.75
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 57.429 us/op 46.959 us/op 1.22
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 13.025 us/op 25.808 us/op 0.50
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 9.6250 us/op 7.9830 us/op 1.21
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 235.84 us/op 336.82 us/op 0.70
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.9345 ms/op 2.5135 ms/op 0.77
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.3629 ms/op 2.9589 ms/op 0.80
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.4233 ms/op 3.5214 ms/op 0.69
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.3987 ms/op 8.0612 ms/op 0.55
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.4184 ms/op 3.8610 ms/op 0.63
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.1978 ms/op 8.0545 ms/op 0.65
Tree 40 250000 create 444.91 ms/op 880.46 ms/op 0.51
Tree 40 250000 get(125000) 143.35 ns/op 220.24 ns/op 0.65
Tree 40 250000 set(125000) 1.6257 us/op 2.6353 us/op 0.62
Tree 40 250000 toArray() 18.369 ms/op 24.465 ms/op 0.75
Tree 40 250000 iterate all - toArray() + loop 18.248 ms/op 23.556 ms/op 0.77
Tree 40 250000 iterate all - get(i) 55.943 ms/op 84.795 ms/op 0.66
Array 250000 create 3.3858 ms/op 4.1028 ms/op 0.83
Array 250000 clone - spread 826.21 us/op 2.0792 ms/op 0.40
Array 250000 get(125000) 0.42300 ns/op 0.60700 ns/op 0.70
Array 250000 set(125000) 0.46600 ns/op 0.60100 ns/op 0.78
Array 250000 iterate all - loop 85.793 us/op 143.32 us/op 0.60
phase0 afterProcessEpoch - 250000 vs - 7PWei 44.068 ms/op 56.611 ms/op 0.78
Array.fill - length 1000000 3.8763 ms/op 4.0101 ms/op 0.97
Array push - length 1000000 19.709 ms/op 17.331 ms/op 1.14
Array.get 0.29459 ns/op 0.40565 ns/op 0.73
Uint8Array.get 0.47482 ns/op 0.67748 ns/op 0.70
phase0 beforeProcessEpoch - 250000 vs - 7PWei 16.950 ms/op 20.838 ms/op 0.81
altair processEpoch - mainnet_e81889 293.27 ms/op 356.05 ms/op 0.82
mainnet_e81889 - altair beforeProcessEpoch 18.485 ms/op 21.224 ms/op 0.87
mainnet_e81889 - altair processJustificationAndFinalization 5.8450 us/op 8.8250 us/op 0.66
mainnet_e81889 - altair processInactivityUpdates 4.2562 ms/op 5.2454 ms/op 0.81
mainnet_e81889 - altair processRewardsAndPenalties 43.755 ms/op 45.888 ms/op 0.95
mainnet_e81889 - altair processRegistryUpdates 731.00 ns/op 881.00 ns/op 0.83
mainnet_e81889 - altair processSlashings 191.00 ns/op 245.00 ns/op 0.78
mainnet_e81889 - altair processEth1DataReset 242.00 ns/op 232.00 ns/op 1.04
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.3018 ms/op 1.6548 ms/op 0.79
mainnet_e81889 - altair processSlashingsReset 1.2150 us/op 1.3900 us/op 0.87
mainnet_e81889 - altair processRandaoMixesReset 1.1800 us/op 1.4510 us/op 0.81
mainnet_e81889 - altair processHistoricalRootsUpdate 201.00 ns/op 230.00 ns/op 0.87
mainnet_e81889 - altair processParticipationFlagUpdates 533.00 ns/op 684.00 ns/op 0.78
mainnet_e81889 - altair processSyncCommitteeUpdates 152.00 ns/op 209.00 ns/op 0.73
mainnet_e81889 - altair afterProcessEpoch 45.049 ms/op 57.360 ms/op 0.79
capella processEpoch - mainnet_e217614 1.0105 s/op 1.4842 s/op 0.68
mainnet_e217614 - capella beforeProcessEpoch 68.967 ms/op 99.961 ms/op 0.69
mainnet_e217614 - capella processJustificationAndFinalization 5.7790 us/op 8.4810 us/op 0.68
mainnet_e217614 - capella processInactivityUpdates 14.866 ms/op 25.880 ms/op 0.57
mainnet_e217614 - capella processRewardsAndPenalties 191.29 ms/op 215.92 ms/op 0.89
mainnet_e217614 - capella processRegistryUpdates 7.6920 us/op 9.3870 us/op 0.82
mainnet_e217614 - capella processSlashings 204.00 ns/op 249.00 ns/op 0.82
mainnet_e217614 - capella processEth1DataReset 203.00 ns/op 237.00 ns/op 0.86
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.2800 ms/op 6.5884 ms/op 0.65
mainnet_e217614 - capella processSlashingsReset 1.0560 us/op 1.2420 us/op 0.85
mainnet_e217614 - capella processRandaoMixesReset 1.4230 us/op 1.7470 us/op 0.81
mainnet_e217614 - capella processHistoricalRootsUpdate 189.00 ns/op 255.00 ns/op 0.74
mainnet_e217614 - capella processParticipationFlagUpdates 596.00 ns/op 683.00 ns/op 0.87
mainnet_e217614 - capella afterProcessEpoch 121.02 ms/op 147.55 ms/op 0.82
phase0 processEpoch - mainnet_e58758 327.50 ms/op 380.41 ms/op 0.86
mainnet_e58758 - phase0 beforeProcessEpoch 87.991 ms/op 86.544 ms/op 1.02
mainnet_e58758 - phase0 processJustificationAndFinalization 6.5650 us/op 7.0660 us/op 0.93
mainnet_e58758 - phase0 processRewardsAndPenalties 39.843 ms/op 47.187 ms/op 0.84
mainnet_e58758 - phase0 processRegistryUpdates 3.8210 us/op 3.7950 us/op 1.01
mainnet_e58758 - phase0 processSlashings 200.00 ns/op 229.00 ns/op 0.87
mainnet_e58758 - phase0 processEth1DataReset 183.00 ns/op 210.00 ns/op 0.87
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.2054 ms/op 1.6176 ms/op 0.75
mainnet_e58758 - phase0 processSlashingsReset 1.0070 us/op 1.4220 us/op 0.71
mainnet_e58758 - phase0 processRandaoMixesReset 1.3600 us/op 1.8210 us/op 0.75
mainnet_e58758 - phase0 processHistoricalRootsUpdate 201.00 ns/op 274.00 ns/op 0.73
mainnet_e58758 - phase0 processParticipationRecordUpdates 906.00 ns/op 1.1170 us/op 0.81
mainnet_e58758 - phase0 afterProcessEpoch 38.364 ms/op 46.830 ms/op 0.82
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.7617 ms/op 1.7752 ms/op 0.99
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.6750 ms/op 3.2218 ms/op 0.83
altair processInactivityUpdates - 250000 normalcase 18.335 ms/op 22.462 ms/op 0.82
altair processInactivityUpdates - 250000 worstcase 20.317 ms/op 22.477 ms/op 0.90
phase0 processRegistryUpdates - 250000 normalcase 7.7400 us/op 11.045 us/op 0.70
phase0 processRegistryUpdates - 250000 badcase_full_deposits 310.65 us/op 402.36 us/op 0.77
phase0 processRegistryUpdates - 250000 worstcase 0.5 119.43 ms/op 155.45 ms/op 0.77
altair processRewardsAndPenalties - 250000 normalcase 29.506 ms/op 36.752 ms/op 0.80
altair processRewardsAndPenalties - 250000 worstcase 29.653 ms/op 42.711 ms/op 0.69
phase0 getAttestationDeltas - 250000 normalcase 10.681 ms/op 12.409 ms/op 0.86
phase0 getAttestationDeltas - 250000 worstcase 8.2916 ms/op 10.947 ms/op 0.76
phase0 processSlashings - 250000 worstcase 94.481 us/op 132.92 us/op 0.71
altair processSyncCommitteeUpdates - 250000 11.669 ms/op 27.540 ms/op 0.42
BeaconState.hashTreeRoot - No change 254.00 ns/op 383.00 ns/op 0.66
BeaconState.hashTreeRoot - 1 full validator 83.876 us/op 161.36 us/op 0.52
BeaconState.hashTreeRoot - 32 full validator 1.0466 ms/op 1.5640 ms/op 0.67
BeaconState.hashTreeRoot - 512 full validator 11.727 ms/op 18.441 ms/op 0.64
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 103.49 us/op 207.50 us/op 0.50
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.8404 ms/op 2.9232 ms/op 0.63
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 27.063 ms/op 40.633 ms/op 0.67
BeaconState.hashTreeRoot - 1 balances 107.34 us/op 166.49 us/op 0.64
BeaconState.hashTreeRoot - 32 balances 925.91 us/op 1.5031 ms/op 0.62
BeaconState.hashTreeRoot - 512 balances 8.6447 ms/op 18.033 ms/op 0.48
BeaconState.hashTreeRoot - 250000 balances 235.54 ms/op 318.41 ms/op 0.74
aggregationBits - 2048 els - zipIndexesInBitList 26.692 us/op 36.610 us/op 0.73
byteArrayEquals 32 57.744 ns/op 116.51 ns/op 0.50
Buffer.compare 32 17.810 ns/op 40.690 ns/op 0.44
byteArrayEquals 1024 1.7030 us/op 3.4481 us/op 0.49
Buffer.compare 1024 25.856 ns/op 66.882 ns/op 0.39
byteArrayEquals 16384 26.705 us/op 57.386 us/op 0.47
Buffer.compare 16384 206.31 ns/op 451.87 ns/op 0.46
byteArrayEquals 123687377 211.91 ms/op 410.92 ms/op 0.52
Buffer.compare 123687377 7.2444 ms/op 10.580 ms/op 0.68
byteArrayEquals 32 - diff last byte 59.492 ns/op 99.001 ns/op 0.60
Buffer.compare 32 - diff last byte 20.281 ns/op 32.904 ns/op 0.62
byteArrayEquals 1024 - diff last byte 1.7736 us/op 3.5549 us/op 0.50
Buffer.compare 1024 - diff last byte 28.647 ns/op 57.294 ns/op 0.50
byteArrayEquals 16384 - diff last byte 28.331 us/op 53.459 us/op 0.53
Buffer.compare 16384 - diff last byte 200.68 ns/op 402.63 ns/op 0.50
byteArrayEquals 123687377 - diff last byte 205.81 ms/op 301.39 ms/op 0.68
Buffer.compare 123687377 - diff last byte 8.4842 ms/op 8.2527 ms/op 1.03
byteArrayEquals 32 - random bytes 5.8940 ns/op 7.6930 ns/op 0.77
Buffer.compare 32 - random bytes 19.691 ns/op 28.666 ns/op 0.69
byteArrayEquals 1024 - random bytes 5.5890 ns/op 7.4870 ns/op 0.75
Buffer.compare 1024 - random bytes 19.573 ns/op 27.847 ns/op 0.70
byteArrayEquals 16384 - random bytes 5.9310 ns/op 7.5660 ns/op 0.78
Buffer.compare 16384 - random bytes 19.243 ns/op 28.529 ns/op 0.67
byteArrayEquals 123687377 - random bytes 7.3000 ns/op 8.4500 ns/op 0.86
Buffer.compare 123687377 - random bytes 18.950 ns/op 30.030 ns/op 0.63
regular array get 100000 times 36.620 us/op 65.333 us/op 0.56
wrappedArray get 100000 times 47.515 us/op 46.298 us/op 1.03
arrayWithProxy get 100000 times 13.285 ms/op 29.929 ms/op 0.44
ssz.Root.equals 48.025 ns/op 89.770 ns/op 0.53
byteArrayEquals 49.616 ns/op 92.322 ns/op 0.54
Buffer.compare 10.933 ns/op 21.939 ns/op 0.50
processSlot - 1 slots 12.701 us/op 16.890 us/op 0.75
processSlot - 32 slots 2.7283 ms/op 4.5132 ms/op 0.60
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 3.4433 ms/op 5.4018 ms/op 0.64
getCommitteeAssignments - req 1 vs - 250000 vc 2.3004 ms/op 4.1563 ms/op 0.55
getCommitteeAssignments - req 100 vs - 250000 vc 4.6821 ms/op 7.2355 ms/op 0.65
getCommitteeAssignments - req 1000 vs - 250000 vc 5.2110 ms/op 7.4224 ms/op 0.70
findModifiedValidators - 10000 modified validators 792.56 ms/op 962.77 ms/op 0.82
findModifiedValidators - 1000 modified validators 733.33 ms/op 702.02 ms/op 1.04
findModifiedValidators - 100 modified validators 264.92 ms/op 249.29 ms/op 1.06
findModifiedValidators - 10 modified validators 157.98 ms/op 214.78 ms/op 0.74
findModifiedValidators - 1 modified validators 151.25 ms/op 221.17 ms/op 0.68
findModifiedValidators - no difference 224.97 ms/op 500.61 ms/op 0.45
compare ViewDUs 6.6652 s/op 9.6838 s/op 0.69
compare each validator Uint8Array 2.0397 s/op 2.4171 s/op 0.84
compare ViewDU to Uint8Array 1.6412 s/op 1.9251 s/op 0.85
migrate state 1000000 validators, 24 modified, 0 new 1.0516 s/op 1.5800 s/op 0.67
migrate state 1000000 validators, 1700 modified, 1000 new 1.4758 s/op 1.9739 s/op 0.75
migrate state 1000000 validators, 3400 modified, 2000 new 1.7748 s/op 1.7478 s/op 1.02
migrate state 1500000 validators, 24 modified, 0 new 1.1316 s/op 1.1720 s/op 0.97
migrate state 1500000 validators, 1700 modified, 1000 new 1.5223 s/op 1.5761 s/op 0.97
migrate state 1500000 validators, 3400 modified, 2000 new 2.0031 s/op 1.7254 s/op 1.16
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.2400 ns/op 5.3900 ns/op 0.97
state getBlockRootAtSlot - 250000 vs - 7PWei 901.19 ns/op 664.08 ns/op 1.36
naive computeProposerIndex 100000 validators 84.998 ms/op 74.501 ms/op 1.14
computeProposerIndex 100000 validators 2.1095 ms/op 2.0463 ms/op 1.03
naiveGetNextSyncCommitteeIndices 1000 validators 13.161 s/op 9.5216 s/op 1.38
getNextSyncCommitteeIndices 1000 validators 189.43 ms/op 150.57 ms/op 1.26
naiveGetNextSyncCommitteeIndices 10000 validators 13.889 s/op 9.6442 s/op 1.44
getNextSyncCommitteeIndices 10000 validators 207.35 ms/op 128.38 ms/op 1.62
naiveGetNextSyncCommitteeIndices 100000 validators 13.281 s/op 8.5839 s/op 1.55
getNextSyncCommitteeIndices 100000 validators 190.96 ms/op 141.29 ms/op 1.35
naive computeShuffledIndex 100000 validators 32.689 s/op 27.533 s/op 1.19
cached computeShuffledIndex 100000 validators 565.63 ms/op 580.19 ms/op 0.97
naive computeShuffledIndex 2000000 validators 551.72 s/op 631.99 s/op 0.87
cached computeShuffledIndex 2000000 validators 54.683 s/op 31.419 s/op 1.74
computeProposers - vc 250000 665.43 us/op 630.45 us/op 1.06
computeEpochShuffling - vc 250000 44.136 ms/op 43.202 ms/op 1.02
getNextSyncCommittee - vc 250000 11.578 ms/op 10.856 ms/op 1.07
computeSigningRoot for AttestationData 26.392 us/op 22.880 us/op 1.15
hash AttestationData serialized data then Buffer.toString(base64) 1.7203 us/op 1.6874 us/op 1.02
toHexString serialized data 1.3026 us/op 1.1779 us/op 1.11
Buffer.toString(base64) 165.45 ns/op 172.16 ns/op 0.96
nodejs block root to RootHex using toHex 146.69 ns/op 157.62 ns/op 0.93
nodejs block root to RootHex using toRootHex 90.189 ns/op 90.144 ns/op 1.00
nodejs fromHex(blob) 110.19 us/op 116.11 us/op 0.95
nodejs fromHexInto(blob) 841.10 us/op 844.21 us/op 1.00
nodejs block root to RootHex using the deprecated toHexString 216.39 ns/op 216.52 ns/op 1.00
browser block root to RootHex using toHex 177.98 ns/op 180.06 ns/op 0.99
browser block root to RootHex using toRootHex 168.87 ns/op 170.50 ns/op 0.99
browser fromHex(blob) 834.81 us/op 810.18 us/op 1.03
browser fromHexInto(blob) 866.74 us/op 898.26 us/op 0.96
browser block root to RootHex using the deprecated toHexString 882.28 ns/op 862.51 ns/op 1.02

by benchmarkbot/action

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.

3 participants