这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@philknows
Copy link
Member

Motivation

As per release.md, we must re-merge stable back to unstable.

@philknows philknows requested a review from a team as a code owner September 10, 2025 15:34
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.

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 synchronization of the unstable development branch with the recently released v1.34.0 stable version. The primary goal is to integrate all changes, features, and fixes from the stable release into the ongoing development stream, ensuring that future work is based on the most current stable codebase. This is a standard operational step to maintain a cohesive and up-to-date development environment.

Highlights

  • Version Update: The pull request updates the project's overall version from 1.33.0 to 1.34.0 across the monorepo, as reflected in lerna.json.
  • Dependency Synchronization: All internal @lodestar/* package dependencies across various package.json files have been updated to reference the new 1.34.0 version, ensuring consistency and compatibility.
  • Routine Release Process: This change is part of the standard release procedure, specifically re-merging the stable v1.34.0 branch back into the unstable development branch to keep it up-to-date with the latest stable release.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

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 issue 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.34.0 release back into the unstable branch. The changes consist of version bumps in lerna.json and all package.json files from 1.33.0 to 1.34.0, including updating internal @lodestar dependencies. The changes are consistent and appear to be correctly generated as part of the release process. I have no further comments.

@philknows philknows merged commit f80d2d5 into unstable Sep 10, 2025
36 of 39 checks passed
@github-actions
Copy link
Contributor

Performance Report

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: 43c2610 Previous: 1ec12b4 Ratio
pass gossip attestations to forkchoice per slot 3.1871 ms/op 10.558 ms/op 0.30
forkChoice updateHead vc 600000 bc 64 eq 0 3.6036 ms/op 13.300 ms/op 0.27
Buffer.compare 123687377 - random bytes 19.470 ns/op 59.290 ns/op 0.33
processSlot - 1 slots 11.177 us/op 35.701 us/op 0.31
naiveGetNextSyncCommitteeIndices 10000 validators 9.7463 s/op 30.301 s/op 0.32
getNextSyncCommitteeIndices 10000 validators 130.89 ms/op 549.81 ms/op 0.24
naiveGetNextSyncCommitteeIndices 100000 validators 9.8018 s/op 29.969 s/op 0.33
getNextSyncCommitteeIndices 100000 validators 130.46 ms/op 528.62 ms/op 0.25
cached computeShuffledIndex 100000 validators 632.34 ms/op 2.2012 s/op 0.29
computeProposers - vc 250000 654.77 us/op 3.0237 ms/op 0.22
computeEpochShuffling - vc 250000 43.737 ms/op 188.05 ms/op 0.23
getNextSyncCommittee - vc 250000 11.928 ms/op 48.187 ms/op 0.25
computeSigningRoot for AttestationData 22.020 us/op 96.990 us/op 0.23
hash AttestationData serialized data then Buffer.toString(base64) 1.6709 us/op 5.6607 us/op 0.30
toHexString serialized data 1.1842 us/op 6.1453 us/op 0.19
Buffer.toString(base64) 168.58 ns/op 596.85 ns/op 0.28
nodejs block root to RootHex using toHex 168.90 ns/op 550.96 ns/op 0.31
nodejs block root to RootHex using toRootHex 100.58 ns/op 381.36 ns/op 0.26
nodejs fromhex(blob) 127.59 ms/op 398.95 ms/op 0.32
browser block root to RootHex using the deprecated toHexString 228.38 ns/op 2.1213 us/op 0.11
browser block root to RootHex using toHex 183.60 ns/op 1.6882 us/op 0.11
browser block root to RootHex using toRootHex 169.68 ns/op 515.20 ns/op 0.33
browser fromHexInto(blob) 948.18 us/op 3.2107 ms/op 0.30
browser fromHex(blob) 899.88 ms/op 2.7710 s/op 0.32
Full benchmark results
Benchmark suite Current: 43c2610 Previous: 1ec12b4 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.5461 ms/op 2.0840 ms/op 0.74
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 83.127 us/op 117.18 us/op 0.71
BLS verify - blst 1.0708 ms/op 1.9313 ms/op 0.55
BLS verifyMultipleSignatures 3 - blst 1.6896 ms/op 2.4956 ms/op 0.68
BLS verifyMultipleSignatures 8 - blst 7.1282 ms/op 2.9539 ms/op 2.41
BLS verifyMultipleSignatures 32 - blst 7.4206 ms/op 9.0772 ms/op 0.82
BLS verifyMultipleSignatures 64 - blst 14.124 ms/op 17.969 ms/op 0.79
BLS verifyMultipleSignatures 128 - blst 21.565 ms/op 22.839 ms/op 0.94
BLS deserializing 10000 signatures 819.52 ms/op 1.4507 s/op 0.56
BLS deserializing 100000 signatures 8.0678 s/op 9.8630 s/op 0.82
BLS verifyMultipleSignatures - same message - 3 - blst 1.1385 ms/op 1.3266 ms/op 0.86
BLS verifyMultipleSignatures - same message - 8 - blst 1.3527 ms/op 1.2137 ms/op 1.11
BLS verifyMultipleSignatures - same message - 32 - blst 1.9333 ms/op 2.2515 ms/op 0.86
BLS verifyMultipleSignatures - same message - 64 - blst 2.9953 ms/op 3.4739 ms/op 0.86
BLS verifyMultipleSignatures - same message - 128 - blst 5.2071 ms/op 6.7222 ms/op 0.77
BLS aggregatePubkeys 32 - blst 22.786 us/op 55.723 us/op 0.41
BLS aggregatePubkeys 128 - blst 80.405 us/op 182.34 us/op 0.44
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 68.914 ms/op 139.43 ms/op 0.49
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 66.466 ms/op 79.105 ms/op 0.84
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 49.279 ms/op 86.449 ms/op 0.57
getSlashingsAndExits - default max 143.69 us/op 116.31 us/op 1.24
getSlashingsAndExits - 2k 409.06 us/op 471.97 us/op 0.87
proposeBlockBody type=full, size=empty 6.8854 ms/op 9.7614 ms/op 0.71
isKnown best case - 1 super set check 246.00 ns/op 390.00 ns/op 0.63
isKnown normal case - 2 super set checks 224.00 ns/op 332.00 ns/op 0.67
isKnown worse case - 16 super set checks 222.00 ns/op 424.00 ns/op 0.52
InMemoryCheckpointStateCache - add get delete 2.9890 us/op 3.0160 us/op 0.99
validate api signedAggregateAndProof - struct 1.5245 ms/op 1.7532 ms/op 0.87
validate gossip signedAggregateAndProof - struct 1.5435 ms/op 2.8649 ms/op 0.54
batch validate gossip attestation - vc 640000 - chunk 32 133.85 us/op 248.22 us/op 0.54
batch validate gossip attestation - vc 640000 - chunk 64 115.76 us/op 186.41 us/op 0.62
batch validate gossip attestation - vc 640000 - chunk 128 107.65 us/op 196.72 us/op 0.55
batch validate gossip attestation - vc 640000 - chunk 256 111.56 us/op 139.06 us/op 0.80
pickEth1Vote - no votes 1.1386 ms/op 1.5431 ms/op 0.74
pickEth1Vote - max votes 8.7312 ms/op 7.9086 ms/op 1.10
pickEth1Vote - Eth1Data hashTreeRoot value x2048 15.249 ms/op 16.232 ms/op 0.94
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 23.433 ms/op 24.246 ms/op 0.97
pickEth1Vote - Eth1Data fastSerialize value x2048 494.22 us/op 736.40 us/op 0.67
pickEth1Vote - Eth1Data fastSerialize tree x2048 3.2836 ms/op 3.5027 ms/op 0.94
bytes32 toHexString 416.00 ns/op 609.00 ns/op 0.68
bytes32 Buffer.toString(hex) 289.00 ns/op 381.00 ns/op 0.76
bytes32 Buffer.toString(hex) from Uint8Array 391.00 ns/op 547.00 ns/op 0.71
bytes32 Buffer.toString(hex) + 0x 310.00 ns/op 353.00 ns/op 0.88
Object access 1 prop 0.14500 ns/op 0.17300 ns/op 0.84
Map access 1 prop 0.13500 ns/op 0.17700 ns/op 0.76
Object get x1000 6.4850 ns/op 8.9490 ns/op 0.72
Map get x1000 7.2290 ns/op 9.0720 ns/op 0.80
Object set x1000 43.260 ns/op 40.473 ns/op 1.07
Map set x1000 23.227 ns/op 27.876 ns/op 0.83
Return object 10000 times 0.33390 ns/op 0.45090 ns/op 0.74
Throw Error 10000 times 5.2644 us/op 6.6465 us/op 0.79
toHex 160.07 ns/op 198.21 ns/op 0.81
Buffer.from 145.92 ns/op 159.67 ns/op 0.91
shared Buffer 99.837 ns/op 107.84 ns/op 0.93
fastMsgIdFn sha256 / 200 bytes 2.4860 us/op 3.2340 us/op 0.77
fastMsgIdFn h32 xxhash / 200 bytes 259.00 ns/op 296.00 ns/op 0.88
fastMsgIdFn h64 xxhash / 200 bytes 375.00 ns/op 379.00 ns/op 0.99
fastMsgIdFn sha256 / 1000 bytes 8.1840 us/op 10.119 us/op 0.81
fastMsgIdFn h32 xxhash / 1000 bytes 424.00 ns/op 454.00 ns/op 0.93
fastMsgIdFn h64 xxhash / 1000 bytes 427.00 ns/op 507.00 ns/op 0.84
fastMsgIdFn sha256 / 10000 bytes 73.307 us/op 86.528 us/op 0.85
fastMsgIdFn h32 xxhash / 10000 bytes 2.1910 us/op 2.6630 us/op 0.82
fastMsgIdFn h64 xxhash / 10000 bytes 1.4280 us/op 1.5360 us/op 0.93
send data - 1000 256B messages 21.096 ms/op 21.762 ms/op 0.97
send data - 1000 512B messages 26.288 ms/op 27.486 ms/op 0.96
send data - 1000 1024B messages 34.557 ms/op 34.695 ms/op 1.00
send data - 1000 1200B messages 34.110 ms/op 37.380 ms/op 0.91
send data - 1000 2048B messages 30.392 ms/op 33.282 ms/op 0.91
send data - 1000 4096B messages 37.199 ms/op 40.564 ms/op 0.92
send data - 1000 16384B messages 57.962 ms/op 74.246 ms/op 0.78
send data - 1000 65536B messages 144.22 ms/op 174.20 ms/op 0.83
enrSubnets - fastDeserialize 64 bits 1.3350 us/op 2.0420 us/op 0.65
enrSubnets - ssz BitVector 64 bits 418.00 ns/op 621.00 ns/op 0.67
enrSubnets - fastDeserialize 4 bits 161.00 ns/op 294.00 ns/op 0.55
enrSubnets - ssz BitVector 4 bits 529.00 ns/op 717.00 ns/op 0.74
prioritizePeers score -10:0 att 32-0.1 sync 2-0 302.05 us/op 379.46 us/op 0.80
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 544.65 us/op 718.68 us/op 0.76
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 515.57 us/op 841.38 us/op 0.61
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 914.46 us/op 1.3480 ms/op 0.68
prioritizePeers score 0:0 att 64-1 sync 4-1 1.1777 ms/op 1.3534 ms/op 0.87
array of 16000 items push then shift 2.0997 us/op 3.9531 us/op 0.53
LinkedList of 16000 items push then shift 10.601 ns/op 14.568 ns/op 0.73
array of 16000 items push then pop 94.033 ns/op 157.16 ns/op 0.60
LinkedList of 16000 items push then pop 8.9350 ns/op 17.297 ns/op 0.52
array of 24000 items push then shift 2.8473 us/op 3.5702 us/op 0.80
LinkedList of 24000 items push then shift 10.040 ns/op 14.357 ns/op 0.70
array of 24000 items push then pop 141.34 ns/op 188.26 ns/op 0.75
LinkedList of 24000 items push then pop 9.5270 ns/op 8.3220 ns/op 1.14
intersect bitArray bitLen 8 8.3280 ns/op 8.0500 ns/op 1.03
intersect array and set length 8 44.501 ns/op 48.341 ns/op 0.92
intersect bitArray bitLen 128 33.138 ns/op 37.988 ns/op 0.87
intersect array and set length 128 732.62 ns/op 802.90 ns/op 0.91
bitArray.getTrueBitIndexes() bitLen 128 1.3040 us/op 1.6430 us/op 0.79
bitArray.getTrueBitIndexes() bitLen 248 2.1980 us/op 2.9220 us/op 0.75
bitArray.getTrueBitIndexes() bitLen 512 5.6330 us/op 5.3440 us/op 1.05
Buffer.concat 32 items 967.00 ns/op 1.4720 us/op 0.66
Uint8Array.set 32 items 1.0900 us/op 1.2740 us/op 0.86
Buffer.copy 2.4630 us/op 3.4360 us/op 0.72
Uint8Array.set - with subarray 1.8710 us/op 3.2860 us/op 0.57
Uint8Array.set - without subarray 1.6240 us/op 3.0130 us/op 0.54
getUint32 - dataview 243.00 ns/op 420.00 ns/op 0.58
getUint32 - manual 174.00 ns/op 245.00 ns/op 0.71
Set add up to 64 items then delete first 3.5920 us/op 4.1761 us/op 0.86
OrderedSet add up to 64 items then delete first 5.6642 us/op 7.4711 us/op 0.76
Set add up to 64 items then delete last 4.0430 us/op 3.5592 us/op 1.14
OrderedSet add up to 64 items then delete last 5.9242 us/op 10.274 us/op 0.58
Set add up to 64 items then delete middle 4.1635 us/op 6.9060 us/op 0.60
OrderedSet add up to 64 items then delete middle 8.6596 us/op 11.379 us/op 0.76
Set add up to 128 items then delete first 8.1188 us/op 9.3534 us/op 0.87
OrderedSet add up to 128 items then delete first 13.904 us/op 14.462 us/op 0.96
Set add up to 128 items then delete last 7.8972 us/op 9.3887 us/op 0.84
OrderedSet add up to 128 items then delete last 13.916 us/op 15.770 us/op 0.88
Set add up to 128 items then delete middle 7.8563 us/op 9.4966 us/op 0.83
OrderedSet add up to 128 items then delete middle 19.922 us/op 23.600 us/op 0.84
Set add up to 256 items then delete first 15.664 us/op 17.361 us/op 0.90
OrderedSet add up to 256 items then delete first 24.686 us/op 28.526 us/op 0.87
Set add up to 256 items then delete last 15.706 us/op 21.805 us/op 0.72
OrderedSet add up to 256 items then delete last 22.603 us/op 29.910 us/op 0.76
Set add up to 256 items then delete middle 17.910 us/op 20.893 us/op 0.86
OrderedSet add up to 256 items then delete middle 58.852 us/op 102.05 us/op 0.58
transfer serialized Status (84 B) 2.5700 us/op 3.8930 us/op 0.66
copy serialized Status (84 B) 1.3100 us/op 2.3280 us/op 0.56
transfer serialized SignedVoluntaryExit (112 B) 2.6120 us/op 4.5020 us/op 0.58
copy serialized SignedVoluntaryExit (112 B) 1.2780 us/op 2.8130 us/op 0.45
transfer serialized ProposerSlashing (416 B) 2.7710 us/op 7.3690 us/op 0.38
copy serialized ProposerSlashing (416 B) 1.5740 us/op 4.4020 us/op 0.36
transfer serialized Attestation (485 B) 2.8570 us/op 7.1250 us/op 0.40
copy serialized Attestation (485 B) 1.5830 us/op 3.1400 us/op 0.50
transfer serialized AttesterSlashing (33232 B) 2.8280 us/op 4.3130 us/op 0.66
copy serialized AttesterSlashing (33232 B) 4.7570 us/op 5.9270 us/op 0.80
transfer serialized Small SignedBeaconBlock (128000 B) 3.3420 us/op 4.2340 us/op 0.79
copy serialized Small SignedBeaconBlock (128000 B) 16.077 us/op 15.713 us/op 1.02
transfer serialized Avg SignedBeaconBlock (200000 B) 3.9340 us/op 4.9390 us/op 0.80
copy serialized Avg SignedBeaconBlock (200000 B) 18.490 us/op 23.339 us/op 0.79
transfer serialized BlobsSidecar (524380 B) 3.9340 us/op 5.4390 us/op 0.72
copy serialized BlobsSidecar (524380 B) 74.269 us/op 85.260 us/op 0.87
transfer serialized Big SignedBeaconBlock (1000000 B) 4.5480 us/op 11.810 us/op 0.39
copy serialized Big SignedBeaconBlock (1000000 B) 147.83 us/op 223.03 us/op 0.66
pass gossip attestations to forkchoice per slot 3.1871 ms/op 10.558 ms/op 0.30
forkChoice updateHead vc 100000 bc 64 eq 0 520.67 us/op 1.5493 ms/op 0.34
forkChoice updateHead vc 600000 bc 64 eq 0 3.6036 ms/op 13.300 ms/op 0.27
forkChoice updateHead vc 1000000 bc 64 eq 0 8.0514 ms/op 15.514 ms/op 0.52
forkChoice updateHead vc 600000 bc 320 eq 0 5.5551 ms/op 8.2033 ms/op 0.68
forkChoice updateHead vc 600000 bc 1200 eq 0 5.2267 ms/op 10.842 ms/op 0.48
forkChoice updateHead vc 600000 bc 7200 eq 0 5.9537 ms/op 14.507 ms/op 0.41
forkChoice updateHead vc 600000 bc 64 eq 1000 19.064 ms/op 40.192 ms/op 0.47
forkChoice updateHead vc 600000 bc 64 eq 10000 24.156 ms/op 32.113 ms/op 0.75
forkChoice updateHead vc 600000 bc 64 eq 300000 78.829 ms/op 55.674 ms/op 1.42
computeDeltas 500000 validators 300 proto nodes 7.0139 ms/op 13.974 ms/op 0.50
computeDeltas 500000 validators 1200 proto nodes 6.1959 ms/op 8.2652 ms/op 0.75
computeDeltas 500000 validators 7200 proto nodes 6.0337 ms/op 8.0228 ms/op 0.75
computeDeltas 750000 validators 300 proto nodes 9.5783 ms/op 10.032 ms/op 0.95
computeDeltas 750000 validators 1200 proto nodes 8.8358 ms/op 9.9619 ms/op 0.89
computeDeltas 750000 validators 7200 proto nodes 10.083 ms/op 9.3073 ms/op 1.08
computeDeltas 1400000 validators 300 proto nodes 21.186 ms/op 20.821 ms/op 1.02
computeDeltas 1400000 validators 1200 proto nodes 21.677 ms/op 23.113 ms/op 0.94
computeDeltas 1400000 validators 7200 proto nodes 22.442 ms/op 24.675 ms/op 0.91
computeDeltas 2100000 validators 300 proto nodes 37.939 ms/op 21.019 ms/op 1.81
computeDeltas 2100000 validators 1200 proto nodes 33.037 ms/op 20.374 ms/op 1.62
computeDeltas 2100000 validators 7200 proto nodes 23.135 ms/op 33.521 ms/op 0.69
altair processAttestation - 250000 vs - 7PWei normalcase 4.1317 ms/op 3.0719 ms/op 1.35
altair processAttestation - 250000 vs - 7PWei worstcase 5.3592 ms/op 5.0377 ms/op 1.06
altair processAttestation - setStatus - 1/6 committees join 198.46 us/op 240.48 us/op 0.83
altair processAttestation - setStatus - 1/3 committees join 342.00 us/op 291.19 us/op 1.17
altair processAttestation - setStatus - 1/2 committees join 467.42 us/op 500.92 us/op 0.93
altair processAttestation - setStatus - 2/3 committees join 689.09 us/op 1.2272 ms/op 0.56
altair processAttestation - setStatus - 4/5 committees join 815.46 us/op 938.42 us/op 0.87
altair processAttestation - setStatus - 100% committees join 952.68 us/op 989.57 us/op 0.96
altair processBlock - 250000 vs - 7PWei normalcase 7.7236 ms/op 6.8545 ms/op 1.13
altair processBlock - 250000 vs - 7PWei normalcase hashState 41.361 ms/op 34.954 ms/op 1.18
altair processBlock - 250000 vs - 7PWei worstcase 57.110 ms/op 45.293 ms/op 1.26
altair processBlock - 250000 vs - 7PWei worstcase hashState 138.65 ms/op 135.95 ms/op 1.02
phase0 processBlock - 250000 vs - 7PWei normalcase 3.7382 ms/op 4.5019 ms/op 0.83
phase0 processBlock - 250000 vs - 7PWei worstcase 40.018 ms/op 28.081 ms/op 1.43
altair processEth1Data - 250000 vs - 7PWei normalcase 596.07 us/op 510.69 us/op 1.17
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 9.5030 us/op 7.5900 us/op 1.25
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 73.416 us/op 36.015 us/op 2.04
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 26.716 us/op 12.613 us/op 2.12
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 16.652 us/op 7.7460 us/op 2.15
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 314.79 us/op 177.31 us/op 1.78
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 4.1999 ms/op 2.3550 ms/op 1.78
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 8.2612 ms/op 3.0071 ms/op 2.75
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 6.2815 ms/op 3.2560 ms/op 1.93
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 9.5095 ms/op 5.6657 ms/op 1.68
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 5.6854 ms/op 3.1224 ms/op 1.82
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 10.073 ms/op 5.9392 ms/op 1.70
Tree 40 250000 create 1.1423 s/op 479.58 ms/op 2.38
Tree 40 250000 get(125000) 296.59 ns/op 162.88 ns/op 1.82
Tree 40 250000 set(125000) 5.5611 us/op 1.7590 us/op 3.16
Tree 40 250000 toArray() 52.660 ms/op 20.020 ms/op 2.63
Tree 40 250000 iterate all - toArray() + loop 41.460 ms/op 24.876 ms/op 1.67
Tree 40 250000 iterate all - get(i) 83.794 ms/op 94.110 ms/op 0.89
Array 250000 create 4.9457 ms/op 4.7540 ms/op 1.04
Array 250000 clone - spread 7.6881 ms/op 2.9045 ms/op 2.65
Array 250000 get(125000) 0.92000 ns/op 0.73600 ns/op 1.25
Array 250000 set(125000) 0.85700 ns/op 0.96500 ns/op 0.89
Array 250000 iterate all - loop 153.11 us/op 220.16 us/op 0.70
phase0 afterProcessEpoch - 250000 vs - 7PWei 59.306 ms/op 60.121 ms/op 0.99
Array.fill - length 1000000 8.4330 ms/op 4.4959 ms/op 1.88
Array push - length 1000000 38.416 ms/op 21.636 ms/op 1.78
Array.get 0.34292 ns/op 0.36164 ns/op 0.95
Uint8Array.get 0.69116 ns/op 0.64462 ns/op 1.07
phase0 beforeProcessEpoch - 250000 vs - 7PWei 37.180 ms/op 25.102 ms/op 1.48
altair processEpoch - mainnet_e81889 460.65 ms/op 472.36 ms/op 0.98
mainnet_e81889 - altair beforeProcessEpoch 33.575 ms/op 34.054 ms/op 0.99
mainnet_e81889 - altair processJustificationAndFinalization 10.424 us/op 9.6570 us/op 1.08
mainnet_e81889 - altair processInactivityUpdates 11.179 ms/op 6.3171 ms/op 1.77
mainnet_e81889 - altair processRewardsAndPenalties 74.484 ms/op 41.128 ms/op 1.81
mainnet_e81889 - altair processRegistryUpdates 1.8450 us/op 1.1910 us/op 1.55
mainnet_e81889 - altair processSlashings 334.00 ns/op 290.00 ns/op 1.15
mainnet_e81889 - altair processEth1DataReset 345.00 ns/op 293.00 ns/op 1.18
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.5989 ms/op 2.4382 ms/op 0.66
mainnet_e81889 - altair processSlashingsReset 1.7330 us/op 1.5880 us/op 1.09
mainnet_e81889 - altair processRandaoMixesReset 2.8910 us/op 1.4570 us/op 1.98
mainnet_e81889 - altair processHistoricalRootsUpdate 327.00 ns/op 288.00 ns/op 1.14
mainnet_e81889 - altair processParticipationFlagUpdates 1.1100 us/op 823.00 ns/op 1.35
mainnet_e81889 - altair processSyncCommitteeUpdates 244.00 ns/op 174.00 ns/op 1.40
mainnet_e81889 - altair afterProcessEpoch 56.816 ms/op 49.921 ms/op 1.14
capella processEpoch - mainnet_e217614 1.3891 s/op 1.4895 s/op 0.93
mainnet_e217614 - capella beforeProcessEpoch 91.096 ms/op 116.86 ms/op 0.78
mainnet_e217614 - capella processJustificationAndFinalization 8.7550 us/op 9.3180 us/op 0.94
mainnet_e217614 - capella processInactivityUpdates 19.371 ms/op 27.274 ms/op 0.71
mainnet_e217614 - capella processRewardsAndPenalties 293.97 ms/op 221.71 ms/op 1.33
mainnet_e217614 - capella processRegistryUpdates 12.700 us/op 8.1360 us/op 1.56
mainnet_e217614 - capella processSlashings 357.00 ns/op 225.00 ns/op 1.59
mainnet_e217614 - capella processEth1DataReset 258.00 ns/op 220.00 ns/op 1.17
mainnet_e217614 - capella processEffectiveBalanceUpdates 5.0796 ms/op 5.3824 ms/op 0.94
mainnet_e217614 - capella processSlashingsReset 1.8800 us/op 1.1060 us/op 1.70
mainnet_e217614 - capella processRandaoMixesReset 1.6130 us/op 1.5210 us/op 1.06
mainnet_e217614 - capella processHistoricalRootsUpdate 247.00 ns/op 269.00 ns/op 0.92
mainnet_e217614 - capella processParticipationFlagUpdates 836.00 ns/op 665.00 ns/op 1.26
mainnet_e217614 - capella afterProcessEpoch 138.03 ms/op 146.42 ms/op 0.94
phase0 processEpoch - mainnet_e58758 458.80 ms/op 342.58 ms/op 1.34
mainnet_e58758 - phase0 beforeProcessEpoch 106.75 ms/op 86.365 ms/op 1.24
mainnet_e58758 - phase0 processJustificationAndFinalization 8.6050 us/op 7.2350 us/op 1.19
mainnet_e58758 - phase0 processRewardsAndPenalties 49.114 ms/op 40.822 ms/op 1.20
mainnet_e58758 - phase0 processRegistryUpdates 4.4200 us/op 3.6580 us/op 1.21
mainnet_e58758 - phase0 processSlashings 323.00 ns/op 215.00 ns/op 1.50
mainnet_e58758 - phase0 processEth1DataReset 357.00 ns/op 213.00 ns/op 1.68
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 6.5683 ms/op 1.4742 ms/op 4.46
mainnet_e58758 - phase0 processSlashingsReset 1.9870 us/op 1.1020 us/op 1.80
mainnet_e58758 - phase0 processRandaoMixesReset 1.9560 us/op 1.4200 us/op 1.38
mainnet_e58758 - phase0 processHistoricalRootsUpdate 391.00 ns/op 218.00 ns/op 1.79
mainnet_e58758 - phase0 processParticipationRecordUpdates 1.7530 us/op 1.0970 us/op 1.60
mainnet_e58758 - phase0 afterProcessEpoch 44.729 ms/op 43.469 ms/op 1.03
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.8559 ms/op 1.5553 ms/op 1.19
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 5.4364 ms/op 2.5777 ms/op 2.11
altair processInactivityUpdates - 250000 normalcase 27.612 ms/op 21.478 ms/op 1.29
altair processInactivityUpdates - 250000 worstcase 29.585 ms/op 19.953 ms/op 1.48
phase0 processRegistryUpdates - 250000 normalcase 12.999 us/op 7.4980 us/op 1.73
phase0 processRegistryUpdates - 250000 badcase_full_deposits 464.25 us/op 243.99 us/op 1.90
phase0 processRegistryUpdates - 250000 worstcase 0.5 180.48 ms/op 114.77 ms/op 1.57
altair processRewardsAndPenalties - 250000 normalcase 41.190 ms/op 32.774 ms/op 1.26
altair processRewardsAndPenalties - 250000 worstcase 35.755 ms/op 31.225 ms/op 1.15
phase0 getAttestationDeltas - 250000 normalcase 14.113 ms/op 10.368 ms/op 1.36
phase0 getAttestationDeltas - 250000 worstcase 7.7486 ms/op 8.5977 ms/op 0.90
phase0 processSlashings - 250000 worstcase 100.61 us/op 90.955 us/op 1.11
altair processSyncCommitteeUpdates - 250000 15.812 ms/op 16.163 ms/op 0.98
BeaconState.hashTreeRoot - No change 276.00 ns/op 299.00 ns/op 0.92
BeaconState.hashTreeRoot - 1 full validator 110.25 us/op 101.69 us/op 1.08
BeaconState.hashTreeRoot - 32 full validator 1.3426 ms/op 1.1138 ms/op 1.21
BeaconState.hashTreeRoot - 512 full validator 16.585 ms/op 14.059 ms/op 1.18
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 160.79 us/op 139.62 us/op 1.15
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 3.1361 ms/op 2.8900 ms/op 1.09
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 44.363 ms/op 37.151 ms/op 1.19
BeaconState.hashTreeRoot - 1 balances 134.47 us/op 129.42 us/op 1.04
BeaconState.hashTreeRoot - 32 balances 1.6622 ms/op 1.5114 ms/op 1.10
BeaconState.hashTreeRoot - 512 balances 15.674 ms/op 12.650 ms/op 1.24
BeaconState.hashTreeRoot - 250000 balances 283.06 ms/op 233.41 ms/op 1.21
aggregationBits - 2048 els - zipIndexesInBitList 31.231 us/op 35.937 us/op 0.87
byteArrayEquals 32 80.212 ns/op 91.574 ns/op 0.88
Buffer.compare 32 28.662 ns/op 29.053 ns/op 0.99
byteArrayEquals 1024 2.4163 us/op 2.7082 us/op 0.89
Buffer.compare 1024 45.567 ns/op 51.465 ns/op 0.89
byteArrayEquals 16384 33.100 us/op 42.664 us/op 0.78
Buffer.compare 16384 260.35 ns/op 305.47 ns/op 0.85
byteArrayEquals 123687377 248.96 ms/op 392.46 ms/op 0.63
Buffer.compare 123687377 11.423 ms/op 8.4492 ms/op 1.35
byteArrayEquals 32 - diff last byte 61.895 ns/op 125.69 ns/op 0.49
Buffer.compare 32 - diff last byte 19.897 ns/op 28.894 ns/op 0.69
byteArrayEquals 1024 - diff last byte 1.8230 us/op 3.4494 us/op 0.53
Buffer.compare 1024 - diff last byte 29.691 ns/op 54.919 ns/op 0.54
byteArrayEquals 16384 - diff last byte 29.103 us/op 60.030 us/op 0.48
Buffer.compare 16384 - diff last byte 226.42 ns/op 357.96 ns/op 0.63
byteArrayEquals 123687377 - diff last byte 211.10 ms/op 270.95 ms/op 0.78
Buffer.compare 123687377 - diff last byte 7.1986 ms/op 8.7928 ms/op 0.82
byteArrayEquals 32 - random bytes 5.7260 ns/op 10.625 ns/op 0.54
Buffer.compare 32 - random bytes 19.145 ns/op 22.657 ns/op 0.84
byteArrayEquals 1024 - random bytes 5.6530 ns/op 11.471 ns/op 0.49
Buffer.compare 1024 - random bytes 19.200 ns/op 29.033 ns/op 0.66
byteArrayEquals 16384 - random bytes 5.6180 ns/op 8.8170 ns/op 0.64
Buffer.compare 16384 - random bytes 18.559 ns/op 24.593 ns/op 0.75
byteArrayEquals 123687377 - random bytes 6.8900 ns/op 8.6000 ns/op 0.80
Buffer.compare 123687377 - random bytes 19.470 ns/op 59.290 ns/op 0.33
regular array get 100000 times 42.318 us/op 94.402 us/op 0.45
wrappedArray get 100000 times 35.534 us/op 86.716 us/op 0.41
arrayWithProxy get 100000 times 13.337 ms/op 29.148 ms/op 0.46
ssz.Root.equals 49.075 ns/op 139.24 ns/op 0.35
byteArrayEquals 48.249 ns/op 166.04 ns/op 0.29
Buffer.compare 11.011 ns/op 39.979 ns/op 0.28
processSlot - 1 slots 11.177 us/op 35.701 us/op 0.31
processSlot - 32 slots 2.0260 ms/op 2.3273 ms/op 0.87
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 3.0757 ms/op 5.1598 ms/op 0.60
getCommitteeAssignments - req 1 vs - 250000 vc 2.3484 ms/op 3.7478 ms/op 0.63
getCommitteeAssignments - req 100 vs - 250000 vc 4.3509 ms/op 7.2880 ms/op 0.60
getCommitteeAssignments - req 1000 vs - 250000 vc 4.7452 ms/op 5.6277 ms/op 0.84
findModifiedValidators - 10000 modified validators 775.34 ms/op 1.3886 s/op 0.56
findModifiedValidators - 1000 modified validators 732.36 ms/op 775.06 ms/op 0.94
findModifiedValidators - 100 modified validators 178.30 ms/op 412.15 ms/op 0.43
findModifiedValidators - 10 modified validators 264.28 ms/op 364.25 ms/op 0.73
findModifiedValidators - 1 modified validators 189.22 ms/op 437.80 ms/op 0.43
findModifiedValidators - no difference 193.16 ms/op 452.50 ms/op 0.43
compare ViewDUs 6.6440 s/op 10.190 s/op 0.65
compare each validator Uint8Array 1.5669 s/op 2.6317 s/op 0.60
compare ViewDU to Uint8Array 1.2283 s/op 1.8487 s/op 0.66
migrate state 1000000 validators, 24 modified, 0 new 973.84 ms/op 1.4425 s/op 0.68
migrate state 1000000 validators, 1700 modified, 1000 new 1.3729 s/op 2.2406 s/op 0.61
migrate state 1000000 validators, 3400 modified, 2000 new 1.5246 s/op 2.6264 s/op 0.58
migrate state 1500000 validators, 24 modified, 0 new 1.1202 s/op 1.6735 s/op 0.67
migrate state 1500000 validators, 1700 modified, 1000 new 1.3979 s/op 2.6936 s/op 0.52
migrate state 1500000 validators, 3400 modified, 2000 new 1.5438 s/op 2.7181 s/op 0.57
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.0200 ns/op 8.3600 ns/op 0.60
state getBlockRootAtSlot - 250000 vs - 7PWei 1.1903 us/op 1.4217 us/op 0.84
naive computeProposerIndex 100000 validators 65.509 ms/op 142.66 ms/op 0.46
computeProposerIndex 100000 validators 1.8982 ms/op 5.3863 ms/op 0.35
naiveGetNextSyncCommitteeIndices 1000 validators 9.6173 s/op 26.900 s/op 0.36
getNextSyncCommitteeIndices 1000 validators 137.05 ms/op 370.15 ms/op 0.37
naiveGetNextSyncCommitteeIndices 10000 validators 9.7463 s/op 30.301 s/op 0.32
getNextSyncCommitteeIndices 10000 validators 130.89 ms/op 549.81 ms/op 0.24
naiveGetNextSyncCommitteeIndices 100000 validators 9.8018 s/op 29.969 s/op 0.33
getNextSyncCommitteeIndices 100000 validators 130.46 ms/op 528.62 ms/op 0.25
naive computeShuffledIndex 100000 validators 27.916 s/op 81.869 s/op 0.34
cached computeShuffledIndex 100000 validators 632.34 ms/op 2.2012 s/op 0.29
naive computeShuffledIndex 2000000 validators 669.27 s/op 1139.1 s/op 0.59
cached computeShuffledIndex 2000000 validators 50.770 s/op 129.78 s/op 0.39
computeProposers - vc 250000 654.77 us/op 3.0237 ms/op 0.22
computeEpochShuffling - vc 250000 43.737 ms/op 188.05 ms/op 0.23
getNextSyncCommittee - vc 250000 11.928 ms/op 48.187 ms/op 0.25
computeSigningRoot for AttestationData 22.020 us/op 96.990 us/op 0.23
hash AttestationData serialized data then Buffer.toString(base64) 1.6709 us/op 5.6607 us/op 0.30
toHexString serialized data 1.1842 us/op 6.1453 us/op 0.19
Buffer.toString(base64) 168.58 ns/op 596.85 ns/op 0.28
nodejs block root to RootHex using toHex 168.90 ns/op 550.96 ns/op 0.31
nodejs block root to RootHex using toRootHex 100.58 ns/op 381.36 ns/op 0.26
nodejs fromhex(blob) 127.59 ms/op 398.95 ms/op 0.32
nodejs fromHexInto(blob) 98.750 ms/op 245.37 ms/op 0.40
browser block root to RootHex using the deprecated toHexString 228.38 ns/op 2.1213 us/op 0.11
browser block root to RootHex using toHex 183.60 ns/op 1.6882 us/op 0.11
browser block root to RootHex using toRootHex 169.68 ns/op 515.20 ns/op 0.33
browser fromHexInto(blob) 948.18 us/op 3.2107 ms/op 0.30
browser fromHex(blob) 899.88 ms/op 2.7710 s/op 0.32

by benchmarkbot/action

@wemeetagain
Copy link
Member

🎉 This PR is included in v1.35.0 🎉

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