Skip to content

Conversation

@nflaig
Copy link
Member

@nflaig nflaig commented Oct 8, 2025

No description provided.

@nflaig nflaig requested a review from a team as a code owner October 8, 2025 21:42
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @nflaig, 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 PR introduces a configuration fix for the Gnosis chain by adding the SLOT_DURATION_MS parameter and setting its value to 5000 in packages/config/src/chainConfig/networks/gnosis.ts.

Highlights

  • Intent: This pull request aims to fix a configuration setting by explicitly defining the SLOT_DURATION_MS for the Gnosis chain to 5000 milliseconds. This likely ensures consistency or corrects a previously missing/incorrect value related to time parameters for Gnosis.
  • Changes: The primary change involves modifying the packages/config/src/chainConfig/networks/gnosis.ts file. A new configuration parameter, SLOT_DURATION_MS: 5000, has been added to the gnosisChainConfig object, specifically within the 'Time parameters' section. This addition explicitly sets the slot duration in milliseconds, complementing the existing SECONDS_PER_SLOT: 5.
  • Reviewer Activity: No specific reviewer activity has been recorded or provided for this pull request yet.
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 correctly updates the Gnosis chain configuration with the appropriate SLOT_DURATION_MS. I've added one suggestion to improve consistency with the existing configuration patterns in the project.

@codecov
Copy link

codecov bot commented Oct 8, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 52.19%. Comparing base (7a240d3) to head (66111a8).
⚠️ Report is 1 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #8512   +/-   ##
=========================================
  Coverage     52.19%   52.19%           
=========================================
  Files           852      852           
  Lines         65054    65054           
  Branches       4771     4772    +1     
=========================================
+ Hits          33955    33958    +3     
+ Misses        31030    31027    -3     
  Partials         69       69           
🚀 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 nflaig merged commit 643707e into unstable Oct 8, 2025
23 of 26 checks passed
@nflaig nflaig deleted the nflaig/gnosis-slot-duration branch October 8, 2025 22:03
@github-actions
Copy link
Contributor

