-
-
Notifications
You must be signed in to change notification settings - Fork 414
chore: move PR comments from #7947 that got closed #8456
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
Conversation
Summary of ChangesHello @matthewkeil, 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 addresses a technical debt item by porting specific comment and naming convention fixes from a previously closed PR (#7947). The core change involves refactoring Highlights
Using Gemini Code AssistThe 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
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 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
|
There was a problem hiding this 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 refactors several database bucket names to be more specific, changing the allForks_ prefix to deneb_ and fulu_ for buckets related to blob sidecars and data column sidecars. The changes are applied consistently across the enum definition and its usages in various repository classes. This improves code clarity and maintainability by accurately reflecting that these buckets are specific to certain forks. The changes are correct and well-implemented.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## unstable #8456 +/- ##
=========================================
Coverage 52.22% 52.22%
=========================================
Files 853 853
Lines 64898 64898
Branches 4766 4766
=========================================
Hits 33890 33890
Misses 30938 30938
Partials 70 70 🚀 New features to boost your workflow:
|
nflaig
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this will change the label of the metrics but that seems acceptable
|
| Benchmark suite | Current: 8c80ce3 | Previous: 09716b4 | Ratio |
|---|---|---|---|
| BLS verifyMultipleSignatures 64 - blst | 48.124 ms/op | 12.669 ms/op | 3.80 |
| BLS verifyMultipleSignatures 128 - blst | 89.450 ms/op | 21.001 ms/op | 4.26 |
| BLS verifyMultipleSignatures - same message - 64 - blst | 10.254 ms/op | 2.9620 ms/op | 3.46 |
| BLS aggregatePubkeys 128 - blst | 226.29 us/op | 74.154 us/op | 3.05 |
| validate api signedAggregateAndProof - struct | 4.6628 ms/op | 1.4045 ms/op | 3.32 |
| validate gossip signedAggregateAndProof - struct | 4.7388 ms/op | 1.4915 ms/op | 3.18 |
| pickEth1Vote - max votes | 23.128 ms/op | 6.5814 ms/op | 3.51 |
| bytes32 Buffer.toString(hex) from Uint8Array | 1.0450 us/op | 328.00 ns/op | 3.19 |
| Map set x1000 | 66.543 ns/op | 20.253 ns/op | 3.29 |
| fastMsgIdFn h32 xxhash / 200 bytes | 764.00 ns/op | 216.00 ns/op | 3.54 |
| fastMsgIdFn h64 xxhash / 200 bytes | 865.00 ns/op | 260.00 ns/op | 3.33 |
| fastMsgIdFn sha256 / 1000 bytes | 24.341 us/op | 7.3080 us/op | 3.33 |
| fastMsgIdFn h32 xxhash / 1000 bytes | 1.1870 us/op | 347.00 ns/op | 3.42 |
| fastMsgIdFn h64 xxhash / 1000 bytes | 1.4570 us/op | 331.00 ns/op | 4.40 |
| fastMsgIdFn sha256 / 10000 bytes | 276.79 us/op | 64.139 us/op | 4.32 |
| fastMsgIdFn h32 xxhash / 10000 bytes | 6.3760 us/op | 1.8170 us/op | 3.51 |
| fastMsgIdFn h64 xxhash / 10000 bytes | 4.1100 us/op | 1.2010 us/op | 3.42 |
| send data - 1000 256B messages | 63.987 ms/op | 17.210 ms/op | 3.72 |
| send data - 1000 512B messages | 67.088 ms/op | 20.246 ms/op | 3.31 |
| send data - 1000 1200B messages | 80.937 ms/op | 24.528 ms/op | 3.30 |
| send data - 1000 2048B messages | 85.173 ms/op | 26.869 ms/op | 3.17 |
| send data - 1000 4096B messages | 97.504 ms/op | 28.717 ms/op | 3.40 |
| send data - 1000 16384B messages | 168.61 ms/op | 50.140 ms/op | 3.36 |
| send data - 1000 65536B messages | 370.50 ms/op | 121.17 ms/op | 3.06 |
| enrSubnets - fastDeserialize 64 bits | 3.1460 us/op | 892.00 ns/op | 3.53 |
| enrSubnets - ssz BitVector 64 bits | 1.1360 us/op | 334.00 ns/op | 3.40 |
| enrSubnets - fastDeserialize 4 bits | 476.00 ns/op | 136.00 ns/op | 3.50 |
| enrSubnets - ssz BitVector 4 bits | 1.1470 us/op | 333.00 ns/op | 3.44 |
| prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 937.63 us/op | 259.28 us/op | 3.62 |
| prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 2.1875 ms/op | 700.06 us/op | 3.12 |
| prioritizePeers score 0:0 att 64-1 sync 4-1 | 2.5482 ms/op | 838.34 us/op | 3.04 |
| bitArray.getTrueBitIndexes() bitLen 128 | 3.5090 us/op | 1.0360 us/op | 3.39 |
| bitArray.getTrueBitIndexes() bitLen 248 | 7.3780 us/op | 1.8010 us/op | 4.10 |
| Buffer.concat 32 items | 3.0500 us/op | 788.00 ns/op | 3.87 |
| Uint8Array.set 32 items | 4.4710 us/op | 1.0380 us/op | 4.31 |
| Uint8Array.set - with subarray | 7.3420 us/op | 1.6170 us/op | 4.54 |
| Uint8Array.set - without subarray | 3.3310 us/op | 1.0710 us/op | 3.11 |
| Set add up to 64 items then delete first | 7.4082 us/op | 2.1948 us/op | 3.38 |
| OrderedSet add up to 64 items then delete first | 12.362 us/op | 3.3619 us/op | 3.68 |
| OrderedSet add up to 64 items then delete last | 12.212 us/op | 3.7766 us/op | 3.23 |
| Set add up to 64 items then delete middle | 9.8156 us/op | 2.6252 us/op | 3.74 |
| OrderedSet add up to 64 items then delete middle | 17.505 us/op | 5.6137 us/op | 3.12 |
| Set add up to 128 items then delete middle | 21.038 us/op | 4.9682 us/op | 4.23 |
| OrderedSet add up to 128 items then delete middle | 56.867 us/op | 14.677 us/op | 3.87 |
| OrderedSet add up to 256 items then delete first | 53.869 us/op | 17.070 us/op | 3.16 |
| forkChoice updateHead vc 1000000 bc 64 eq 0 | 14.540 ms/op | 4.7373 ms/op | 3.07 |
| forkChoice updateHead vc 600000 bc 320 eq 0 | 8.9158 ms/op | 2.8398 ms/op | 3.14 |
| forkChoice updateHead vc 600000 bc 1200 eq 0 | 10.731 ms/op | 2.8239 ms/op | 3.80 |
| forkChoice updateHead vc 600000 bc 7200 eq 0 | 10.141 ms/op | 3.1141 ms/op | 3.26 |
| forkChoice updateHead vc 600000 bc 64 eq 10000 | 30.800 ms/op | 10.153 ms/op | 3.03 |
| forkChoice updateHead vc 600000 bc 64 eq 300000 | 58.038 ms/op | 13.328 ms/op | 4.35 |
| RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 13.810 ns/op | 4.1600 ns/op | 3.32 |
| computeProposerIndex 100000 validators | 5.6302 ms/op | 1.5009 ms/op | 3.75 |
| cached computeShuffledIndex 2000000 validators | 177.30 s/op | 29.208 s/op | 6.07 |
| computeProposers - vc 250000 | 4.4820 ms/op | 618.53 us/op | 7.25 |
| computeEpochShuffling - vc 250000 | 225.12 ms/op | 40.998 ms/op | 5.49 |
| getNextSyncCommittee - vc 250000 | 64.480 ms/op | 9.9116 ms/op | 6.51 |
| computeSigningRoot for AttestationData | 213.91 us/op | 19.985 us/op | 10.70 |
| hash AttestationData serialized data then Buffer.toString(base64) | 12.089 us/op | 1.5615 us/op | 7.74 |
| toHexString serialized data | 20.430 us/op | 1.0785 us/op | 18.94 |
| Buffer.toString(base64) | 784.29 ns/op | 138.17 ns/op | 5.68 |
| nodejs block root to RootHex using toHex | 650.00 ns/op | 140.45 ns/op | 4.63 |
| nodejs block root to RootHex using toRootHex | 407.77 ns/op | 88.301 ns/op | 4.62 |
| nodejs fromhex(blob) | 520.40 ms/op | 105.50 ms/op | 4.93 |
| nodejs fromHexInto(blob) | 538.88 ms/op | 92.089 ms/op | 5.85 |
| browser block root to RootHex using the deprecated toHexString | 7.3420 us/op | 204.68 ns/op | 35.87 |
| browser block root to RootHex using toHex | 5.8905 us/op | 158.61 ns/op | 37.14 |
| browser block root to RootHex using toRootHex | 1.2969 us/op | 147.93 ns/op | 8.77 |
| browser fromHexInto(blob) | 4.8488 ms/op | 761.24 us/op | 6.37 |
| browser fromHex(blob) | 3.3480 s/op | 773.08 ms/op | 4.33 |
Full benchmark results
| Benchmark suite | Current: 8c80ce3 | Previous: 09716b4 | Ratio |
|---|---|---|---|
| getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 3.7759 ms/op | 1.1710 ms/op | 3.22 |
| getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 129.23 us/op | 44.872 us/op | 2.88 |
| BLS verify - blst | 2.7784 ms/op | 1.0140 ms/op | 2.74 |
| BLS verifyMultipleSignatures 3 - blst | 4.4452 ms/op | 1.4882 ms/op | 2.99 |
| BLS verifyMultipleSignatures 8 - blst | 6.2209 ms/op | 2.4715 ms/op | 2.52 |
| BLS verifyMultipleSignatures 32 - blst | 18.781 ms/op | 7.4498 ms/op | 2.52 |
| BLS verifyMultipleSignatures 64 - blst | 48.124 ms/op | 12.669 ms/op | 3.80 |
| BLS verifyMultipleSignatures 128 - blst | 89.450 ms/op | 21.001 ms/op | 4.26 |
| BLS deserializing 10000 signatures | 1.5307 s/op | 830.86 ms/op | 1.84 |
| BLS deserializing 100000 signatures | 13.817 s/op | 8.1305 s/op | 1.70 |
| BLS verifyMultipleSignatures - same message - 3 - blst | 2.6639 ms/op | 1.1322 ms/op | 2.35 |
| BLS verifyMultipleSignatures - same message - 8 - blst | 2.6160 ms/op | 1.5057 ms/op | 1.74 |
| BLS verifyMultipleSignatures - same message - 32 - blst | 5.5359 ms/op | 2.2501 ms/op | 2.46 |
| BLS verifyMultipleSignatures - same message - 64 - blst | 10.254 ms/op | 2.9620 ms/op | 3.46 |
| BLS verifyMultipleSignatures - same message - 128 - blst | 16.117 ms/op | 5.5261 ms/op | 2.92 |
| BLS aggregatePubkeys 32 - blst | 62.889 us/op | 22.196 us/op | 2.83 |
| BLS aggregatePubkeys 128 - blst | 226.29 us/op | 74.154 us/op | 3.05 |
| notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 146.84 ms/op | 65.407 ms/op | 2.24 |
| notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 104.78 ms/op | 64.924 ms/op | 1.61 |
| notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 61.729 ms/op | 46.990 ms/op | 1.31 |
| getSlashingsAndExits - default max | 277.86 us/op | 112.59 us/op | 2.47 |
| getSlashingsAndExits - 2k | 526.94 us/op | 329.45 us/op | 1.60 |
| isKnown best case - 1 super set check | 523.00 ns/op | 203.00 ns/op | 2.58 |
| isKnown normal case - 2 super set checks | 405.00 ns/op | 202.00 ns/op | 2.00 |
| isKnown worse case - 16 super set checks | 366.00 ns/op | 204.00 ns/op | 1.79 |
| InMemoryCheckpointStateCache - add get delete | 4.5810 us/op | 2.4360 us/op | 1.88 |
| validate api signedAggregateAndProof - struct | 4.6628 ms/op | 1.4045 ms/op | 3.32 |
| validate gossip signedAggregateAndProof - struct | 4.7388 ms/op | 1.4915 ms/op | 3.18 |
| batch validate gossip attestation - vc 640000 - chunk 32 | 272.28 us/op | 115.67 us/op | 2.35 |
| batch validate gossip attestation - vc 640000 - chunk 64 | 291.29 us/op | 102.16 us/op | 2.85 |
| batch validate gossip attestation - vc 640000 - chunk 128 | 157.87 us/op | 95.489 us/op | 1.65 |
| batch validate gossip attestation - vc 640000 - chunk 256 | 250.13 us/op | 97.066 us/op | 2.58 |
| pickEth1Vote - no votes | 2.5629 ms/op | 934.88 us/op | 2.74 |
| pickEth1Vote - max votes | 23.128 ms/op | 6.5814 ms/op | 3.51 |
| pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 20.480 ms/op | 11.089 ms/op | 1.85 |
| pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 49.258 ms/op | 20.372 ms/op | 2.42 |
| pickEth1Vote - Eth1Data fastSerialize value x2048 | 1.1727 ms/op | 451.37 us/op | 2.60 |
| pickEth1Vote - Eth1Data fastSerialize tree x2048 | 8.1169 ms/op | 3.6623 ms/op | 2.22 |
| bytes32 toHexString | 1.1850 us/op | 430.00 ns/op | 2.76 |
| bytes32 Buffer.toString(hex) | 661.00 ns/op | 251.00 ns/op | 2.63 |
| bytes32 Buffer.toString(hex) from Uint8Array | 1.0450 us/op | 328.00 ns/op | 3.19 |
| bytes32 Buffer.toString(hex) + 0x | 540.00 ns/op | 270.00 ns/op | 2.00 |
| Object access 1 prop | 0.25200 ns/op | 0.11900 ns/op | 2.12 |
| Map access 1 prop | 0.24200 ns/op | 0.12600 ns/op | 1.92 |
| Object get x1000 | 10.281 ns/op | 5.6910 ns/op | 1.81 |
| Map get x1000 | 13.089 ns/op | 6.4110 ns/op | 2.04 |
| Object set x1000 | 50.656 ns/op | 29.312 ns/op | 1.73 |
| Map set x1000 | 66.543 ns/op | 20.253 ns/op | 3.29 |
| Return object 10000 times | 0.73900 ns/op | 0.28810 ns/op | 2.57 |
| Throw Error 10000 times | 12.647 us/op | 4.3914 us/op | 2.88 |
| toHex | 351.92 ns/op | 148.53 ns/op | 2.37 |
| Buffer.from | 224.65 ns/op | 126.56 ns/op | 1.78 |
| shared Buffer | 210.61 ns/op | 81.181 ns/op | 2.59 |
| fastMsgIdFn sha256 / 200 bytes | 4.9490 us/op | 2.2000 us/op | 2.25 |
| fastMsgIdFn h32 xxhash / 200 bytes | 764.00 ns/op | 216.00 ns/op | 3.54 |
| fastMsgIdFn h64 xxhash / 200 bytes | 865.00 ns/op | 260.00 ns/op | 3.33 |
| fastMsgIdFn sha256 / 1000 bytes | 24.341 us/op | 7.3080 us/op | 3.33 |
| fastMsgIdFn h32 xxhash / 1000 bytes | 1.1870 us/op | 347.00 ns/op | 3.42 |
| fastMsgIdFn h64 xxhash / 1000 bytes | 1.4570 us/op | 331.00 ns/op | 4.40 |
| fastMsgIdFn sha256 / 10000 bytes | 276.79 us/op | 64.139 us/op | 4.32 |
| fastMsgIdFn h32 xxhash / 10000 bytes | 6.3760 us/op | 1.8170 us/op | 3.51 |
| fastMsgIdFn h64 xxhash / 10000 bytes | 4.1100 us/op | 1.2010 us/op | 3.42 |
| send data - 1000 256B messages | 63.987 ms/op | 17.210 ms/op | 3.72 |
| send data - 1000 512B messages | 67.088 ms/op | 20.246 ms/op | 3.31 |
| send data - 1000 1024B messages | 69.159 ms/op | 27.947 ms/op | 2.47 |
| send data - 1000 1200B messages | 80.937 ms/op | 24.528 ms/op | 3.30 |
| send data - 1000 2048B messages | 85.173 ms/op | 26.869 ms/op | 3.17 |
| send data - 1000 4096B messages | 97.504 ms/op | 28.717 ms/op | 3.40 |
| send data - 1000 16384B messages | 168.61 ms/op | 50.140 ms/op | 3.36 |
| send data - 1000 65536B messages | 370.50 ms/op | 121.17 ms/op | 3.06 |
| enrSubnets - fastDeserialize 64 bits | 3.1460 us/op | 892.00 ns/op | 3.53 |
| enrSubnets - ssz BitVector 64 bits | 1.1360 us/op | 334.00 ns/op | 3.40 |
| enrSubnets - fastDeserialize 4 bits | 476.00 ns/op | 136.00 ns/op | 3.50 |
| enrSubnets - ssz BitVector 4 bits | 1.1470 us/op | 333.00 ns/op | 3.44 |
| prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 596.06 us/op | 234.65 us/op | 2.54 |
| prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 937.63 us/op | 259.28 us/op | 3.62 |
| prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 1.1110 ms/op | 377.75 us/op | 2.94 |
| prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 2.1875 ms/op | 700.06 us/op | 3.12 |
| prioritizePeers score 0:0 att 64-1 sync 4-1 | 2.5482 ms/op | 838.34 us/op | 3.04 |
| array of 16000 items push then shift | 5.9741 us/op | 1.6020 us/op | 3.73 |
| LinkedList of 16000 items push then shift | 15.435 ns/op | 7.1110 ns/op | 2.17 |
| array of 16000 items push then pop | 211.24 ns/op | 74.543 ns/op | 2.83 |
| LinkedList of 16000 items push then pop | 15.876 ns/op | 7.2010 ns/op | 2.20 |
| array of 24000 items push then shift | 8.3193 us/op | 2.3669 us/op | 3.51 |
| LinkedList of 24000 items push then shift | 46.169 ns/op | 7.1420 ns/op | 6.46 |
| array of 24000 items push then pop | 349.27 ns/op | 106.03 ns/op | 3.29 |
| LinkedList of 24000 items push then pop | 25.477 ns/op | 7.0630 ns/op | 3.61 |
| intersect bitArray bitLen 8 | 26.269 ns/op | 6.3960 ns/op | 4.11 |
| intersect array and set length 8 | 179.53 ns/op | 37.393 ns/op | 4.80 |
| intersect bitArray bitLen 128 | 106.99 ns/op | 29.478 ns/op | 3.63 |
| intersect array and set length 128 | 2.1382 us/op | 616.23 ns/op | 3.47 |
| bitArray.getTrueBitIndexes() bitLen 128 | 3.5090 us/op | 1.0360 us/op | 3.39 |
| bitArray.getTrueBitIndexes() bitLen 248 | 7.3780 us/op | 1.8010 us/op | 4.10 |
| bitArray.getTrueBitIndexes() bitLen 512 | 11.210 us/op | 3.7390 us/op | 3.00 |
| Buffer.concat 32 items | 3.0500 us/op | 788.00 ns/op | 3.87 |
| Uint8Array.set 32 items | 4.4710 us/op | 1.0380 us/op | 4.31 |
| Buffer.copy | 6.5600 us/op | 2.2170 us/op | 2.96 |
| Uint8Array.set - with subarray | 7.3420 us/op | 1.6170 us/op | 4.54 |
| Uint8Array.set - without subarray | 3.3310 us/op | 1.0710 us/op | 3.11 |
| getUint32 - dataview | 554.00 ns/op | 214.00 ns/op | 2.59 |
| getUint32 - manual | 163.00 ns/op | 124.00 ns/op | 1.31 |
| Set add up to 64 items then delete first | 7.4082 us/op | 2.1948 us/op | 3.38 |
| OrderedSet add up to 64 items then delete first | 12.362 us/op | 3.3619 us/op | 3.68 |
| Set add up to 64 items then delete last | 6.7123 us/op | 2.5438 us/op | 2.64 |
| OrderedSet add up to 64 items then delete last | 12.212 us/op | 3.7766 us/op | 3.23 |
| Set add up to 64 items then delete middle | 9.8156 us/op | 2.6252 us/op | 3.74 |
| OrderedSet add up to 64 items then delete middle | 17.505 us/op | 5.6137 us/op | 3.12 |
| Set add up to 128 items then delete first | 14.493 us/op | 5.2153 us/op | 2.78 |
| OrderedSet add up to 128 items then delete first | 21.706 us/op | 8.4298 us/op | 2.57 |
| Set add up to 128 items then delete last | 14.552 us/op | 5.3382 us/op | 2.73 |
| OrderedSet add up to 128 items then delete last | 20.596 us/op | 7.7593 us/op | 2.65 |
| Set add up to 128 items then delete middle | 21.038 us/op | 4.9682 us/op | 4.23 |
| OrderedSet add up to 128 items then delete middle | 56.867 us/op | 14.677 us/op | 3.87 |
| Set add up to 256 items then delete first | 26.159 us/op | 11.044 us/op | 2.37 |
| OrderedSet add up to 256 items then delete first | 53.869 us/op | 17.070 us/op | 3.16 |
| Set add up to 256 items then delete last | 24.145 us/op | 9.8114 us/op | 2.46 |
| OrderedSet add up to 256 items then delete last | 35.524 us/op | 15.213 us/op | 2.34 |
| Set add up to 256 items then delete middle | 19.722 us/op | 9.8868 us/op | 1.99 |
| OrderedSet add up to 256 items then delete middle | 81.020 us/op | 44.554 us/op | 1.82 |
| transfer serialized Status (84 B) | 4.0590 us/op | 2.2260 us/op | 1.82 |
| copy serialized Status (84 B) | 2.2830 us/op | 1.2300 us/op | 1.86 |
| transfer serialized SignedVoluntaryExit (112 B) | 4.7530 us/op | 2.3480 us/op | 2.02 |
| copy serialized SignedVoluntaryExit (112 B) | 2.3380 us/op | 1.2680 us/op | 1.84 |
| transfer serialized ProposerSlashing (416 B) | 6.4390 us/op | 2.2950 us/op | 2.81 |
| copy serialized ProposerSlashing (416 B) | 4.3180 us/op | 1.2670 us/op | 3.41 |
| transfer serialized Attestation (485 B) | 6.8120 us/op | 2.2880 us/op | 2.98 |
| copy serialized Attestation (485 B) | 3.0840 us/op | 1.2650 us/op | 2.44 |
| transfer serialized AttesterSlashing (33232 B) | 5.0270 us/op | 2.3660 us/op | 2.12 |
| copy serialized AttesterSlashing (33232 B) | 6.7570 us/op | 3.9800 us/op | 1.70 |
| transfer serialized Small SignedBeaconBlock (128000 B) | 6.7330 us/op | 3.2480 us/op | 2.07 |
| copy serialized Small SignedBeaconBlock (128000 B) | 18.973 us/op | 40.526 us/op | 0.47 |
| transfer serialized Avg SignedBeaconBlock (200000 B) | 7.2080 us/op | 3.6820 us/op | 1.96 |
| copy serialized Avg SignedBeaconBlock (200000 B) | 31.517 us/op | 14.504 us/op | 2.17 |
| transfer serialized BlobsSidecar (524380 B) | 9.3160 us/op | 3.9630 us/op | 2.35 |
| copy serialized BlobsSidecar (524380 B) | 77.726 us/op | 92.806 us/op | 0.84 |
| transfer serialized Big SignedBeaconBlock (1000000 B) | 8.0390 us/op | 4.2140 us/op | 1.91 |
| copy serialized Big SignedBeaconBlock (1000000 B) | 145.81 us/op | 118.04 us/op | 1.24 |
| pass gossip attestations to forkchoice per slot | 5.9486 ms/op | 2.7583 ms/op | 2.16 |
| forkChoice updateHead vc 100000 bc 64 eq 0 | 900.97 us/op | 446.91 us/op | 2.02 |
| forkChoice updateHead vc 600000 bc 64 eq 0 | 5.5923 ms/op | 2.8068 ms/op | 1.99 |
| forkChoice updateHead vc 1000000 bc 64 eq 0 | 14.540 ms/op | 4.7373 ms/op | 3.07 |
| forkChoice updateHead vc 600000 bc 320 eq 0 | 8.9158 ms/op | 2.8398 ms/op | 3.14 |
| forkChoice updateHead vc 600000 bc 1200 eq 0 | 10.731 ms/op | 2.8239 ms/op | 3.80 |
| forkChoice updateHead vc 600000 bc 7200 eq 0 | 10.141 ms/op | 3.1141 ms/op | 3.26 |
| forkChoice updateHead vc 600000 bc 64 eq 1000 | 30.686 ms/op | 10.385 ms/op | 2.95 |
| forkChoice updateHead vc 600000 bc 64 eq 10000 | 30.800 ms/op | 10.153 ms/op | 3.03 |
| forkChoice updateHead vc 600000 bc 64 eq 300000 | 58.038 ms/op | 13.328 ms/op | 4.35 |
| computeDeltas 500000 validators 300 proto nodes | 8.1022 ms/op | 3.9298 ms/op | 2.06 |
| computeDeltas 500000 validators 1200 proto nodes | 7.3002 ms/op | 3.8352 ms/op | 1.90 |
| computeDeltas 500000 validators 7200 proto nodes | 6.2516 ms/op | 3.8403 ms/op | 1.63 |
| computeDeltas 750000 validators 300 proto nodes | 10.199 ms/op | 5.8282 ms/op | 1.75 |
| computeDeltas 750000 validators 1200 proto nodes | 6.8984 ms/op | 5.8794 ms/op | 1.17 |
| computeDeltas 750000 validators 7200 proto nodes | 6.9962 ms/op | 6.0280 ms/op | 1.16 |
| computeDeltas 1400000 validators 300 proto nodes | 14.893 ms/op | 10.988 ms/op | 1.36 |
| computeDeltas 1400000 validators 1200 proto nodes | 21.648 ms/op | 11.101 ms/op | 1.95 |
| computeDeltas 1400000 validators 7200 proto nodes | 23.690 ms/op | 11.205 ms/op | 2.11 |
| computeDeltas 2100000 validators 300 proto nodes | 31.809 ms/op | 17.425 ms/op | 1.83 |
| computeDeltas 2100000 validators 1200 proto nodes | 25.661 ms/op | 17.324 ms/op | 1.48 |
| computeDeltas 2100000 validators 7200 proto nodes | 25.812 ms/op | 16.989 ms/op | 1.52 |
| altair processAttestation - 250000 vs - 7PWei normalcase | 2.8675 ms/op | 2.2506 ms/op | 1.27 |
| altair processAttestation - 250000 vs - 7PWei worstcase | 4.1873 ms/op | 3.9039 ms/op | 1.07 |
| altair processAttestation - setStatus - 1/6 committees join | 178.94 us/op | 146.91 us/op | 1.22 |
| altair processAttestation - setStatus - 1/3 committees join | 334.85 us/op | 285.01 us/op | 1.17 |
| altair processAttestation - setStatus - 1/2 committees join | 604.04 us/op | 379.43 us/op | 1.59 |
| altair processAttestation - setStatus - 2/3 committees join | 615.03 us/op | 483.93 us/op | 1.27 |
| altair processAttestation - setStatus - 4/5 committees join | 996.31 us/op | 687.27 us/op | 1.45 |
| altair processAttestation - setStatus - 100% committees join | 1.5860 ms/op | 789.81 us/op | 2.01 |
| altair processBlock - 250000 vs - 7PWei normalcase | 6.6035 ms/op | 5.6813 ms/op | 1.16 |
| altair processBlock - 250000 vs - 7PWei normalcase hashState | 35.608 ms/op | 32.061 ms/op | 1.11 |
| altair processBlock - 250000 vs - 7PWei worstcase | 47.735 ms/op | 40.639 ms/op | 1.17 |
| altair processBlock - 250000 vs - 7PWei worstcase hashState | 84.518 ms/op | 84.897 ms/op | 1.00 |
| phase0 processBlock - 250000 vs - 7PWei normalcase | 1.8901 ms/op | 1.9957 ms/op | 0.95 |
| phase0 processBlock - 250000 vs - 7PWei worstcase | 26.788 ms/op | 26.070 ms/op | 1.03 |
| altair processEth1Data - 250000 vs - 7PWei normalcase | 409.10 us/op | 350.10 us/op | 1.17 |
| getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 6.3950 us/op | 7.7030 us/op | 0.83 |
| getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 41.029 us/op | 47.621 us/op | 0.86 |
| getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 11.336 us/op | 13.707 us/op | 0.83 |
| getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 7.1130 us/op | 8.4310 us/op | 0.84 |
| getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 144.89 us/op | 226.06 us/op | 0.64 |
| getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 2.1157 ms/op | 2.1980 ms/op | 0.96 |
| getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 2.9186 ms/op | 3.0456 ms/op | 0.96 |
| getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 2.9257 ms/op | 2.4710 ms/op | 1.18 |
| getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 9.3738 ms/op | 5.4001 ms/op | 1.74 |
| getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 2.9144 ms/op | 2.4873 ms/op | 1.17 |
| getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 7.5945 ms/op | 5.5267 ms/op | 1.37 |
| Tree 40 250000 create | 575.22 ms/op | 536.42 ms/op | 1.07 |
| Tree 40 250000 get(125000) | 182.69 ns/op | 146.62 ns/op | 1.25 |
| Tree 40 250000 set(125000) | 2.0969 us/op | 1.6746 us/op | 1.25 |
| Tree 40 250000 toArray() | 22.320 ms/op | 21.118 ms/op | 1.06 |
| Tree 40 250000 iterate all - toArray() + loop | 29.957 ms/op | 21.852 ms/op | 1.37 |
| Tree 40 250000 iterate all - get(i) | 70.357 ms/op | 59.181 ms/op | 1.19 |
| Array 250000 create | 4.5626 ms/op | 2.6394 ms/op | 1.73 |
| Array 250000 clone - spread | 1.7523 ms/op | 838.87 us/op | 2.09 |
| Array 250000 get(125000) | 0.50700 ns/op | 0.41100 ns/op | 1.23 |
| Array 250000 set(125000) | 0.52900 ns/op | 0.43200 ns/op | 1.22 |
| Array 250000 iterate all - loop | 104.04 us/op | 84.696 us/op | 1.23 |
| phase0 afterProcessEpoch - 250000 vs - 7PWei | 61.235 ms/op | 43.611 ms/op | 1.40 |
| Array.fill - length 1000000 | 5.0192 ms/op | 3.8921 ms/op | 1.29 |
| Array push - length 1000000 | 17.829 ms/op | 15.497 ms/op | 1.15 |
| Array.get | 0.38595 ns/op | 0.28854 ns/op | 1.34 |
| Uint8Array.get | 0.59485 ns/op | 0.45361 ns/op | 1.31 |
| phase0 beforeProcessEpoch - 250000 vs - 7PWei | 21.305 ms/op | 17.991 ms/op | 1.18 |
| altair processEpoch - mainnet_e81889 | 390.31 ms/op | 264.13 ms/op | 1.48 |
| mainnet_e81889 - altair beforeProcessEpoch | 23.728 ms/op | 17.416 ms/op | 1.36 |
| mainnet_e81889 - altair processJustificationAndFinalization | 8.9890 us/op | 6.3060 us/op | 1.43 |
| mainnet_e81889 - altair processInactivityUpdates | 7.3271 ms/op | 4.5379 ms/op | 1.61 |
| mainnet_e81889 - altair processRewardsAndPenalties | 59.981 ms/op | 44.487 ms/op | 1.35 |
| mainnet_e81889 - altair processRegistryUpdates | 2.2410 us/op | 709.00 ns/op | 3.16 |
| mainnet_e81889 - altair processSlashings | 429.00 ns/op | 194.00 ns/op | 2.21 |
| mainnet_e81889 - altair processEth1DataReset | 358.00 ns/op | 176.00 ns/op | 2.03 |
| mainnet_e81889 - altair processEffectiveBalanceUpdates | 2.1371 ms/op | 1.2873 ms/op | 1.66 |
| mainnet_e81889 - altair processSlashingsReset | 1.5130 us/op | 984.00 ns/op | 1.54 |
| mainnet_e81889 - altair processRandaoMixesReset | 2.8400 us/op | 1.2490 us/op | 2.27 |
| mainnet_e81889 - altair processHistoricalRootsUpdate | 424.00 ns/op | 194.00 ns/op | 2.19 |
| mainnet_e81889 - altair processParticipationFlagUpdates | 1.6250 us/op | 532.00 ns/op | 3.05 |
| mainnet_e81889 - altair processSyncCommitteeUpdates | 341.00 ns/op | 150.00 ns/op | 2.27 |
| mainnet_e81889 - altair afterProcessEpoch | 116.40 ms/op | 46.277 ms/op | 2.52 |
| capella processEpoch - mainnet_e217614 | 1.2671 s/op | 1.0900 s/op | 1.16 |
| mainnet_e217614 - capella beforeProcessEpoch | 99.276 ms/op | 67.642 ms/op | 1.47 |
| mainnet_e217614 - capella processJustificationAndFinalization | 8.2660 us/op | 5.9970 us/op | 1.38 |
| mainnet_e217614 - capella processInactivityUpdates | 21.263 ms/op | 15.869 ms/op | 1.34 |
| mainnet_e217614 - capella processRewardsAndPenalties | 238.94 ms/op | 210.11 ms/op | 1.14 |
| mainnet_e217614 - capella processRegistryUpdates | 9.0530 us/op | 7.4740 us/op | 1.21 |
| mainnet_e217614 - capella processSlashings | 388.00 ns/op | 204.00 ns/op | 1.90 |
| mainnet_e217614 - capella processEth1DataReset | 309.00 ns/op | 181.00 ns/op | 1.71 |
| mainnet_e217614 - capella processEffectiveBalanceUpdates | 7.1614 ms/op | 4.4206 ms/op | 1.62 |
| mainnet_e217614 - capella processSlashingsReset | 1.5410 us/op | 1.2160 us/op | 1.27 |
| mainnet_e217614 - capella processRandaoMixesReset | 1.9980 us/op | 1.3270 us/op | 1.51 |
| mainnet_e217614 - capella processHistoricalRootsUpdate | 299.00 ns/op | 197.00 ns/op | 1.52 |
| mainnet_e217614 - capella processParticipationFlagUpdates | 931.00 ns/op | 544.00 ns/op | 1.71 |
| mainnet_e217614 - capella afterProcessEpoch | 165.99 ms/op | 121.48 ms/op | 1.37 |
| phase0 processEpoch - mainnet_e58758 | 414.51 ms/op | 345.26 ms/op | 1.20 |
| mainnet_e58758 - phase0 beforeProcessEpoch | 179.30 ms/op | 87.018 ms/op | 2.06 |
| mainnet_e58758 - phase0 processJustificationAndFinalization | 16.097 us/op | 6.2070 us/op | 2.59 |
| mainnet_e58758 - phase0 processRewardsAndPenalties | 87.758 ms/op | 41.632 ms/op | 2.11 |
| mainnet_e58758 - phase0 processRegistryUpdates | 13.303 us/op | 4.2250 us/op | 3.15 |
| mainnet_e58758 - phase0 processSlashings | 519.00 ns/op | 177.00 ns/op | 2.93 |
| mainnet_e58758 - phase0 processEth1DataReset | 370.00 ns/op | 180.00 ns/op | 2.06 |
| mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 2.7266 ms/op | 1.2511 ms/op | 2.18 |
| mainnet_e58758 - phase0 processSlashingsReset | 1.5020 us/op | 932.00 ns/op | 1.61 |
| mainnet_e58758 - phase0 processRandaoMixesReset | 2.2110 us/op | 1.4740 us/op | 1.50 |
| mainnet_e58758 - phase0 processHistoricalRootsUpdate | 432.00 ns/op | 217.00 ns/op | 1.99 |
| mainnet_e58758 - phase0 processParticipationRecordUpdates | 1.6400 us/op | 1.0530 us/op | 1.56 |
| mainnet_e58758 - phase0 afterProcessEpoch | 60.802 ms/op | 37.253 ms/op | 1.63 |
| phase0 processEffectiveBalanceUpdates - 250000 normalcase | 3.1891 ms/op | 1.4368 ms/op | 2.22 |
| phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 3.2336 ms/op | 2.1904 ms/op | 1.48 |
| altair processInactivityUpdates - 250000 normalcase | 23.290 ms/op | 20.582 ms/op | 1.13 |
| altair processInactivityUpdates - 250000 worstcase | 24.536 ms/op | 20.892 ms/op | 1.17 |
| phase0 processRegistryUpdates - 250000 normalcase | 6.5710 us/op | 7.6150 us/op | 0.86 |
| phase0 processRegistryUpdates - 250000 badcase_full_deposits | 267.06 us/op | 333.54 us/op | 0.80 |
| phase0 processRegistryUpdates - 250000 worstcase 0.5 | 131.10 ms/op | 135.29 ms/op | 0.97 |
| altair processRewardsAndPenalties - 250000 normalcase | 28.875 ms/op | 29.304 ms/op | 0.99 |
| altair processRewardsAndPenalties - 250000 worstcase | 29.244 ms/op | 30.302 ms/op | 0.97 |
| phase0 getAttestationDeltas - 250000 normalcase | 6.7605 ms/op | 10.372 ms/op | 0.65 |
| phase0 getAttestationDeltas - 250000 worstcase | 8.5993 ms/op | 6.7555 ms/op | 1.27 |
| phase0 processSlashings - 250000 worstcase | 89.827 us/op | 143.72 us/op | 0.63 |
| altair processSyncCommitteeUpdates - 250000 | 12.205 ms/op | 15.252 ms/op | 0.80 |
| BeaconState.hashTreeRoot - No change | 281.00 ns/op | 247.00 ns/op | 1.14 |
| BeaconState.hashTreeRoot - 1 full validator | 105.22 us/op | 108.25 us/op | 0.97 |
| BeaconState.hashTreeRoot - 32 full validator | 1.0525 ms/op | 1.3122 ms/op | 0.80 |
| BeaconState.hashTreeRoot - 512 full validator | 20.147 ms/op | 14.785 ms/op | 1.36 |
| BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 183.52 us/op | 135.66 us/op | 1.35 |
| BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 1.7235 ms/op | 2.4680 ms/op | 0.70 |
| BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 29.897 ms/op | 28.759 ms/op | 1.04 |
| BeaconState.hashTreeRoot - 1 balances | 105.47 us/op | 111.12 us/op | 0.95 |
| BeaconState.hashTreeRoot - 32 balances | 832.20 us/op | 1.1141 ms/op | 0.75 |
| BeaconState.hashTreeRoot - 512 balances | 9.0257 ms/op | 9.0189 ms/op | 1.00 |
| BeaconState.hashTreeRoot - 250000 balances | 202.20 ms/op | 198.91 ms/op | 1.02 |
| aggregationBits - 2048 els - zipIndexesInBitList | 27.255 us/op | 24.877 us/op | 1.10 |
| byteArrayEquals 32 | 160.69 ns/op | 57.589 ns/op | 2.79 |
| Buffer.compare 32 | 43.262 ns/op | 18.822 ns/op | 2.30 |
| byteArrayEquals 1024 | 3.0532 us/op | 1.6638 us/op | 1.84 |
| Buffer.compare 1024 | 56.861 ns/op | 26.450 ns/op | 2.15 |
| byteArrayEquals 16384 | 49.326 us/op | 26.532 us/op | 1.86 |
| Buffer.compare 16384 | 414.79 ns/op | 183.45 ns/op | 2.26 |
| byteArrayEquals 123687377 | 281.37 ms/op | 195.76 ms/op | 1.44 |
| Buffer.compare 123687377 | 7.1967 ms/op | 7.4560 ms/op | 0.97 |
| byteArrayEquals 32 - diff last byte | 79.488 ns/op | 53.933 ns/op | 1.47 |
| Buffer.compare 32 - diff last byte | 28.194 ns/op | 17.898 ns/op | 1.58 |
| byteArrayEquals 1024 - diff last byte | 2.0164 us/op | 1.6296 us/op | 1.24 |
| Buffer.compare 1024 - diff last byte | 30.358 ns/op | 26.262 ns/op | 1.16 |
| byteArrayEquals 16384 - diff last byte | 30.029 us/op | 25.213 us/op | 1.19 |
| Buffer.compare 16384 - diff last byte | 218.72 ns/op | 186.71 ns/op | 1.17 |
| byteArrayEquals 123687377 - diff last byte | 238.81 ms/op | 200.42 ms/op | 1.19 |
| Buffer.compare 123687377 - diff last byte | 7.1892 ms/op | 10.442 ms/op | 0.69 |
| byteArrayEquals 32 - random bytes | 10.083 ns/op | 5.4910 ns/op | 1.84 |
| Buffer.compare 32 - random bytes | 27.512 ns/op | 19.034 ns/op | 1.45 |
| byteArrayEquals 1024 - random bytes | 6.5260 ns/op | 5.3020 ns/op | 1.23 |
| Buffer.compare 1024 - random bytes | 21.970 ns/op | 18.790 ns/op | 1.17 |
| byteArrayEquals 16384 - random bytes | 6.6300 ns/op | 5.4860 ns/op | 1.21 |
| Buffer.compare 16384 - random bytes | 23.505 ns/op | 23.219 ns/op | 1.01 |
| byteArrayEquals 123687377 - random bytes | 7.7700 ns/op | 6.6200 ns/op | 1.17 |
| Buffer.compare 123687377 - random bytes | 21.260 ns/op | 19.730 ns/op | 1.08 |
| regular array get 100000 times | 41.580 us/op | 47.905 us/op | 0.87 |
| wrappedArray get 100000 times | 41.584 us/op | 46.285 us/op | 0.90 |
| arrayWithProxy get 100000 times | 15.014 ms/op | 13.602 ms/op | 1.10 |
| ssz.Root.equals | 56.909 ns/op | 49.659 ns/op | 1.15 |
| byteArrayEquals | 56.066 ns/op | 48.601 ns/op | 1.15 |
| Buffer.compare | 12.743 ns/op | 11.228 ns/op | 1.13 |
| processSlot - 1 slots | 11.977 us/op | 11.320 us/op | 1.06 |
| processSlot - 32 slots | 2.4066 ms/op | 3.0683 ms/op | 0.78 |
| getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 3.3054 ms/op | 3.8576 ms/op | 0.86 |
| getCommitteeAssignments - req 1 vs - 250000 vc | 2.5325 ms/op | 2.3184 ms/op | 1.09 |
| getCommitteeAssignments - req 100 vs - 250000 vc | 4.9389 ms/op | 4.3823 ms/op | 1.13 |
| getCommitteeAssignments - req 1000 vs - 250000 vc | 5.3239 ms/op | 4.8834 ms/op | 1.09 |
| findModifiedValidators - 10000 modified validators | 784.71 ms/op | 843.71 ms/op | 0.93 |
| findModifiedValidators - 1000 modified validators | 758.94 ms/op | 751.43 ms/op | 1.01 |
| findModifiedValidators - 100 modified validators | 315.38 ms/op | 317.20 ms/op | 0.99 |
| findModifiedValidators - 10 modified validators | 207.60 ms/op | 189.07 ms/op | 1.10 |
| findModifiedValidators - 1 modified validators | 154.81 ms/op | 207.49 ms/op | 0.75 |
| findModifiedValidators - no difference | 161.07 ms/op | 170.08 ms/op | 0.95 |
| compare ViewDUs | 6.3987 s/op | 7.4195 s/op | 0.86 |
| compare each validator Uint8Array | 1.8613 s/op | 1.9008 s/op | 0.98 |
| compare ViewDU to Uint8Array | 1.1666 s/op | 1.3377 s/op | 0.87 |
| migrate state 1000000 validators, 24 modified, 0 new | 976.94 ms/op | 902.49 ms/op | 1.08 |
| migrate state 1000000 validators, 1700 modified, 1000 new | 1.3208 s/op | 1.1878 s/op | 1.11 |
| migrate state 1000000 validators, 3400 modified, 2000 new | 1.9729 s/op | 1.2718 s/op | 1.55 |
| migrate state 1500000 validators, 24 modified, 0 new | 1.4678 s/op | 937.77 ms/op | 1.57 |
| migrate state 1500000 validators, 1700 modified, 1000 new | 2.1094 s/op | 1.1149 s/op | 1.89 |
| migrate state 1500000 validators, 3400 modified, 2000 new | 2.9522 s/op | 1.2844 s/op | 2.30 |
| RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 13.810 ns/op | 4.1600 ns/op | 3.32 |
| state getBlockRootAtSlot - 250000 vs - 7PWei | 1.5406 us/op | 700.58 ns/op | 2.20 |
| naive computeProposerIndex 100000 validators | 140.54 ms/op | 52.637 ms/op | 2.67 |
| computeProposerIndex 100000 validators | 5.6302 ms/op | 1.5009 ms/op | 3.75 |
| naiveGetNextSyncCommitteeIndices 1000 validators | 16.103 s/op | 7.2299 s/op | 2.23 |
| getNextSyncCommitteeIndices 1000 validators | 244.60 ms/op | 114.62 ms/op | 2.13 |
| naiveGetNextSyncCommitteeIndices 10000 validators | 11.907 s/op | 8.1215 s/op | 1.47 |
| getNextSyncCommitteeIndices 10000 validators | 155.18 ms/op | 122.22 ms/op | 1.27 |
| naiveGetNextSyncCommitteeIndices 100000 validators | 13.885 s/op | 8.1775 s/op | 1.70 |
| getNextSyncCommitteeIndices 100000 validators | 145.70 ms/op | 113.57 ms/op | 1.28 |
| naive computeShuffledIndex 100000 validators | 28.904 s/op | 24.019 s/op | 1.20 |
| cached computeShuffledIndex 100000 validators | 870.52 ms/op | 548.79 ms/op | 1.59 |
| naive computeShuffledIndex 2000000 validators | 1466.2 s/op | 519.74 s/op | 2.82 |
| cached computeShuffledIndex 2000000 validators | 177.30 s/op | 29.208 s/op | 6.07 |
| computeProposers - vc 250000 | 4.4820 ms/op | 618.53 us/op | 7.25 |
| computeEpochShuffling - vc 250000 | 225.12 ms/op | 40.998 ms/op | 5.49 |
| getNextSyncCommittee - vc 250000 | 64.480 ms/op | 9.9116 ms/op | 6.51 |
| computeSigningRoot for AttestationData | 213.91 us/op | 19.985 us/op | 10.70 |
| hash AttestationData serialized data then Buffer.toString(base64) | 12.089 us/op | 1.5615 us/op | 7.74 |
| toHexString serialized data | 20.430 us/op | 1.0785 us/op | 18.94 |
| Buffer.toString(base64) | 784.29 ns/op | 138.17 ns/op | 5.68 |
| nodejs block root to RootHex using toHex | 650.00 ns/op | 140.45 ns/op | 4.63 |
| nodejs block root to RootHex using toRootHex | 407.77 ns/op | 88.301 ns/op | 4.62 |
| nodejs fromhex(blob) | 520.40 ms/op | 105.50 ms/op | 4.93 |
| nodejs fromHexInto(blob) | 538.88 ms/op | 92.089 ms/op | 5.85 |
| browser block root to RootHex using the deprecated toHexString | 7.3420 us/op | 204.68 ns/op | 35.87 |
| browser block root to RootHex using toHex | 5.8905 us/op | 158.61 ns/op | 37.14 |
| browser block root to RootHex using toRootHex | 1.2969 us/op | 147.93 ns/op | 8.77 |
| browser fromHexInto(blob) | 4.8488 ms/op | 761.24 us/op | 6.37 |
| browser fromHex(blob) | 3.3480 s/op | 773.08 ms/op | 4.33 |
by benchmarkbot/action
|
🎉 This PR is included in v1.35.0 🎉 |
Motivation
closes #8196
Need to move over some comment fixes from #7947 that got closed and the work was merged via separate PR.
Comments addressed are:
#7947 (comment)
#7947 (comment)