Skip to content

Conversation

@ensi321
Copy link
Contributor

@ensi321 ensi321 commented Nov 5, 2025

Enable gloas spec test and skip any non-ssz_static gloas tests.

Also skipping ForkChoiceNode because it is not necessary. See https://discord.com/channels/595666850260713488/874767108809031740/1420966514709889084

@ensi321 ensi321 requested a review from a team as a code owner November 5, 2025 00:57
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @ensi321, 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 integrates the gloas specification tests into the testing suite, specifically enabling ssz_static tests for the gloas fork while carefully managing which tests are run. It also updates the project's dependency on the Ethereum consensus specifications to a newer beta version and includes a minor structural update to the DataColumnSidecar type to reflect recent protocol changes.

Highlights

  • GLOAS Spec Tests Enabled: The gloas specification tests have been enabled, specifically focusing on ssz_static tests while skipping others and the ForkChoiceNode.
  • Consensus Spec Version Update: The project's dependency on the Ethereum consensus specifications has been updated from v1.6.0-beta.0 to v1.6.0-beta.2.
  • DataColumnSidecar Type Update: A new slot field has been added to the DataColumnSidecar type within the gloas SSZ types, aligning with GLOAS:EIP7732.
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 enables the gloas spec tests. The changes include updating the consensus-specs version to v1.6.0-beta.2, modifying the test skip configuration to run gloas ssz_static tests (while skipping others and ForkChoiceNode), and fixing the DataColumnSidecar SSZ type definition for gloas to align with the specification. The changes are correct, consistent, and effectively achieve the goal of enabling and running the intended gloas spec tests.

@codecov
Copy link

codecov bot commented Nov 5, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 51.96%. Comparing base (6832b02) to head (0cc4863).
⚠️ Report is 8 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #8609      +/-   ##
============================================
- Coverage     51.99%   51.96%   -0.04%     
============================================
  Files           848      848              
  Lines         65857    65963     +106     
  Branches       4808     4814       +6     
============================================
+ Hits          34242    34276      +34     
- Misses        31547    31618      +71     
- Partials         68       69       +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.

@nflaig
Copy link
Member

nflaig commented Nov 5, 2025

spec tests aren't passing

Error: Error: Unknown testType compatible_unions
 ❯ getTestType test/spec/general/ssz_generic_types.ts:166:13
 ❯ test/spec/general/ssz_generic.ts:54:24

@github-actions
Copy link
Contributor

github-actions bot commented Nov 6, 2025

⚠️ Performance Alert ⚠️

Possible performance regression was detected for some benchmarks.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold.