github-actions bot commented Oct 8, 2025

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: f28d1ba Previous: 7a240d3 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 781.58 us/op 735.02 us/op 1.06
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 28.490 us/op 30.348 us/op 0.94
BLS verify - blst 837.57 us/op 877.58 us/op 0.95
BLS verifyMultipleSignatures 3 - blst 1.2496 ms/op 1.2933 ms/op 0.97
BLS verifyMultipleSignatures 8 - blst 2.0013 ms/op 2.0638 ms/op 0.97
BLS verifyMultipleSignatures 32 - blst 4.1668 ms/op 4.6537 ms/op 0.90
BLS verifyMultipleSignatures 64 - blst 8.2575 ms/op 8.4765 ms/op 0.97
BLS verifyMultipleSignatures 128 - blst 15.895 ms/op 15.647 ms/op 1.02
BLS deserializing 10000 signatures 609.30 ms/op 618.65 ms/op 0.98
BLS deserializing 100000 signatures 6.3681 s/op 6.1554 s/op 1.03
BLS verifyMultipleSignatures - same message - 3 - blst 956.96 us/op 869.88 us/op 1.10
BLS verifyMultipleSignatures - same message - 8 - blst 1.1121 ms/op 914.41 us/op 1.22
BLS verifyMultipleSignatures - same message - 32 - blst 1.6750 ms/op 1.6701 ms/op 1.00
BLS verifyMultipleSignatures - same message - 64 - blst 2.5804 ms/op 2.5544 ms/op 1.01
BLS verifyMultipleSignatures - same message - 128 - blst 4.1547 ms/op 4.1617 ms/op 1.00
BLS aggregatePubkeys 32 - blst 17.411 us/op 17.443 us/op 1.00
BLS aggregatePubkeys 128 - blst 63.182 us/op 61.947 us/op 1.02
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 47.044 ms/op 39.855 ms/op 1.18
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 48.781 ms/op 38.678 ms/op 1.26
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 38.362 ms/op 37.762 ms/op 1.02
getSlashingsAndExits - default max 48.873 us/op 46.901 us/op 1.04
getSlashingsAndExits - 2k 317.02 us/op 276.57 us/op 1.15
isKnown best case - 1 super set check 402.00 ns/op 406.00 ns/op 0.99
isKnown normal case - 2 super set checks 400.00 ns/op 406.00 ns/op 0.99
isKnown worse case - 16 super set checks 397.00 ns/op 405.00 ns/op 0.98
InMemoryCheckpointStateCache - add get delete 2.5220 us/op 2.4190 us/op 1.04
validate api signedAggregateAndProof - struct 1.4574 ms/op 1.5216 ms/op 0.96
validate gossip signedAggregateAndProof - struct 1.9531 ms/op 1.4925 ms/op 1.31
batch validate gossip attestation - vc 640000 - chunk 32 105.10 us/op 105.83 us/op 0.99
batch validate gossip attestation - vc 640000 - chunk 64 91.493 us/op 91.000 us/op 1.01
batch validate gossip attestation - vc 640000 - chunk 128 86.662 us/op 84.888 us/op 1.02
batch validate gossip attestation - vc 640000 - chunk 256 81.772 us/op 86.400 us/op 0.95
pickEth1Vote - no votes 729.36 us/op 807.34 us/op 0.90
pickEth1Vote - max votes 4.2893 ms/op 5.3566 ms/op 0.80
pickEth1Vote - Eth1Data hashTreeRoot value x2048 8.6184 ms/op 9.7768 ms/op 0.88
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 11.886 ms/op 14.844 ms/op 0.80
pickEth1Vote - Eth1Data fastSerialize value x2048 339.34 us/op 316.33 us/op 1.07
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.2699 ms/op 2.3288 ms/op 0.97
bytes32 toHexString 479.00 ns/op 517.00 ns/op 0.93
bytes32 Buffer.toString(hex) 397.00 ns/op 431.00 ns/op 0.92
bytes32 Buffer.toString(hex) from Uint8Array 479.00 ns/op 473.00 ns/op 1.01
bytes32 Buffer.toString(hex) + 0x 397.00 ns/op 408.00 ns/op 0.97
Object access 1 prop 0.29000 ns/op 0.30100 ns/op 0.96
Map access 1 prop 0.30000 ns/op 0.31000 ns/op 0.97
Object get x1000 4.6990 ns/op 4.9380 ns/op 0.95
Map get x1000 5.4080 ns/op 5.7230 ns/op 0.94
Object set x1000 18.466 ns/op 20.928 ns/op 0.88
Map set x1000 16.383 ns/op 17.081 ns/op 0.96
Return object 10000 times 0.29280 ns/op 0.28440 ns/op 1.03
Throw Error 10000 times 3.5471 us/op 3.4689 us/op 1.02
toHex 101.29 ns/op 106.74 ns/op 0.95
Buffer.from 94.591 ns/op 99.062 ns/op 0.95
shared Buffer 68.896 ns/op 69.654 ns/op 0.99
fastMsgIdFn sha256 / 200 bytes 1.9450 us/op 1.9400 us/op 1.00
fastMsgIdFn h32 xxhash / 200 bytes 375.00 ns/op 378.00 ns/op 0.99
fastMsgIdFn h64 xxhash / 200 bytes 431.00 ns/op 442.00 ns/op 0.98
fastMsgIdFn sha256 / 1000 bytes 5.8400 us/op 5.7420 us/op 1.02
fastMsgIdFn h32 xxhash / 1000 bytes 497.00 ns/op 509.00 ns/op 0.98
fastMsgIdFn h64 xxhash / 1000 bytes 502.00 ns/op 513.00 ns/op 0.98
fastMsgIdFn sha256 / 10000 bytes 49.111 us/op 49.448 us/op 0.99
fastMsgIdFn h32 xxhash / 10000 bytes 1.8580 us/op 1.9060 us/op 0.97
fastMsgIdFn h64 xxhash / 10000 bytes 1.3080 us/op 1.3330 us/op 0.98
send data - 1000 256B messages 12.040 ms/op 12.262 ms/op 0.98
send data - 1000 512B messages 14.742 ms/op 18.818 ms/op 0.78
send data - 1000 1024B messages 20.621 ms/op 24.180 ms/op 0.85
send data - 1000 1200B messages 15.659 ms/op 18.303 ms/op 0.86
send data - 1000 2048B messages 13.937 ms/op 16.047 ms/op 0.87
send data - 1000 4096B messages 20.385 ms/op 15.841 ms/op 1.29
send data - 1000 16384B messages 22.716 ms/op 23.565 ms/op 0.96
send data - 1000 65536B messages 68.477 ms/op 61.924 ms/op 1.11
enrSubnets - fastDeserialize 64 bits 896.00 ns/op 956.00 ns/op 0.94
enrSubnets - ssz BitVector 64 bits 467.00 ns/op 508.00 ns/op 0.92
enrSubnets - fastDeserialize 4 bits 296.00 ns/op 314.00 ns/op 0.94
enrSubnets - ssz BitVector 4 bits 485.00 ns/op 501.00 ns/op 0.97
prioritizePeers score -10:0 att 32-0.1 sync 2-0 189.49 us/op 196.40 us/op 0.96
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 225.04 us/op 225.91 us/op 1.00
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 364.78 us/op 398.35 us/op 0.92
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 639.53 us/op 689.37 us/op 0.93
prioritizePeers score 0:0 att 64-1 sync 4-1 781.52 us/op 829.62 us/op 0.94
array of 16000 items push then shift 1.2845 us/op 1.3035 us/op 0.99
LinkedList of 16000 items push then shift 6.3260 ns/op 6.9960 ns/op 0.90
array of 16000 items push then pop 61.861 ns/op 71.119 ns/op 0.87
LinkedList of 16000 items push then pop 6.2600 ns/op 6.3480 ns/op 0.99
array of 24000 items push then shift 1.8899 us/op 1.9132 us/op 0.99
LinkedList of 24000 items push then shift 6.3210 ns/op 6.4360 ns/op 0.98
array of 24000 items push then pop 86.960 ns/op 96.367 ns/op 0.90
LinkedList of 24000 items push then pop 6.2930 ns/op 6.3250 ns/op 0.99
intersect bitArray bitLen 8 5.3240 ns/op 5.4210 ns/op 0.98
intersect array and set length 8 30.577 ns/op 32.343 ns/op 0.95
intersect bitArray bitLen 128 26.475 ns/op 26.411 ns/op 1.00
intersect array and set length 128 508.19 ns/op 549.38 ns/op 0.93
bitArray.getTrueBitIndexes() bitLen 128 1.1250 us/op 1.1510 us/op 0.98
bitArray.getTrueBitIndexes() bitLen 248 1.7740 us/op 1.8260 us/op 0.97
bitArray.getTrueBitIndexes() bitLen 512 3.2650 us/op 3.2610 us/op 1.00
Buffer.concat 32 items 746.00 ns/op 805.00 ns/op 0.93
Uint8Array.set 32 items 954.00 ns/op 1.0750 us/op 0.89
Buffer.copy 2.2010 us/op 2.0560 us/op 1.07
Uint8Array.set - with subarray 2.8800 us/op 1.7030 us/op 1.69
Uint8Array.set - without subarray 2.0680 us/op 1.0990 us/op 1.88
getUint32 - dataview 355.00 ns/op 373.00 ns/op 0.95
getUint32 - manual 296.00 ns/op 308.00 ns/op 0.96
Set add up to 64 items then delete first 1.6533 us/op 1.8643 us/op 0.89
OrderedSet add up to 64 items then delete first 2.5974 us/op 2.6891 us/op 0.97
Set add up to 64 items then delete last 1.8957 us/op 2.1219 us/op 0.89
OrderedSet add up to 64 items then delete last 3.1876 us/op 3.1657 us/op 1.01
Set add up to 64 items then delete middle 1.9119 us/op 2.0934 us/op 0.91
OrderedSet add up to 64 items then delete middle 4.6885 us/op 4.7098 us/op 1.00
Set add up to 128 items then delete first 3.9394 us/op 5.4324 us/op 0.73
OrderedSet add up to 128 items then delete first 6.0005 us/op 7.7723 us/op 0.77
Set add up to 128 items then delete last 3.9138 us/op 5.0391 us/op 0.78
OrderedSet add up to 128 items then delete last 6.2017 us/op 7.3626 us/op 0.84
Set add up to 128 items then delete middle 3.8537 us/op 4.8885 us/op 0.79
OrderedSet add up to 128 items then delete middle 12.769 us/op 13.099 us/op 0.97
Set add up to 256 items then delete first 7.7145 us/op 8.4094 us/op 0.92
OrderedSet add up to 256 items then delete first 11.663 us/op 13.720 us/op 0.85
Set add up to 256 items then delete last 7.7004 us/op 7.8945 us/op 0.98
OrderedSet add up to 256 items then delete last 12.271 us/op 12.334 us/op 0.99
Set add up to 256 items then delete middle 7.6751 us/op 9.0827 us/op 0.85
OrderedSet add up to 256 items then delete middle 36.033 us/op 34.694 us/op 1.04
transfer serialized Status (84 B) 1.9410 us/op 1.8800 us/op 1.03
copy serialized Status (84 B) 1.2610 us/op 1.1610 us/op 1.09
transfer serialized SignedVoluntaryExit (112 B) 1.9110 us/op 1.8920 us/op 1.01
copy serialized SignedVoluntaryExit (112 B) 1.2840 us/op 1.1620 us/op 1.10
transfer serialized ProposerSlashing (416 B) 2.0060 us/op 1.9230 us/op 1.04
copy serialized ProposerSlashing (416 B) 1.3740 us/op 1.2980 us/op 1.06
transfer serialized Attestation (485 B) 2.0180 us/op 1.9310 us/op 1.05
copy serialized Attestation (485 B) 1.4360 us/op 1.2120 us/op 1.18
transfer serialized AttesterSlashing (33232 B) 2.0750 us/op 1.9700 us/op 1.05
copy serialized AttesterSlashing (33232 B) 2.5770 us/op 2.4960 us/op 1.03
transfer serialized Small SignedBeaconBlock (128000 B) 2.0870 us/op 2.0440 us/op 1.02
copy serialized Small SignedBeaconBlock (128000 B) 5.5670 us/op 5.8280 us/op 0.96
transfer serialized Avg SignedBeaconBlock (200000 B) 2.1790 us/op 2.2340 us/op 0.98
copy serialized Avg SignedBeaconBlock (200000 B) 7.9680 us/op 8.3670 us/op 0.95
transfer serialized BlobsSidecar (524380 B) 2.9370 us/op 3.3240 us/op 0.88
copy serialized BlobsSidecar (524380 B) 167.67 us/op 59.937 us/op 2.80
transfer serialized Big SignedBeaconBlock (1000000 B) 3.3200 us/op 3.3340 us/op 1.00
copy serialized Big SignedBeaconBlock (1000000 B) 110.45 us/op 111.27 us/op 0.99
pass gossip attestations to forkchoice per slot 2.2090 ms/op 2.2753 ms/op 0.97
forkChoice updateHead vc 100000 bc 64 eq 0 329.19 us/op 339.36 us/op 0.97
forkChoice updateHead vc 600000 bc 64 eq 0 2.1185 ms/op 2.2615 ms/op 0.94
forkChoice updateHead vc 1000000 bc 64 eq 0 3.6896 ms/op 4.1031 ms/op 0.90
forkChoice updateHead vc 600000 bc 320 eq 0 2.0998 ms/op 2.3868 ms/op 0.88
forkChoice updateHead vc 600000 bc 1200 eq 0 2.1193 ms/op 2.3950 ms/op 0.88
forkChoice updateHead vc 600000 bc 7200 eq 0 2.3830 ms/op 2.4590 ms/op 0.97
forkChoice updateHead vc 600000 bc 64 eq 1000 9.4969 ms/op 9.2256 ms/op 1.03
forkChoice updateHead vc 600000 bc 64 eq 10000 9.3603 ms/op 9.0894 ms/op 1.03
forkChoice updateHead vc 600000 bc 64 eq 300000 11.513 ms/op 11.340 ms/op 1.02
computeDeltas 500000 validators 300 proto nodes 3.0273 ms/op 3.1208 ms/op 0.97
computeDeltas 500000 validators 1200 proto nodes 3.0620 ms/op 3.1470 ms/op 0.97
computeDeltas 500000 validators 7200 proto nodes 2.9966 ms/op 3.0695 ms/op 0.98
computeDeltas 750000 validators 300 proto nodes 4.6016 ms/op 4.5513 ms/op 1.01
computeDeltas 750000 validators 1200 proto nodes 4.4363 ms/op 4.5960 ms/op 0.97
computeDeltas 750000 validators 7200 proto nodes 4.4015 ms/op 4.5825 ms/op 0.96
computeDeltas 1400000 validators 300 proto nodes 8.4734 ms/op 8.5964 ms/op 0.99
computeDeltas 1400000 validators 1200 proto nodes 8.3502 ms/op 8.7033 ms/op 0.96
computeDeltas 1400000 validators 7200 proto nodes 8.4511 ms/op 8.8231 ms/op 0.96
computeDeltas 2100000 validators 300 proto nodes 12.637 ms/op 13.399 ms/op 0.94
computeDeltas 2100000 validators 1200 proto nodes 12.940 ms/op 12.815 ms/op 1.01
computeDeltas 2100000 validators 7200 proto nodes 13.302 ms/op 13.502 ms/op 0.99
altair processAttestation - 250000 vs - 7PWei normalcase 1.6504 ms/op 1.7983 ms/op 0.92
altair processAttestation - 250000 vs - 7PWei worstcase 2.4371 ms/op 2.5011 ms/op 0.97
altair processAttestation - setStatus - 1/6 committees join 93.420 us/op 92.713 us/op 1.01
altair processAttestation - setStatus - 1/3 committees join 196.96 us/op 186.42 us/op 1.06
altair processAttestation - setStatus - 1/2 committees join 273.01 us/op 274.44 us/op 0.99
altair processAttestation - setStatus - 2/3 committees join 357.26 us/op 348.86 us/op 1.02
altair processAttestation - setStatus - 4/5 committees join 465.19 us/op 496.19 us/op 0.94
altair processAttestation - setStatus - 100% committees join 547.51 us/op 593.13 us/op 0.92
altair processBlock - 250000 vs - 7PWei normalcase 3.5643 ms/op 4.3754 ms/op 0.81
altair processBlock - 250000 vs - 7PWei normalcase hashState 32.791 ms/op 32.568 ms/op 1.01
altair processBlock - 250000 vs - 7PWei worstcase 37.669 ms/op 38.520 ms/op 0.98
altair processBlock - 250000 vs - 7PWei worstcase hashState 91.166 ms/op 91.823 ms/op 0.99
phase0 processBlock - 250000 vs - 7PWei normalcase 1.8326 ms/op 1.7499 ms/op 1.05
phase0 processBlock - 250000 vs - 7PWei worstcase 26.021 ms/op 24.308 ms/op 1.07
altair processEth1Data - 250000 vs - 7PWei normalcase 293.32 us/op 265.18 us/op 1.11
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 5.1040 us/op 5.5180 us/op 0.92
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 32.859 us/op 35.052 us/op 0.94
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 5.4430 us/op 9.5240 us/op 0.57
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 5.8850 us/op 5.2820 us/op 1.11
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 149.98 us/op 96.619 us/op 1.55
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.4111 ms/op 1.4494 ms/op 0.97
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.6746 ms/op 1.8372 ms/op 0.91
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.8620 ms/op 1.8132 ms/op 1.03
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.7659 ms/op 3.5647 ms/op 1.06
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.6871 ms/op 2.4355 ms/op 0.69
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.7359 ms/op 3.8619 ms/op 0.97
Tree 40 250000 create 353.32 ms/op 354.88 ms/op 1.00
Tree 40 250000 get(125000) 118.69 ns/op 103.35 ns/op 1.15
Tree 40 250000 set(125000) 1.0796 us/op 1.2018 us/op 0.90
Tree 40 250000 toArray() 12.716 ms/op 17.452 ms/op 0.73
Tree 40 250000 iterate all - toArray() + loop 12.805 ms/op 17.780 ms/op 0.72
Tree 40 250000 iterate all - get(i) 38.573 ms/op 47.124 ms/op 0.82
Array 250000 create 2.2631 ms/op 2.0846 ms/op 1.09
Array 250000 clone - spread 589.31 us/op 644.50 us/op 0.91
Array 250000 get(125000) 0.52300 ns/op 0.55700 ns/op 0.94
Array 250000 set(125000) 0.52600 ns/op 0.57700 ns/op 0.91
Array 250000 iterate all - loop 68.766 us/op 97.667 us/op 0.70
phase0 afterProcessEpoch - 250000 vs - 7PWei 34.583 ms/op 36.897 ms/op 0.94
Array.fill - length 1000000 2.3333 ms/op 2.6158 ms/op 0.89
Array push - length 1000000 9.2905 ms/op 11.253 ms/op 0.83
Array.get 0.26436 ns/op 0.24939 ns/op 1.06
Uint8Array.get 0.34377 ns/op 0.39763 ns/op 0.86
phase0 beforeProcessEpoch - 250000 vs - 7PWei 11.832 ms/op 21.616 ms/op 0.55
altair processEpoch - mainnet_e81889 280.86 ms/op 287.59 ms/op 0.98
mainnet_e81889 - altair beforeProcessEpoch 13.254 ms/op 14.257 ms/op 0.93
mainnet_e81889 - altair processJustificationAndFinalization 4.5330 us/op 4.5890 us/op 0.99
mainnet_e81889 - altair processInactivityUpdates 3.1240 ms/op 3.6075 ms/op 0.87
mainnet_e81889 - altair processRewardsAndPenalties 43.455 ms/op 43.850 ms/op 0.99
mainnet_e81889 - altair processRegistryUpdates 841.00 ns/op 886.00 ns/op 0.95
mainnet_e81889 - altair processSlashings 399.00 ns/op 401.00 ns/op 1.00
mainnet_e81889 - altair processEth1DataReset 392.00 ns/op 396.00 ns/op 0.99
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.0113 ms/op 1.0721 ms/op 0.94
mainnet_e81889 - altair processSlashingsReset 1.0170 us/op 1.0160 us/op 1.00
mainnet_e81889 - altair processRandaoMixesReset 1.2180 us/op 1.2380 us/op 0.98
mainnet_e81889 - altair processHistoricalRootsUpdate 377.00 ns/op 396.00 ns/op 0.95
mainnet_e81889 - altair processParticipationFlagUpdates 663.00 ns/op 703.00 ns/op 0.94
mainnet_e81889 - altair processSyncCommitteeUpdates 339.00 ns/op 357.00 ns/op 0.95
mainnet_e81889 - altair afterProcessEpoch 37.091 ms/op 39.190 ms/op 0.95
capella processEpoch - mainnet_e217614 921.11 ms/op 931.41 ms/op 0.99
mainnet_e217614 - capella beforeProcessEpoch 57.977 ms/op 61.006 ms/op 0.95
mainnet_e217614 - capella processJustificationAndFinalization 4.4690 us/op 5.5660 us/op 0.80
mainnet_e217614 - capella processInactivityUpdates 11.424 ms/op 11.733 ms/op 0.97
mainnet_e217614 - capella processRewardsAndPenalties 183.23 ms/op 192.11 ms/op 0.95
mainnet_e217614 - capella processRegistryUpdates 5.2480 us/op 5.6990 us/op 0.92
mainnet_e217614 - capella processSlashings 402.00 ns/op 417.00 ns/op 0.96
mainnet_e217614 - capella processEth1DataReset 394.00 ns/op 389.00 ns/op 1.01
mainnet_e217614 - capella processEffectiveBalanceUpdates 3.9952 ms/op 3.8615 ms/op 1.03
mainnet_e217614 - capella processSlashingsReset 1.2540 us/op 1.1690 us/op 1.07
mainnet_e217614 - capella processRandaoMixesReset 1.4380 us/op 1.2510 us/op 1.15
mainnet_e217614 - capella processHistoricalRootsUpdate 423.00 ns/op 405.00 ns/op 1.04
mainnet_e217614 - capella processParticipationFlagUpdates 775.00 ns/op 699.00 ns/op 1.11
mainnet_e217614 - capella afterProcessEpoch 102.26 ms/op 106.61 ms/op 0.96
phase0 processEpoch - mainnet_e58758 260.52 ms/op 312.83 ms/op 0.83
mainnet_e58758 - phase0 beforeProcessEpoch 67.526 ms/op 89.361 ms/op 0.76
mainnet_e58758 - phase0 processJustificationAndFinalization 4.6100 us/op 5.3640 us/op 0.86
mainnet_e58758 - phase0 processRewardsAndPenalties 38.978 ms/op 39.460 ms/op 0.99
mainnet_e58758 - phase0 processRegistryUpdates 2.7250 us/op 2.8390 us/op 0.96
mainnet_e58758 - phase0 processSlashings 387.00 ns/op 400.00 ns/op 0.97
mainnet_e58758 - phase0 processEth1DataReset 385.00 ns/op 409.00 ns/op 0.94
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 967.12 us/op 988.96 us/op 0.98
mainnet_e58758 - phase0 processSlashingsReset 1.0220 us/op 1.2470 us/op 0.82
mainnet_e58758 - phase0 processRandaoMixesReset 1.2350 us/op 1.3100 us/op 0.94
mainnet_e58758 - phase0 processHistoricalRootsUpdate 374.00 ns/op 412.00 ns/op 0.91
mainnet_e58758 - phase0 processParticipationRecordUpdates 1.1920 us/op 1.3360 us/op 0.89
mainnet_e58758 - phase0 afterProcessEpoch 30.344 ms/op 33.983 ms/op 0.89
phase0 processEffectiveBalanceUpdates - 250000 normalcase 978.67 us/op 1.0023 ms/op 0.98
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.3232 ms/op 1.5316 ms/op 0.86
altair processInactivityUpdates - 250000 normalcase 15.739 ms/op 18.662 ms/op 0.84
altair processInactivityUpdates - 250000 worstcase 18.243 ms/op 19.646 ms/op 0.93
phase0 processRegistryUpdates - 250000 normalcase 3.0910 us/op 8.4700 us/op 0.36
phase0 processRegistryUpdates - 250000 badcase_full_deposits 286.67 us/op 422.41 us/op 0.68
phase0 processRegistryUpdates - 250000 worstcase 0.5 106.00 ms/op 98.254 ms/op 1.08
altair processRewardsAndPenalties - 250000 normalcase 28.583 ms/op 22.536 ms/op 1.27
altair processRewardsAndPenalties - 250000 worstcase 25.904 ms/op 24.038 ms/op 1.08
phase0 getAttestationDeltas - 250000 normalcase 4.2979 ms/op 6.3321 ms/op 0.68
phase0 getAttestationDeltas - 250000 worstcase 4.9380 ms/op 4.9588 ms/op 1.00
phase0 processSlashings - 250000 worstcase 90.152 us/op 97.500 us/op 0.92
altair processSyncCommitteeUpdates - 250000 8.6155 ms/op 10.371 ms/op 0.83
BeaconState.hashTreeRoot - No change 405.00 ns/op 442.00 ns/op 0.92
BeaconState.hashTreeRoot - 1 full validator 72.966 us/op 60.377 us/op 1.21
BeaconState.hashTreeRoot - 32 full validator 879.27 us/op 738.50 us/op 1.19
BeaconState.hashTreeRoot - 512 full validator 10.445 ms/op 7.4506 ms/op 1.40
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 93.686 us/op 73.570 us/op 1.27
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.4372 ms/op 1.1760 ms/op 1.22
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 26.780 ms/op 17.506 ms/op 1.53
BeaconState.hashTreeRoot - 1 balances 79.814 us/op 61.109 us/op 1.31
BeaconState.hashTreeRoot - 32 balances 776.15 us/op 538.80 us/op 1.44
BeaconState.hashTreeRoot - 512 balances 5.8340 ms/op 5.5251 ms/op 1.06
BeaconState.hashTreeRoot - 250000 balances 172.12 ms/op 106.88 ms/op 1.61
aggregationBits - 2048 els - zipIndexesInBitList 16.739 us/op 17.346 us/op 0.97
byteArrayEquals 32 43.516 ns/op 42.493 ns/op 1.02
Buffer.compare 32 13.747 ns/op 16.086 ns/op 0.85
byteArrayEquals 1024 1.1162 us/op 1.2720 us/op 0.88
Buffer.compare 1024 21.542 ns/op 23.230 ns/op 0.93
byteArrayEquals 16384 17.659 us/op 19.951 us/op 0.89
Buffer.compare 16384 157.35 ns/op 166.26 ns/op 0.95
byteArrayEquals 123687377 145.68 ms/op 142.37 ms/op 1.02
Buffer.compare 123687377 3.8969 ms/op 5.2725 ms/op 0.74
byteArrayEquals 32 - diff last byte 48.014 ns/op 39.493 ns/op 1.22
Buffer.compare 32 - diff last byte 15.889 ns/op 14.535 ns/op 1.09
byteArrayEquals 1024 - diff last byte 1.2849 us/op 1.1813 us/op 1.09
Buffer.compare 1024 - diff last byte 22.972 ns/op 22.484 ns/op 1.02
byteArrayEquals 16384 - diff last byte 20.302 us/op 18.796 us/op 1.08
Buffer.compare 16384 - diff last byte 173.05 ns/op 152.27 ns/op 1.14
byteArrayEquals 123687377 - diff last byte 152.55 ms/op 142.65 ms/op 1.07
Buffer.compare 123687377 - diff last byte 3.6658 ms/op 4.6485 ms/op 0.79
byteArrayEquals 32 - random bytes 4.8930 ns/op 4.8270 ns/op 1.01
Buffer.compare 32 - random bytes 16.175 ns/op 16.061 ns/op 1.01
byteArrayEquals 1024 - random bytes 4.8590 ns/op 4.8000 ns/op 1.01
Buffer.compare 1024 - random bytes 16.271 ns/op 16.484 ns/op 0.99
byteArrayEquals 16384 - random bytes 4.8310 ns/op 4.8100 ns/op 1.00
Buffer.compare 16384 - random bytes 16.247 ns/op 17.087 ns/op 0.95
byteArrayEquals 123687377 - random bytes 7.6700 ns/op 7.5800 ns/op 1.01
Buffer.compare 123687377 - random bytes 17.450 ns/op 17.240 ns/op 1.01
regular array get 100000 times 29.180 us/op 38.294 us/op 0.76
wrappedArray get 100000 times 29.199 us/op 39.997 us/op 0.73
arrayWithProxy get 100000 times 8.4470 ms/op 8.5928 ms/op 0.98
ssz.Root.equals 37.579 ns/op 37.735 ns/op 1.00
byteArrayEquals 41.176 ns/op 37.156 ns/op 1.11
Buffer.compare 8.4870 ns/op 8.5800 ns/op 0.99
processSlot - 1 slots 8.5200 us/op 10.509 us/op 0.81
processSlot - 32 slots 1.9990 ms/op 2.6626 ms/op 0.75
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 3.0388 ms/op 3.0323 ms/op 1.00
getCommitteeAssignments - req 1 vs - 250000 vc 1.7173 ms/op 1.7019 ms/op 1.01
getCommitteeAssignments - req 100 vs - 250000 vc 3.3850 ms/op 3.3666 ms/op 1.01
getCommitteeAssignments - req 1000 vs - 250000 vc 3.5953 ms/op 3.5876 ms/op 1.00
findModifiedValidators - 10000 modified validators 730.51 ms/op 750.54 ms/op 0.97
findModifiedValidators - 1000 modified validators 673.95 ms/op 627.21 ms/op 1.07
findModifiedValidators - 100 modified validators 156.20 ms/op 154.77 ms/op 1.01
findModifiedValidators - 10 modified validators 122.62 ms/op 159.03 ms/op 0.77
findModifiedValidators - 1 modified validators 123.21 ms/op 124.64 ms/op 0.99
findModifiedValidators - no difference 154.61 ms/op 143.54 ms/op 1.08
compare ViewDUs 5.9948 s/op 5.9384 s/op 1.01
compare each validator Uint8Array 1.5101 s/op 1.3543 s/op 1.12
compare ViewDU to Uint8Array 716.53 ms/op 699.01 ms/op 1.03
migrate state 1000000 validators, 24 modified, 0 new 737.91 ms/op 845.25 ms/op 0.87
migrate state 1000000 validators, 1700 modified, 1000 new 1.1192 s/op 1.0788 s/op 1.04
migrate state 1000000 validators, 3400 modified, 2000 new 1.1678 s/op 1.2775 s/op 0.91
migrate state 1500000 validators, 24 modified, 0 new 771.82 ms/op 924.20 ms/op 0.84
migrate state 1500000 validators, 1700 modified, 1000 new 1.0824 s/op 1.2660 s/op 0.86
migrate state 1500000 validators, 3400 modified, 2000 new 1.1654 s/op 1.6480 s/op 0.71
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.3300 ns/op 8.8800 ns/op 0.60
state getBlockRootAtSlot - 250000 vs - 7PWei 446.36 ns/op 456.70 ns/op 0.98
naive computeProposerIndex 100000 validators 39.880 ms/op 44.739 ms/op 0.89
computeProposerIndex 100000 validators 1.2542 ms/op 1.3148 ms/op 0.95
naiveGetNextSyncCommitteeIndices 1000 validators 6.1730 s/op 6.7735 s/op 0.91
getNextSyncCommitteeIndices 1000 validators 92.892 ms/op 97.573 ms/op 0.95
naiveGetNextSyncCommitteeIndices 10000 validators 6.9733 s/op 7.2091 s/op 0.97
getNextSyncCommitteeIndices 10000 validators 92.690 ms/op 98.637 ms/op 0.94
naiveGetNextSyncCommitteeIndices 100000 validators 6.7937 s/op 6.3033 s/op 1.08
getNextSyncCommitteeIndices 100000 validators 92.885 ms/op 97.254 ms/op 0.96
naive computeShuffledIndex 100000 validators 20.853 s/op 19.751 s/op 1.06
cached computeShuffledIndex 100000 validators 445.34 ms/op 450.54 ms/op 0.99
naive computeShuffledIndex 2000000 validators 416.08 s/op 447.10 s/op 0.93
cached computeShuffledIndex 2000000 validators 21.832 s/op 14.655 s/op 1.49
computeProposers - vc 250000 501.80 us/op 545.95 us/op 0.92
computeEpochShuffling - vc 250000 36.361 ms/op 38.782 ms/op 0.94
getNextSyncCommittee - vc 250000 9.2650 ms/op 9.1973 ms/op 1.01
computeSigningRoot for AttestationData 16.071 us/op 18.664 us/op 0.86
hash AttestationData serialized data then Buffer.toString(base64) 1.2118 us/op 1.1211 us/op 1.08
toHexString serialized data 946.92 ns/op 904.52 ns/op 1.05
Buffer.toString(base64) 108.64 ns/op 109.00 ns/op 1.00
nodejs block root to RootHex using toHex 110.24 ns/op 110.42 ns/op 1.00
nodejs block root to RootHex using toRootHex 75.769 ns/op 75.040 ns/op 1.01
nodejs fromhex(blob) 84.477 ms/op 93.853 ms/op 0.90
nodejs fromHexInto(blob) 82.359 ms/op 78.390 ms/op 1.05
browser block root to RootHex using the deprecated toHexString 188.05 ns/op 189.70 ns/op 0.99
browser block root to RootHex using toHex 155.12 ns/op 149.81 ns/op 1.04
browser block root to RootHex using toRootHex 145.17 ns/op 138.07 ns/op 1.05
browser fromHexInto(blob) 688.41 us/op 624.79 us/op 1.10
browser fromHex(blob) 660.94 ms/op 610.91 ms/op 1.08

by benchmarkbot/action

@wemeetagain
Copy link
Member

🎉 This PR is included in v1.35.0 🎉

AbolareRoheemah pushed a commit to AbolareRoheemah/lodestar that referenced this pull request Oct 14, 2025
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