Benchmark suite Current: 8ba163e Previous: 983ef10 Ratio
getSlashingsAndExits - default max 162.39 us/op 50.425 us/op 3.22
Full columns - reconstruct all 6 blobs 140.26 us/op 46.300 us/op 3.03
Full columns - reconstruct half of the blobs out of 6 79.410 us/op 25.948 us/op 3.06
Full columns - reconstruct all 10 blobs 269.92 us/op 63.149 us/op 4.27
Full columns - reconstruct half of the blobs out of 10 116.23 us/op 35.335 us/op 3.29
Full columns - reconstruct all 20 blobs 615.44 us/op 143.27 us/op 4.30
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 5.6100 ms/op 1.4338 ms/op 3.91
Full benchmark results
Benchmark suite Current: 8ba163e Previous: 983ef10 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 966.07 us/op 784.53 us/op 1.23
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 37.033 us/op 30.842 us/op 1.20
BLS verify - blst 901.07 us/op 906.17 us/op 0.99
BLS verifyMultipleSignatures 3 - blst 1.2400 ms/op 1.3158 ms/op 0.94
BLS verifyMultipleSignatures 8 - blst 1.8959 ms/op 2.2527 ms/op 0.84
BLS verifyMultipleSignatures 32 - blst 5.7059 ms/op 4.4765 ms/op 1.27
BLS verifyMultipleSignatures 64 - blst 10.821 ms/op 8.3553 ms/op 1.30
BLS verifyMultipleSignatures 128 - blst 17.383 ms/op 15.873 ms/op 1.10
BLS deserializing 10000 signatures 695.32 ms/op 635.27 ms/op 1.09
BLS deserializing 100000 signatures 6.9438 s/op 6.6324 s/op 1.05
BLS verifyMultipleSignatures - same message - 3 - blst 1.0311 ms/op 824.19 us/op 1.25
BLS verifyMultipleSignatures - same message - 8 - blst 1.1525 ms/op 1.1139 ms/op 1.03
BLS verifyMultipleSignatures - same message - 32 - blst 1.7026 ms/op 1.7542 ms/op 0.97
BLS verifyMultipleSignatures - same message - 64 - blst 2.6089 ms/op 2.8471 ms/op 0.92
BLS verifyMultipleSignatures - same message - 128 - blst 4.3502 ms/op 4.6437 ms/op 0.94
BLS aggregatePubkeys 32 - blst 20.919 us/op 20.698 us/op 1.01
BLS aggregatePubkeys 128 - blst 70.302 us/op 63.539 us/op 1.11
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 56.894 ms/op 42.110 ms/op 1.35
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 58.221 ms/op 48.546 ms/op 1.20
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 43.274 ms/op 33.394 ms/op 1.30
getSlashingsAndExits - default max 162.39 us/op 50.425 us/op 3.22
getSlashingsAndExits - 2k 385.00 us/op 309.41 us/op 1.24
isKnown best case - 1 super set check 204.00 ns/op 425.00 ns/op 0.48
isKnown normal case - 2 super set checks 202.00 ns/op 416.00 ns/op 0.49
isKnown worse case - 16 super set checks 198.00 ns/op 425.00 ns/op 0.47
InMemoryCheckpointStateCache - add get delete 2.3710 us/op 2.8190 us/op 0.84
validate api signedAggregateAndProof - struct 1.5779 ms/op 1.6883 ms/op 0.93
validate gossip signedAggregateAndProof - struct 1.4805 ms/op 1.5099 ms/op 0.98
batch validate gossip attestation - vc 640000 - chunk 32 128.59 us/op 107.30 us/op 1.20
batch validate gossip attestation - vc 640000 - chunk 64 113.70 us/op 91.883 us/op 1.24
batch validate gossip attestation - vc 640000 - chunk 128 103.08 us/op 84.159 us/op 1.22
batch validate gossip attestation - vc 640000 - chunk 256 103.09 us/op 85.967 us/op 1.20
pickEth1Vote - no votes 957.38 us/op 800.36 us/op 1.20
pickEth1Vote - max votes 8.8487 ms/op 5.1930 ms/op 1.70
pickEth1Vote - Eth1Data hashTreeRoot value x2048 12.258 ms/op 8.9736 ms/op 1.37
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 21.182 ms/op 21.094 ms/op 1.00
pickEth1Vote - Eth1Data fastSerialize value x2048 429.78 us/op 323.55 us/op 1.33
pickEth1Vote - Eth1Data fastSerialize tree x2048 4.5936 ms/op 2.5832 ms/op 1.78
bytes32 toHexString 387.00 ns/op 520.00 ns/op 0.74
bytes32 Buffer.toString(hex) 274.00 ns/op 403.00 ns/op 0.68
bytes32 Buffer.toString(hex) from Uint8Array 329.00 ns/op 473.00 ns/op 0.70
bytes32 Buffer.toString(hex) + 0x 240.00 ns/op 402.00 ns/op 0.60
Object access 1 prop 0.13200 ns/op 0.30100 ns/op 0.44
Map access 1 prop 0.13000 ns/op 0.30800 ns/op 0.42
Object get x1000 5.7220 ns/op 5.0130 ns/op 1.14
Map get x1000 6.4450 ns/op 5.8330 ns/op 1.10
Object set x1000 29.502 ns/op 18.722 ns/op 1.58
Map set x1000 20.754 ns/op 16.405 ns/op 1.27
Return object 10000 times 0.29040 ns/op 0.29610 ns/op 0.98
Throw Error 10000 times 4.3179 us/op 3.4613 us/op 1.25
toHex 145.66 ns/op 107.60 ns/op 1.35
Buffer.from 129.53 ns/op 88.279 ns/op 1.47
shared Buffer 89.731 ns/op 62.338 ns/op 1.44
fastMsgIdFn sha256 / 200 bytes 2.3510 us/op 1.9770 us/op 1.19
fastMsgIdFn h32 xxhash / 200 bytes 208.00 ns/op 376.00 ns/op 0.55
fastMsgIdFn h64 xxhash / 200 bytes 260.00 ns/op 829.00 ns/op 0.31
fastMsgIdFn sha256 / 1000 bytes 7.3840 us/op 8.0270 us/op 0.92
fastMsgIdFn h32 xxhash / 1000 bytes 336.00 ns/op 691.00 ns/op 0.49
fastMsgIdFn h64 xxhash / 1000 bytes 358.00 ns/op 787.00 ns/op 0.45
fastMsgIdFn sha256 / 10000 bytes 65.926 us/op 47.861 us/op 1.38
fastMsgIdFn h32 xxhash / 10000 bytes 1.8450 us/op 2.3410 us/op 0.79
fastMsgIdFn h64 xxhash / 10000 bytes 1.2020 us/op 1.6530 us/op 0.73
100 bytes - compress - snappyjs 1.4392 us/op 1.5596 us/op 0.92
100 bytes - compress - snappy 1.0823 us/op 963.63 ns/op 1.12
100 bytes - compress - #snappy 1.3584 us/op 1.6006 us/op 0.85
200 bytes - compress - snappyjs 1.9108 us/op 1.7983 us/op 1.06
200 bytes - compress - snappy 1.2649 us/op 977.32 ns/op 1.29
200 bytes - compress - #snappy 1.6625 us/op 1.9005 us/op 0.87
300 bytes - compress - snappyjs 2.3744 us/op 2.3685 us/op 1.00
300 bytes - compress - snappy 1.2401 us/op 989.70 ns/op 1.25
300 bytes - compress - #snappy 2.3415 us/op 2.2701 us/op 1.03
400 bytes - compress - snappyjs 2.4820 us/op 2.6242 us/op 0.95
400 bytes - compress - snappy 1.2970 us/op 997.60 ns/op 1.30
400 bytes - compress - #snappy 2.5625 us/op 2.0883 us/op 1.23
500 bytes - compress - snappyjs 3.0521 us/op 2.3871 us/op 1.28
500 bytes - compress - snappy 1.3054 us/op 1.0782 us/op 1.21
500 bytes - compress - #snappy 2.8499 us/op 2.3655 us/op 1.20
1000 bytes - compress - snappyjs 5.3206 us/op 3.6480 us/op 1.46
1000 bytes - compress - snappy 1.5174 us/op 1.3800 us/op 1.10
1000 bytes - compress - #snappy 4.4197 us/op 3.6287 us/op 1.22
10000 bytes - compress - snappyjs 29.795 us/op 24.815 us/op 1.20
10000 bytes - compress - snappy 28.923 us/op 22.300 us/op 1.30
10000 bytes - compress - #snappy 30.634 us/op 24.182 us/op 1.27
100 bytes - uncompress - snappyjs 908.50 ns/op 637.15 ns/op 1.43
100 bytes - uncompress - snappy 1.0592 us/op 786.98 ns/op 1.35
100 bytes - uncompress - #snappy 864.38 ns/op 551.39 ns/op 1.57
200 bytes - uncompress - snappyjs 915.42 ns/op 1.3370 us/op 0.68
200 bytes - uncompress - snappy 1.0624 us/op 844.25 ns/op 1.26
200 bytes - uncompress - #snappy 940.49 ns/op 1.4138 us/op 0.67
300 bytes - uncompress - snappyjs 1.3252 us/op 1.9097 us/op 0.69
300 bytes - uncompress - snappy 1.1045 us/op 837.94 ns/op 1.32
300 bytes - uncompress - #snappy 1.2907 us/op 1.4747 us/op 0.88
400 bytes - uncompress - snappyjs 1.2668 us/op 2.1608 us/op 0.59
400 bytes - uncompress - snappy 1.1413 us/op 910.55 ns/op 1.25
400 bytes - uncompress - #snappy 1.1751 us/op 1.4682 us/op 0.80
500 bytes - uncompress - snappyjs 1.7821 us/op 1.4887 us/op 1.20
500 bytes - uncompress - snappy 1.2444 us/op 947.59 ns/op 1.31
500 bytes - uncompress - #snappy 1.3865 us/op 1.6877 us/op 0.82
1000 bytes - uncompress - snappyjs 2.2709 us/op 2.0539 us/op 1.11
1000 bytes - uncompress - snappy 1.6994 us/op 1.2322 us/op 1.38
1000 bytes - uncompress - #snappy 2.2013 us/op 1.9317 us/op 1.14
10000 bytes - uncompress - snappyjs 15.699 us/op 11.274 us/op 1.39
10000 bytes - uncompress - snappy 30.718 us/op 34.700 us/op 0.89
10000 bytes - uncompress - #snappy 13.558 us/op 11.721 us/op 1.16
send data - 1000 256B messages 17.915 ms/op 11.910 ms/op 1.50
send data - 1000 512B messages 21.525 ms/op 16.760 ms/op 1.28
send data - 1000 1024B messages 29.140 ms/op 22.726 ms/op 1.28
send data - 1000 1200B messages 27.096 ms/op 20.251 ms/op 1.34
send data - 1000 2048B messages 27.359 ms/op 22.180 ms/op 1.23
send data - 1000 4096B messages 32.511 ms/op 23.551 ms/op 1.38
send data - 1000 16384B messages 46.599 ms/op 27.133 ms/op 1.72
send data - 1000 65536B messages 117.29 ms/op 64.929 ms/op 1.81
enrSubnets - fastDeserialize 64 bits 956.00 ns/op 947.00 ns/op 1.01
enrSubnets - ssz BitVector 64 bits 342.00 ns/op 469.00 ns/op 0.73
enrSubnets - fastDeserialize 4 bits 130.00 ns/op 324.00 ns/op 0.40
enrSubnets - ssz BitVector 4 bits 354.00 ns/op 501.00 ns/op 0.71
prioritizePeers score -10:0 att 32-0.1 sync 2-0 239.68 us/op 194.49 us/op 1.23
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 265.50 us/op 225.24 us/op 1.18
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 397.55 us/op 370.54 us/op 1.07
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 752.79 us/op 647.39 us/op 1.16
prioritizePeers score 0:0 att 64-1 sync 4-1 848.48 us/op 776.27 us/op 1.09
array of 16000 items push then shift 1.6450 us/op 1.2840 us/op 1.28
LinkedList of 16000 items push then shift 7.7050 ns/op 6.3540 ns/op 1.21
array of 16000 items push then pop 79.616 ns/op 60.900 ns/op 1.31
LinkedList of 16000 items push then pop 7.6450 ns/op 6.2450 ns/op 1.22
array of 24000 items push then shift 2.4370 us/op 1.9850 us/op 1.23
LinkedList of 24000 items push then shift 9.4260 ns/op 6.3630 ns/op 1.48
array of 24000 items push then pop 129.16 ns/op 85.407 ns/op 1.51
LinkedList of 24000 items push then pop 8.7830 ns/op 6.2810 ns/op 1.40
intersect bitArray bitLen 8 6.5790 ns/op 5.4210 ns/op 1.21
intersect array and set length 8 43.380 ns/op 32.462 ns/op 1.34
intersect bitArray bitLen 128 31.000 ns/op 26.762 ns/op 1.16
intersect array and set length 128 682.47 ns/op 542.99 ns/op 1.26
bitArray.getTrueBitIndexes() bitLen 128 1.1990 us/op 1.1180 us/op 1.07
bitArray.getTrueBitIndexes() bitLen 248 2.0820 us/op 1.7700 us/op 1.18
bitArray.getTrueBitIndexes() bitLen 512 4.4640 us/op 3.2500 us/op 1.37
Full columns - reconstruct all 6 blobs 140.26 us/op 46.300 us/op 3.03
Full columns - reconstruct half of the blobs out of 6 79.410 us/op 25.948 us/op 3.06
Full columns - reconstruct single blob out of 6 31.638 us/op 12.336 us/op 2.56
Half columns - reconstruct all 6 blobs 290.39 ms/op 234.26 ms/op 1.24
Half columns - reconstruct half of the blobs out of 6 144.99 ms/op 117.94 ms/op 1.23
Half columns - reconstruct single blob out of 6 56.384 ms/op 44.331 ms/op 1.27
Full columns - reconstruct all 10 blobs 269.92 us/op 63.149 us/op 4.27
Full columns - reconstruct half of the blobs out of 10 116.23 us/op 35.335 us/op 3.29
Full columns - reconstruct single blob out of 10 28.641 us/op 12.233 us/op 2.34
Half columns - reconstruct all 10 blobs 484.86 ms/op 386.71 ms/op 1.25
Half columns - reconstruct half of the blobs out of 10 246.45 ms/op 201.65 ms/op 1.22
Half columns - reconstruct single blob out of 10 55.436 ms/op 45.168 ms/op 1.23
Full columns - reconstruct all 20 blobs 615.44 us/op 143.27 us/op 4.30
Full columns - reconstruct half of the blobs out of 20 196.54 us/op 66.822 us/op 2.94
Full columns - reconstruct single blob out of 20 26.607 us/op 11.962 us/op 2.22
Half columns - reconstruct all 20 blobs 978.59 ms/op 781.41 ms/op 1.25
Half columns - reconstruct half of the blobs out of 20 496.11 ms/op 396.04 ms/op 1.25
Half columns - reconstruct single blob out of 20 55.333 ms/op 44.902 ms/op 1.23
Buffer.concat 32 items 751.00 ns/op 774.00 ns/op 0.97
Uint8Array.set 32 items 1.3160 us/op 1.0630 us/op 1.24
Buffer.copy 2.4540 us/op 2.0260 us/op 1.21
Uint8Array.set - with subarray 2.2070 us/op 1.6310 us/op 1.35
Uint8Array.set - without subarray 1.1620 us/op 1.0800 us/op 1.08
getUint32 - dataview 208.00 ns/op 367.00 ns/op 0.57
getUint32 - manual 140.00 ns/op 294.00 ns/op 0.48
Set add up to 64 items then delete first 2.7803 us/op 1.6622 us/op 1.67
OrderedSet add up to 64 items then delete first 4.7988 us/op 2.8077 us/op 1.71
Set add up to 64 items then delete last 3.4100 us/op 1.8203 us/op 1.87
OrderedSet add up to 64 items then delete last 5.5955 us/op 3.0709 us/op 1.82
Set add up to 64 items then delete middle 3.4456 us/op 1.8991 us/op 1.81
OrderedSet add up to 64 items then delete middle 7.3222 us/op 4.6211 us/op 1.58
Set add up to 128 items then delete first 6.9704 us/op 4.0026 us/op 1.74
OrderedSet add up to 128 items then delete first 12.097 us/op 6.5047 us/op 1.86
Set add up to 128 items then delete last 7.0730 us/op 3.8668 us/op 1.83
OrderedSet add up to 128 items then delete last 12.282 us/op 6.1171 us/op 2.01
Set add up to 128 items then delete middle 7.0106 us/op 3.8766 us/op 1.81
OrderedSet add up to 128 items then delete middle 19.526 us/op 12.270 us/op 1.59
Set add up to 256 items then delete first 15.599 us/op 7.8841 us/op 1.98
OrderedSet add up to 256 items then delete first 23.222 us/op 12.036 us/op 1.93
Set add up to 256 items then delete last 15.178 us/op 7.3838 us/op 2.06
OrderedSet add up to 256 items then delete last 24.117 us/op 11.281 us/op 2.14
Set add up to 256 items then delete middle 15.076 us/op 7.6056 us/op 1.98
OrderedSet add up to 256 items then delete middle 51.454 us/op 35.599 us/op 1.45
transfer serialized Status (84 B) 3.1570 us/op 2.0440 us/op 1.54
copy serialized Status (84 B) 1.8430 us/op 1.2660 us/op 1.46
transfer serialized SignedVoluntaryExit (112 B) 3.4760 us/op 2.0990 us/op 1.66
copy serialized SignedVoluntaryExit (112 B) 2.6940 us/op 1.2810 us/op 2.10
transfer serialized ProposerSlashing (416 B) 3.5490 us/op 2.5200 us/op 1.41
copy serialized ProposerSlashing (416 B) 2.7270 us/op 1.7420 us/op 1.57
transfer serialized Attestation (485 B) 4.1150 us/op 2.2740 us/op 1.81
copy serialized Attestation (485 B) 2.4570 us/op 1.5430 us/op 1.59
transfer serialized AttesterSlashing (33232 B) 4.6990 us/op 2.2790 us/op 2.06
copy serialized AttesterSlashing (33232 B) 8.2160 us/op 3.9840 us/op 2.06
transfer serialized Small SignedBeaconBlock (128000 B) 5.4900 us/op 2.4380 us/op 2.25
copy serialized Small SignedBeaconBlock (128000 B) 23.172 us/op 8.4110 us/op 2.75
transfer serialized Avg SignedBeaconBlock (200000 B) 6.9230 us/op 4.3070 us/op 1.61
copy serialized Avg SignedBeaconBlock (200000 B) 36.163 us/op 10.977 us/op 3.29
transfer serialized BlobsSidecar (524380 B) 7.1460 us/op 5.3450 us/op 1.34
copy serialized BlobsSidecar (524380 B) 102.47 us/op 88.788 us/op 1.15
transfer serialized Big SignedBeaconBlock (1000000 B) 7.8970 us/op 5.3640 us/op 1.47
copy serialized Big SignedBeaconBlock (1000000 B) 201.87 us/op 108.71 us/op 1.86
pass gossip attestations to forkchoice per slot 2.9809 ms/op 2.3931 ms/op 1.25
forkChoice updateHead vc 100000 bc 64 eq 0 502.80 us/op 415.33 us/op 1.21
forkChoice updateHead vc 600000 bc 64 eq 0 2.9938 ms/op 2.4911 ms/op 1.20
forkChoice updateHead vc 1000000 bc 64 eq 0 5.0891 ms/op 4.1794 ms/op 1.22
forkChoice updateHead vc 600000 bc 320 eq 0 3.0025 ms/op 2.4890 ms/op 1.21
forkChoice updateHead vc 600000 bc 1200 eq 0 3.2322 ms/op 2.3584 ms/op 1.37
forkChoice updateHead vc 600000 bc 7200 eq 0 3.5624 ms/op 2.7391 ms/op 1.30
forkChoice updateHead vc 600000 bc 64 eq 1000 3.1154 ms/op 2.7255 ms/op 1.14
forkChoice updateHead vc 600000 bc 64 eq 10000 3.2204 ms/op 2.7186 ms/op 1.18
forkChoice updateHead vc 600000 bc 64 eq 300000 11.524 ms/op 7.1185 ms/op 1.62
computeDeltas 1400000 validators 0% inactive 14.566 ms/op 11.771 ms/op 1.24
computeDeltas 1400000 validators 10% inactive 13.416 ms/op 11.296 ms/op 1.19
computeDeltas 1400000 validators 20% inactive 11.885 ms/op 9.5460 ms/op 1.24
computeDeltas 1400000 validators 50% inactive 9.0253 ms/op 6.9232 ms/op 1.30
computeDeltas 2100000 validators 0% inactive 21.497 ms/op 16.020 ms/op 1.34
computeDeltas 2100000 validators 10% inactive 19.948 ms/op 14.979 ms/op 1.33
computeDeltas 2100000 validators 20% inactive 18.408 ms/op 14.333 ms/op 1.28
computeDeltas 2100000 validators 50% inactive 14.129 ms/op 10.958 ms/op 1.29
altair processAttestation - 250000 vs - 7PWei normalcase 4.0088 ms/op 1.6624 ms/op 2.41
altair processAttestation - 250000 vs - 7PWei worstcase 3.7053 ms/op 2.5206 ms/op 1.47
altair processAttestation - setStatus - 1/6 committees join 162.07 us/op 94.893 us/op 1.71
altair processAttestation - setStatus - 1/3 committees join 281.35 us/op 182.96 us/op 1.54
altair processAttestation - setStatus - 1/2 committees join 363.52 us/op 295.00 us/op 1.23
altair processAttestation - setStatus - 2/3 committees join 494.63 us/op 360.11 us/op 1.37
altair processAttestation - setStatus - 4/5 committees join 707.98 us/op 497.08 us/op 1.42
altair processAttestation - setStatus - 100% committees join 777.86 us/op 587.86 us/op 1.32
altair processBlock - 250000 vs - 7PWei normalcase 5.9912 ms/op 3.4912 ms/op 1.72
altair processBlock - 250000 vs - 7PWei normalcase hashState 35.853 ms/op 26.316 ms/op 1.36
altair processBlock - 250000 vs - 7PWei worstcase 40.285 ms/op 36.507 ms/op 1.10
altair processBlock - 250000 vs - 7PWei worstcase hashState 84.737 ms/op 83.071 ms/op 1.02
phase0 processBlock - 250000 vs - 7PWei normalcase 2.3617 ms/op 1.6912 ms/op 1.40
phase0 processBlock - 250000 vs - 7PWei worstcase 25.976 ms/op 22.596 ms/op 1.15
altair processEth1Data - 250000 vs - 7PWei normalcase 363.52 us/op 256.42 us/op 1.42
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.9800 us/op 5.2080 us/op 1.34
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 60.542 us/op 32.815 us/op 1.84
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 11.401 us/op 12.115 us/op 0.94
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.7030 us/op 6.9090 us/op 0.97
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 225.32 us/op 148.74 us/op 1.51
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 2.0066 ms/op 1.3617 ms/op 1.47
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.8138 ms/op 1.6350 ms/op 1.72
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.7833 ms/op 1.6774 ms/op 1.66
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 6.3064 ms/op 3.6714 ms/op 1.72
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.7901 ms/op 1.8530 ms/op 1.51
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.1454 ms/op 3.2845 ms/op 1.57
Tree 40 250000 create 541.07 ms/op 329.95 ms/op 1.64
Tree 40 250000 get(125000) 147.83 ns/op 107.78 ns/op 1.37
Tree 40 250000 set(125000) 2.0879 us/op 1.1893 us/op 1.76
Tree 40 250000 toArray() 22.603 ms/op 9.5400 ms/op 2.37
Tree 40 250000 iterate all - toArray() + loop 24.201 ms/op 9.4948 ms/op 2.55
Tree 40 250000 iterate all - get(i) 62.494 ms/op 40.667 ms/op 1.54
Array 250000 create 4.2369 ms/op 2.3046 ms/op 1.84
Array 250000 clone - spread 1.6497 ms/op 626.86 us/op 2.63
Array 250000 get(125000) 0.41200 ns/op 0.56300 ns/op 0.73
Array 250000 set(125000) 0.44200 ns/op 0.58400 ns/op 0.76
Array 250000 iterate all - loop 103.88 us/op 76.887 us/op 1.35
phase0 afterProcessEpoch - 250000 vs - 7PWei 43.639 ms/op 37.983 ms/op 1.15
Array.fill - length 1000000 4.1418 ms/op 2.3804 ms/op 1.74
Array push - length 1000000 15.125 ms/op 9.8893 ms/op 1.53
Array.get 0.29299 ns/op 0.24619 ns/op 1.19
Uint8Array.get 0.46326 ns/op 0.31500 ns/op 1.47
phase0 beforeProcessEpoch - 250000 vs - 7PWei 23.823 ms/op 12.687 ms/op 1.88
altair processEpoch - mainnet_e81889 341.97 ms/op 271.50 ms/op 1.26
mainnet_e81889 - altair beforeProcessEpoch 23.686 ms/op 14.982 ms/op 1.58
mainnet_e81889 - altair processJustificationAndFinalization 8.4150 us/op 4.5180 us/op 1.86
mainnet_e81889 - altair processInactivityUpdates 6.2422 ms/op 3.1548 ms/op 1.98
mainnet_e81889 - altair processRewardsAndPenalties 44.881 ms/op 42.799 ms/op 1.05
mainnet_e81889 - altair processRegistryUpdates 858.00 ns/op 789.00 ns/op 1.09
mainnet_e81889 - altair processSlashings 187.00 ns/op 395.00 ns/op 0.47
mainnet_e81889 - altair processEth1DataReset 194.00 ns/op 394.00 ns/op 0.49
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.3259 ms/op 902.08 us/op 1.47
mainnet_e81889 - altair processSlashingsReset 1.0050 us/op 990.00 ns/op 1.02
mainnet_e81889 - altair processRandaoMixesReset 1.3660 us/op 1.1490 us/op 1.19
mainnet_e81889 - altair processHistoricalRootsUpdate 185.00 ns/op 373.00 ns/op 0.50
mainnet_e81889 - altair processParticipationFlagUpdates 574.00 ns/op 648.00 ns/op 0.89
mainnet_e81889 - altair processSyncCommitteeUpdates 153.00 ns/op 334.00 ns/op 0.46
mainnet_e81889 - altair afterProcessEpoch 46.748 ms/op 39.984 ms/op 1.17
capella processEpoch - mainnet_e217614 1.1251 s/op 897.64 ms/op 1.25
mainnet_e217614 - capella beforeProcessEpoch 74.963 ms/op 56.318 ms/op 1.33
mainnet_e217614 - capella processJustificationAndFinalization 6.1390 us/op 4.3850 us/op 1.40
mainnet_e217614 - capella processInactivityUpdates 16.464 ms/op 11.545 ms/op 1.43
mainnet_e217614 - capella processRewardsAndPenalties 208.62 ms/op 190.09 ms/op 1.10
mainnet_e217614 - capella processRegistryUpdates 7.3960 us/op 5.3000 us/op 1.40
mainnet_e217614 - capella processSlashings 197.00 ns/op 394.00 ns/op 0.50
mainnet_e217614 - capella processEth1DataReset 202.00 ns/op 390.00 ns/op 0.52
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.5196 ms/op 3.1142 ms/op 1.45
mainnet_e217614 - capella processSlashingsReset 981.00 ns/op 1.0680 us/op 0.92
mainnet_e217614 - capella processRandaoMixesReset 1.3790 us/op 1.2240 us/op 1.13
mainnet_e217614 - capella processHistoricalRootsUpdate 261.00 ns/op 399.00 ns/op 0.65
mainnet_e217614 - capella processParticipationFlagUpdates 625.00 ns/op 669.00 ns/op 0.93
mainnet_e217614 - capella afterProcessEpoch 124.58 ms/op 109.79 ms/op 1.13
phase0 processEpoch - mainnet_e58758 333.44 ms/op 279.41 ms/op 1.19
mainnet_e58758 - phase0 beforeProcessEpoch 88.392 ms/op 68.912 ms/op 1.28
mainnet_e58758 - phase0 processJustificationAndFinalization 5.9680 us/op 4.6360 us/op 1.29
mainnet_e58758 - phase0 processRewardsAndPenalties 36.715 ms/op 37.425 ms/op 0.98
mainnet_e58758 - phase0 processRegistryUpdates 3.4710 us/op 2.6600 us/op 1.30
mainnet_e58758 - phase0 processSlashings 182.00 ns/op 378.00 ns/op 0.48
mainnet_e58758 - phase0 processEth1DataReset 188.00 ns/op 392.00 ns/op 0.48
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.5231 ms/op 969.79 us/op 1.57
mainnet_e58758 - phase0 processSlashingsReset 1.1540 us/op 943.00 ns/op 1.22
mainnet_e58758 - phase0 processRandaoMixesReset 1.3970 us/op 1.4710 us/op 0.95
mainnet_e58758 - phase0 processHistoricalRootsUpdate 262.00 ns/op 394.00 ns/op 0.66
mainnet_e58758 - phase0 processParticipationRecordUpdates 1.3660 us/op 1.1470 us/op 1.19
mainnet_e58758 - phase0 afterProcessEpoch 38.570 ms/op 42.939 ms/op 0.90
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.7387 ms/op 870.89 us/op 2.00
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 5.6100 ms/op 1.4338 ms/op 3.91
altair processInactivityUpdates - 250000 normalcase 21.087 ms/op 13.920 ms/op 1.51
altair processInactivityUpdates - 250000 worstcase 24.350 ms/op 15.880 ms/op 1.53
phase0 processRegistryUpdates - 250000 normalcase 7.5650 us/op 3.0940 us/op 2.45
phase0 processRegistryUpdates - 250000 badcase_full_deposits 339.36 us/op 285.96 us/op 1.19
phase0 processRegistryUpdates - 250000 worstcase 0.5 118.88 ms/op 96.831 ms/op 1.23
altair processRewardsAndPenalties - 250000 normalcase 31.714 ms/op 26.314 ms/op 1.21
altair processRewardsAndPenalties - 250000 worstcase 32.533 ms/op 25.177 ms/op 1.29
phase0 getAttestationDeltas - 250000 normalcase 8.7312 ms/op 5.2009 ms/op 1.68
phase0 getAttestationDeltas - 250000 worstcase 6.9100 ms/op 5.0238 ms/op 1.38
phase0 processSlashings - 250000 worstcase 144.23 us/op 81.458 us/op 1.77
altair processSyncCommitteeUpdates - 250000 13.657 ms/op 9.8594 ms/op 1.39
BeaconState.hashTreeRoot - No change 259.00 ns/op 425.00 ns/op 0.61
BeaconState.hashTreeRoot - 1 full validator 111.10 us/op 84.529 us/op 1.31
BeaconState.hashTreeRoot - 32 full validator 1.2868 ms/op 974.58 us/op 1.32
BeaconState.hashTreeRoot - 512 full validator 14.410 ms/op 11.234 ms/op 1.28
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 152.77 us/op 101.37 us/op 1.51
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.8348 ms/op 2.5860 ms/op 0.71
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 28.495 ms/op 30.589 ms/op 0.93
BeaconState.hashTreeRoot - 1 balances 111.74 us/op 80.044 us/op 1.40
BeaconState.hashTreeRoot - 32 balances 1.0646 ms/op 799.13 us/op 1.33
BeaconState.hashTreeRoot - 512 balances 10.963 ms/op 6.2657 ms/op 1.75
BeaconState.hashTreeRoot - 250000 balances 232.33 ms/op 153.80 ms/op 1.51
aggregationBits - 2048 els - zipIndexesInBitList 26.868 us/op 16.806 us/op 1.60
byteArrayEquals 32 58.357 ns/op 48.164 ns/op 1.21
Buffer.compare 32 19.208 ns/op 15.503 ns/op 1.24
byteArrayEquals 1024 1.7258 us/op 1.2724 us/op 1.36
Buffer.compare 1024 28.915 ns/op 24.484 ns/op 1.18
byteArrayEquals 16384 27.516 us/op 20.276 us/op 1.36
Buffer.compare 16384 201.74 ns/op 172.88 ns/op 1.17
byteArrayEquals 123687377 206.96 ms/op 138.10 ms/op 1.50
Buffer.compare 123687377 9.5391 ms/op 5.2576 ms/op 1.81
byteArrayEquals 32 - diff last byte 59.063 ns/op 43.215 ns/op 1.37
Buffer.compare 32 - diff last byte 19.071 ns/op 14.480 ns/op 1.32
byteArrayEquals 1024 - diff last byte 1.7434 us/op 1.1532 us/op 1.51
Buffer.compare 1024 - diff last byte 28.585 ns/op 22.037 ns/op 1.30
byteArrayEquals 16384 - diff last byte 27.254 us/op 18.565 us/op 1.47
Buffer.compare 16384 - diff last byte 200.94 ns/op 154.71 ns/op 1.30
byteArrayEquals 123687377 - diff last byte 207.74 ms/op 139.35 ms/op 1.49
Buffer.compare 123687377 - diff last byte 10.188 ms/op 4.8638 ms/op 2.09
byteArrayEquals 32 - random bytes 5.6080 ns/op 4.6650 ns/op 1.20
Buffer.compare 32 - random bytes 18.563 ns/op 14.811 ns/op 1.25
byteArrayEquals 1024 - random bytes 5.5890 ns/op 4.6310 ns/op 1.21
Buffer.compare 1024 - random bytes 18.798 ns/op 15.358 ns/op 1.22
byteArrayEquals 16384 - random bytes 5.6520 ns/op 4.9510 ns/op 1.14
Buffer.compare 16384 - random bytes 18.855 ns/op 15.695 ns/op 1.20
byteArrayEquals 123687377 - random bytes 7.7700 ns/op 7.5700 ns/op 1.03
Buffer.compare 123687377 - random bytes 20.410 ns/op 17.980 ns/op 1.14
regular array get 100000 times 37.388 us/op 31.123 us/op 1.20
wrappedArray get 100000 times 36.631 us/op 31.127 us/op 1.18
arrayWithProxy get 100000 times 14.269 ms/op 10.249 ms/op 1.39
ssz.Root.equals 49.977 ns/op 39.966 ns/op 1.25
byteArrayEquals 48.673 ns/op 41.016 ns/op 1.19
Buffer.compare 11.488 ns/op 8.4550 ns/op 1.36
processSlot - 1 slots 13.461 us/op 10.343 us/op 1.30
processSlot - 32 slots 3.4424 ms/op 2.5914 ms/op 1.33
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 4.4705 ms/op 2.0158 ms/op 2.22
getCommitteeAssignments - req 1 vs - 250000 vc 2.3702 ms/op 1.7298 ms/op 1.37
getCommitteeAssignments - req 100 vs - 250000 vc 4.5643 ms/op 3.3822 ms/op 1.35
getCommitteeAssignments - req 1000 vs - 250000 vc 4.7436 ms/op 3.5951 ms/op 1.32
findModifiedValidators - 10000 modified validators 806.57 ms/op 749.15 ms/op 1.08
findModifiedValidators - 1000 modified validators 801.19 ms/op 659.46 ms/op 1.21
findModifiedValidators - 100 modified validators 217.46 ms/op 190.87 ms/op 1.14
findModifiedValidators - 10 modified validators 269.99 ms/op 118.42 ms/op 2.28
findModifiedValidators - 1 modified validators 239.29 ms/op 132.25 ms/op 1.81
findModifiedValidators - no difference 292.39 ms/op 164.91 ms/op 1.77
compare ViewDUs 6.9911 s/op 6.0472 s/op 1.16
compare each validator Uint8Array 1.5577 s/op 1.1546 s/op 1.35
compare ViewDU to Uint8Array 1.2935 s/op 781.98 ms/op 1.65
migrate state 1000000 validators, 24 modified, 0 new 873.99 ms/op 821.94 ms/op 1.06
migrate state 1000000 validators, 1700 modified, 1000 new 1.2046 s/op 1.1055 s/op 1.09
migrate state 1000000 validators, 3400 modified, 2000 new 1.3921 s/op 1.2082 s/op 1.15
migrate state 1500000 validators, 24 modified, 0 new 979.23 ms/op 867.36 ms/op 1.13
migrate state 1500000 validators, 1700 modified, 1000 new 1.2245 s/op 1.0508 s/op 1.17
migrate state 1500000 validators, 3400 modified, 2000 new 1.4477 s/op 1.3596 s/op 1.06
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.0200 ns/op 5.8500 ns/op 0.69
state getBlockRootAtSlot - 250000 vs - 7PWei 904.77 ns/op 508.81 ns/op 1.78
naive computeProposerIndex 100000 validators 53.974 ms/op 45.089 ms/op 1.20
computeProposerIndex 100000 validators 1.4975 ms/op 1.2379 ms/op 1.21
naiveGetNextSyncCommitteeIndices 1000 validators 8.0411 s/op 6.3343 s/op 1.27
getNextSyncCommitteeIndices 1000 validators 118.64 ms/op 101.12 ms/op 1.17
naiveGetNextSyncCommitteeIndices 10000 validators 8.2197 s/op 6.4290 s/op 1.28
getNextSyncCommitteeIndices 10000 validators 122.29 ms/op 95.035 ms/op 1.29
naiveGetNextSyncCommitteeIndices 100000 validators 8.3726 s/op 5.9841 s/op 1.40
getNextSyncCommitteeIndices 100000 validators 119.99 ms/op 97.576 ms/op 1.23
naive computeShuffledIndex 100000 validators 28.671 s/op 18.858 s/op 1.52
cached computeShuffledIndex 100000 validators 596.85 ms/op 458.03 ms/op 1.30
naive computeShuffledIndex 2000000 validators 517.75 s/op 412.39 s/op 1.26
cached computeShuffledIndex 2000000 validators 30.908 s/op 23.157 s/op 1.33
computeProposers - vc 250000 589.75 us/op 515.57 us/op 1.14
computeEpochShuffling - vc 250000 40.800 ms/op 37.188 ms/op 1.10
getNextSyncCommittee - vc 250000 10.118 ms/op 9.2607 ms/op 1.09
computeSigningRoot for AttestationData 20.399 us/op 16.878 us/op 1.21
hash AttestationData serialized data then Buffer.toString(base64) 1.5704 us/op 1.1251 us/op 1.40
toHexString serialized data 1.0581 us/op 914.54 ns/op 1.16
Buffer.toString(base64) 150.68 ns/op 106.94 ns/op 1.41
nodejs block root to RootHex using toHex 153.93 ns/op 114.50 ns/op 1.34
nodejs block root to RootHex using toRootHex 91.124 ns/op 71.060 ns/op 1.28
nodejs fromHex(blob) 110.06 us/op 87.521 us/op 1.26
nodejs fromHexInto(blob) 805.16 us/op 708.56 us/op 1.14
nodejs block root to RootHex using the deprecated toHexString 202.72 ns/op 184.35 ns/op 1.10
browser block root to RootHex using toHex 169.38 ns/op 149.54 ns/op 1.13
browser block root to RootHex using toRootHex 161.75 ns/op 142.76 ns/op 1.13
browser fromHex(blob) 768.50 us/op 670.99 us/op 1.15
browser fromHexInto(blob) 799.01 us/op 704.73 us/op 1.13
browser block root to RootHex using the deprecated toHexString 783.73 ns/op 498.88 ns/op 1.57

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