Skip to content

Conversation

@philknows
Copy link
Member

Motivation

After resolving issues with the ipv6 dual stack port bug in v1.34.1, it was noted that we should make it clear our default p2p port for both IPv4 and IPv6 is now the same at port 9000.

Description

When we introduced IPv6 support in #5758 , we used to default the port of 9090. When supporting dual stack option on the same port via #8190 , we should make it clear in documentation this is now by default also on port 9000.

@philknows philknows requested a review from a team as a code owner September 10, 2025 22:57
Copy link
Contributor

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

Choose a reason for hiding this comment

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

Summary of Changes

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

This pull request updates the networking documentation to accurately reflect the current default P2P port configuration. It clarifies that both IPv4 and IPv6 now utilize port 9000 for peer-to-peer communication, particularly for dual-stack setups, ensuring users have up-to-date information regarding port requirements and log outputs.

Highlights

  • Documentation Update: Clarified that the default P2P port for both IPv4 and IPv6 is now 9000, removing the previously documented 9090 for IPv6.
  • Log Examples: Added a new log example for IPv6 dual-stack nodes to demonstrate the bindAddr6 entry also using port 9000.
Using Gemini Code Assist

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

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

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

Customization

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

Limitations & Feedback

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

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

Footnotes

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

Copy link
Contributor

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

Choose a reason for hiding this comment

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

Code Review

This pull request updates the networking documentation to clarify that the default P2P port for both IPv4 and IPv6 is now 9000. The changes correctly reflect this, improving the accuracy of the documentation. I have provided one suggestion to further enhance the documentation by including an example for IPv6-only nodes, making it more comprehensive for users with different network setups.

Comment on lines +50 to +54
Or similar to the following for IPv6 dual-stack nodes (when enabled):

```txt
info: discv5 worker started peerId=16Uiu...t9LQ3, initialENR=enr:-Iu4QGE...WRwgiMo, bindAddr4=/ip4/0.0.0.0/udp/9000, bindAddr6=/ip6/::/udp/9000
```
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

This clarification for dual-stack nodes is helpful. To make the documentation more comprehensive, it would be beneficial to also include an example for an IPv6-only node. This would provide better guidance for users running in different network configurations.

Suggested change
Or similar to the following for IPv6 dual-stack nodes (when enabled):
```txt
info: discv5 worker started peerId=16Uiu...t9LQ3, initialENR=enr:-Iu4QGE...WRwgiMo, bindAddr4=/ip4/0.0.0.0/udp/9000, bindAddr6=/ip6/::/udp/9000
```
Or similar to the following for nodes with IPv6 enabled.
A dual-stack node will show both IPv4 and IPv6 addresses:
```txt
info: discv5 worker started peerId=16Uiu...t9LQ3, initialENR=enr:-Iu4QGE...WRwgiMo, bindAddr4=/ip4/0.0.0.0/udp/9000, bindAddr6=/ip6/::/udp/9000

An IPv6-only node will only show the IPv6 address:

info: discv5 worker started peerId=16Uiu...t9LQ3, initialENR=enr:-Iu4QGE...WRwgiMo, bindAddr6=/ip6/::/udp/9000

@codecov
Copy link

codecov bot commented Sep 10, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 54.08%. Comparing base (c85be4e) to head (a059ede).
⚠️ Report is 2 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #8368      +/-   ##
============================================
- Coverage     54.09%   54.08%   -0.01%     
============================================
  Files           850      850              
  Lines         64195    64195              
  Branches       4853     4852       -1     
============================================
- Hits          34725    34722       -3     
- Misses        29393    29396       +3     
  Partials         77       77              
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions
Copy link
Contributor

⚠️ 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: 5ae774c Previous: c85be4e Ratio
phase0 getAttestationDeltas - 250000 worstcase 16.186 ms/op 4.8408 ms/op 3.34
Full benchmark results
Benchmark suite Current: 5ae774c Previous: c85be4e Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 738.73 us/op 745.30 us/op 0.99
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 29.724 us/op 31.089 us/op 0.96
BLS verify - blst 843.98 us/op 879.64 us/op 0.96
BLS verifyMultipleSignatures 3 - blst 1.2483 ms/op 1.3447 ms/op 0.93
BLS verifyMultipleSignatures 8 - blst 2.0798 ms/op 2.1152 ms/op 0.98
BLS verifyMultipleSignatures 32 - blst 4.7900 ms/op 4.4763 ms/op 1.07
BLS verifyMultipleSignatures 64 - blst 9.0254 ms/op 8.3666 ms/op 1.08
BLS verifyMultipleSignatures 128 - blst 16.807 ms/op 16.007 ms/op 1.05
BLS deserializing 10000 signatures 632.32 ms/op 632.98 ms/op 1.00
BLS deserializing 100000 signatures 6.2994 s/op 6.2768 s/op 1.00
BLS verifyMultipleSignatures - same message - 3 - blst 925.64 us/op 965.71 us/op 0.96
BLS verifyMultipleSignatures - same message - 8 - blst 1.2882 ms/op 999.09 us/op 1.29
BLS verifyMultipleSignatures - same message - 32 - blst 1.7021 ms/op 1.6106 ms/op 1.06
BLS verifyMultipleSignatures - same message - 64 - blst 2.5683 ms/op 2.4190 ms/op 1.06
BLS verifyMultipleSignatures - same message - 128 - blst 4.1756 ms/op 3.9852 ms/op 1.05
BLS aggregatePubkeys 32 - blst 17.502 us/op 17.091 us/op 1.02
BLS aggregatePubkeys 128 - blst 62.924 us/op 60.162 us/op 1.05
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 42.723 ms/op 52.647 ms/op 0.81
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 38.780 ms/op 45.026 ms/op 0.86
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 37.376 ms/op 34.041 ms/op 1.10
getSlashingsAndExits - default max 46.794 us/op 47.839 us/op 0.98
getSlashingsAndExits - 2k 276.00 us/op 271.26 us/op 1.02
proposeBlockBody type=full, size=empty 5.5227 ms/op 5.1975 ms/op 1.06
isKnown best case - 1 super set check 152.00 ns/op 396.00 ns/op 0.38
isKnown normal case - 2 super set checks 154.00 ns/op 405.00 ns/op 0.38
isKnown worse case - 16 super set checks 156.00 ns/op 408.00 ns/op 0.38
InMemoryCheckpointStateCache - add get delete 1.9140 us/op 2.4390 us/op 0.78
validate api signedAggregateAndProof - struct 1.4212 ms/op 1.9351 ms/op 0.73
validate gossip signedAggregateAndProof - struct 1.4410 ms/op 1.7895 ms/op 0.81
batch validate gossip attestation - vc 640000 - chunk 32 108.27 us/op 108.16 us/op 1.00
batch validate gossip attestation - vc 640000 - chunk 64 93.496 us/op 94.002 us/op 0.99
batch validate gossip attestation - vc 640000 - chunk 128 85.616 us/op 86.455 us/op 0.99
batch validate gossip attestation - vc 640000 - chunk 256 84.104 us/op 89.996 us/op 0.93
pickEth1Vote - no votes 800.32 us/op 756.21 us/op 1.06
pickEth1Vote - max votes 4.1932 ms/op 5.1681 ms/op 0.81
pickEth1Vote - Eth1Data hashTreeRoot value x2048 8.7218 ms/op 9.3996 ms/op 0.93
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 11.341 ms/op 13.190 ms/op 0.86
pickEth1Vote - Eth1Data fastSerialize value x2048 371.43 us/op 339.10 us/op 1.10
pickEth1Vote - Eth1Data fastSerialize tree x2048 1.9285 ms/op 1.7567 ms/op 1.10
bytes32 toHexString 286.00 ns/op 505.00 ns/op 0.57
bytes32 Buffer.toString(hex) 179.00 ns/op 408.00 ns/op 0.44
bytes32 Buffer.toString(hex) from Uint8Array 261.00 ns/op 495.00 ns/op 0.53
bytes32 Buffer.toString(hex) + 0x 177.00 ns/op 413.00 ns/op 0.43
Object access 1 prop 0.090000 ns/op 0.30300 ns/op 0.30
Map access 1 prop 0.095000 ns/op 0.30700 ns/op 0.31
Object get x1000 5.0480 ns/op 5.0340 ns/op 1.00
Map get x1000 5.6210 ns/op 5.5110 ns/op 1.02
Object set x1000 18.496 ns/op 19.730 ns/op 0.94
Map set x1000 16.198 ns/op 17.279 ns/op 0.94
Return object 10000 times 0.27590 ns/op 0.28220 ns/op 0.98
Throw Error 10000 times 3.4495 us/op 3.5849 us/op 0.96
toHex 107.98 ns/op 98.808 ns/op 1.09
Buffer.from 99.117 ns/op 93.708 ns/op 1.06
shared Buffer 70.542 ns/op 66.552 ns/op 1.06
fastMsgIdFn sha256 / 200 bytes 1.6710 us/op 1.9620 us/op 0.85
fastMsgIdFn h32 xxhash / 200 bytes 165.00 ns/op 441.00 ns/op 0.37
fastMsgIdFn h64 xxhash / 200 bytes 200.00 ns/op 419.00 ns/op 0.48
fastMsgIdFn sha256 / 1000 bytes 5.3370 us/op 5.7310 us/op 0.93
fastMsgIdFn h32 xxhash / 1000 bytes 292.00 ns/op 491.00 ns/op 0.59
fastMsgIdFn h64 xxhash / 1000 bytes 291.00 ns/op 485.00 ns/op 0.60
fastMsgIdFn sha256 / 10000 bytes 49.130 us/op 49.784 us/op 0.99
fastMsgIdFn h32 xxhash / 10000 bytes 1.6320 us/op 1.8890 us/op 0.86
fastMsgIdFn h64 xxhash / 10000 bytes 1.0580 us/op 1.3380 us/op 0.79
send data - 1000 256B messages 11.798 ms/op 14.581 ms/op 0.81
send data - 1000 512B messages 14.043 ms/op 20.326 ms/op 0.69
send data - 1000 1024B messages 19.978 ms/op 21.732 ms/op 0.92
send data - 1000 1200B messages 15.779 ms/op 20.650 ms/op 0.76
send data - 1000 2048B messages 15.872 ms/op 21.459 ms/op 0.74
send data - 1000 4096B messages 15.830 ms/op 15.534 ms/op 1.02
send data - 1000 16384B messages 28.336 ms/op 31.287 ms/op 0.91
send data - 1000 65536B messages 73.364 ms/op 71.037 ms/op 1.03
enrSubnets - fastDeserialize 64 bits 708.00 ns/op 976.00 ns/op 0.73
enrSubnets - ssz BitVector 64 bits 245.00 ns/op 507.00 ns/op 0.48
enrSubnets - fastDeserialize 4 bits 97.000 ns/op 306.00 ns/op 0.32
enrSubnets - ssz BitVector 4 bits 247.00 ns/op 494.00 ns/op 0.50
prioritizePeers score -10:0 att 32-0.1 sync 2-0 195.02 us/op 198.40 us/op 0.98
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 224.93 us/op 231.30 us/op 0.97
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 372.99 us/op 385.86 us/op 0.97
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 670.21 us/op 659.45 us/op 1.02
prioritizePeers score 0:0 att 64-1 sync 4-1 802.79 us/op 811.51 us/op 0.99
array of 16000 items push then shift 1.2701 us/op 1.2593 us/op 1.01
LinkedList of 16000 items push then shift 5.8210 ns/op 7.7750 ns/op 0.75
array of 16000 items push then pop 62.820 ns/op 66.177 ns/op 0.95
LinkedList of 16000 items push then pop 5.7130 ns/op 6.1100 ns/op 0.94
array of 24000 items push then shift 1.8653 us/op 1.8830 us/op 0.99
LinkedList of 24000 items push then shift 5.8370 ns/op 6.6290 ns/op 0.88
array of 24000 items push then pop 85.633 ns/op 94.018 ns/op 0.91
LinkedList of 24000 items push then pop 5.6910 ns/op 6.1910 ns/op 0.92
intersect bitArray bitLen 8 5.2230 ns/op 5.5470 ns/op 0.94
intersect array and set length 8 32.364 ns/op 32.575 ns/op 0.99
intersect bitArray bitLen 128 26.135 ns/op 26.178 ns/op 1.00
intersect array and set length 128 543.20 ns/op 560.95 ns/op 0.97
bitArray.getTrueBitIndexes() bitLen 128 877.00 ns/op 1.2140 us/op 0.72
bitArray.getTrueBitIndexes() bitLen 248 1.5260 us/op 2.0090 us/op 0.76
bitArray.getTrueBitIndexes() bitLen 512 3.0890 us/op 3.7100 us/op 0.83
Buffer.concat 32 items 525.00 ns/op 841.00 ns/op 0.62
Uint8Array.set 32 items 938.00 ns/op 1.3070 us/op 0.72
Buffer.copy 2.0060 us/op 2.4020 us/op 0.84
Uint8Array.set - with subarray 2.5400 us/op 2.0300 us/op 1.25
Uint8Array.set - without subarray 746.00 ns/op 1.3350 us/op 0.56
getUint32 - dataview 146.00 ns/op 380.00 ns/op 0.38
getUint32 - manual 95.000 ns/op 300.00 ns/op 0.32
Set add up to 64 items then delete first 1.6428 us/op 1.8130 us/op 0.91
OrderedSet add up to 64 items then delete first 2.7377 us/op 2.8312 us/op 0.97
Set add up to 64 items then delete last 2.0288 us/op 2.0107 us/op 1.01
OrderedSet add up to 64 items then delete last 3.0232 us/op 3.8827 us/op 0.78
Set add up to 64 items then delete middle 2.0281 us/op 1.9070 us/op 1.06
OrderedSet add up to 64 items then delete middle 4.4244 us/op 4.4410 us/op 1.00
Set add up to 128 items then delete first 3.9965 us/op 4.0095 us/op 1.00
OrderedSet add up to 128 items then delete first 6.2401 us/op 6.7030 us/op 0.93
Set add up to 128 items then delete last 3.8780 us/op 3.9087 us/op 0.99
OrderedSet add up to 128 items then delete last 5.9161 us/op 8.2844 us/op 0.71
Set add up to 128 items then delete middle 3.8790 us/op 3.8873 us/op 1.00
OrderedSet add up to 128 items then delete middle 11.621 us/op 11.794 us/op 0.99
Set add up to 256 items then delete first 7.8915 us/op 7.8529 us/op 1.00
OrderedSet add up to 256 items then delete first 12.370 us/op 12.327 us/op 1.00
Set add up to 256 items then delete last 7.6516 us/op 7.5927 us/op 1.01
OrderedSet add up to 256 items then delete last 11.531 us/op 11.553 us/op 1.00
Set add up to 256 items then delete middle 7.5513 us/op 7.5605 us/op 1.00
OrderedSet add up to 256 items then delete middle 33.916 us/op 34.245 us/op 0.99
transfer serialized Status (84 B) 1.6660 us/op 2.0110 us/op 0.83
copy serialized Status (84 B) 932.00 ns/op 1.2290 us/op 0.76
transfer serialized SignedVoluntaryExit (112 B) 1.6810 us/op 1.9810 us/op 0.85
copy serialized SignedVoluntaryExit (112 B) 969.00 ns/op 1.2810 us/op 0.76
transfer serialized ProposerSlashing (416 B) 1.7360 us/op 2.0920 us/op 0.83
copy serialized ProposerSlashing (416 B) 1.0440 us/op 2.1300 us/op 0.49
transfer serialized Attestation (485 B) 2.2530 us/op 3.6060 us/op 0.62
copy serialized Attestation (485 B) 1.2130 us/op 2.4250 us/op 0.50
transfer serialized AttesterSlashing (33232 B) 1.7770 us/op 2.7610 us/op 0.64
copy serialized AttesterSlashing (33232 B) 2.1930 us/op 3.4380 us/op 0.64
transfer serialized Small SignedBeaconBlock (128000 B) 1.8440 us/op 2.4390 us/op 0.76
copy serialized Small SignedBeaconBlock (128000 B) 5.3880 us/op 6.1490 us/op 0.88
transfer serialized Avg SignedBeaconBlock (200000 B) 2.0570 us/op 2.5500 us/op 0.81
copy serialized Avg SignedBeaconBlock (200000 B) 7.9550 us/op 8.7780 us/op 0.91
transfer serialized BlobsSidecar (524380 B) 2.7300 us/op 4.0510 us/op 0.67
copy serialized BlobsSidecar (524380 B) 104.18 us/op 62.143 us/op 1.68
transfer serialized Big SignedBeaconBlock (1000000 B) 3.1020 us/op 4.3350 us/op 0.72
copy serialized Big SignedBeaconBlock (1000000 B) 114.88 us/op 120.73 us/op 0.95
pass gossip attestations to forkchoice per slot 2.3825 ms/op 2.5200 ms/op 0.95
forkChoice updateHead vc 100000 bc 64 eq 0 347.75 us/op 354.60 us/op 0.98
forkChoice updateHead vc 600000 bc 64 eq 0 2.1353 ms/op 2.3205 ms/op 0.92
forkChoice updateHead vc 1000000 bc 64 eq 0 3.8215 ms/op 3.9942 ms/op 0.96
forkChoice updateHead vc 600000 bc 320 eq 0 2.3763 ms/op 2.3833 ms/op 1.00
forkChoice updateHead vc 600000 bc 1200 eq 0 2.4056 ms/op 2.5416 ms/op 0.95
forkChoice updateHead vc 600000 bc 7200 eq 0 2.3659 ms/op 2.6413 ms/op 0.90
forkChoice updateHead vc 600000 bc 64 eq 1000 9.3659 ms/op 9.5880 ms/op 0.98
forkChoice updateHead vc 600000 bc 64 eq 10000 9.3047 ms/op 9.8283 ms/op 0.95
forkChoice updateHead vc 600000 bc 64 eq 300000 12.340 ms/op 11.606 ms/op 1.06
computeDeltas 500000 validators 300 proto nodes 3.1381 ms/op 3.2534 ms/op 0.96
computeDeltas 500000 validators 1200 proto nodes 3.1089 ms/op 3.3248 ms/op 0.94
computeDeltas 500000 validators 7200 proto nodes 3.1689 ms/op 3.2601 ms/op 0.97
computeDeltas 750000 validators 300 proto nodes 4.7502 ms/op 4.9503 ms/op 0.96
computeDeltas 750000 validators 1200 proto nodes 4.7422 ms/op 4.8994 ms/op 0.97
computeDeltas 750000 validators 7200 proto nodes 4.7074 ms/op 4.7845 ms/op 0.98
computeDeltas 1400000 validators 300 proto nodes 8.9149 ms/op 8.9772 ms/op 0.99
computeDeltas 1400000 validators 1200 proto nodes 8.7927 ms/op 9.0070 ms/op 0.98
computeDeltas 1400000 validators 7200 proto nodes 8.8018 ms/op 8.8337 ms/op 1.00
computeDeltas 2100000 validators 300 proto nodes 14.392 ms/op 13.375 ms/op 1.08
computeDeltas 2100000 validators 1200 proto nodes 14.722 ms/op 13.305 ms/op 1.11
computeDeltas 2100000 validators 7200 proto nodes 14.173 ms/op 13.238 ms/op 1.07
altair processAttestation - 250000 vs - 7PWei normalcase 3.0511 ms/op 1.6620 ms/op 1.84
altair processAttestation - 250000 vs - 7PWei worstcase 4.1143 ms/op 2.5132 ms/op 1.64
altair processAttestation - setStatus - 1/6 committees join 104.68 us/op 93.867 us/op 1.12
altair processAttestation - setStatus - 1/3 committees join 202.67 us/op 180.05 us/op 1.13
altair processAttestation - setStatus - 1/2 committees join 303.86 us/op 265.16 us/op 1.15
altair processAttestation - setStatus - 2/3 committees join 380.46 us/op 340.15 us/op 1.12
altair processAttestation - setStatus - 4/5 committees join 568.86 us/op 479.16 us/op 1.19
altair processAttestation - setStatus - 100% committees join 619.47 us/op 564.70 us/op 1.10
altair processBlock - 250000 vs - 7PWei normalcase 5.2894 ms/op 3.0700 ms/op 1.72
altair processBlock - 250000 vs - 7PWei normalcase hashState 35.922 ms/op 29.015 ms/op 1.24
altair processBlock - 250000 vs - 7PWei worstcase 39.979 ms/op 34.305 ms/op 1.17
altair processBlock - 250000 vs - 7PWei worstcase hashState 94.052 ms/op 88.094 ms/op 1.07
phase0 processBlock - 250000 vs - 7PWei normalcase 2.3568 ms/op 1.7850 ms/op 1.32
phase0 processBlock - 250000 vs - 7PWei worstcase 27.029 ms/op 22.269 ms/op 1.21
altair processEth1Data - 250000 vs - 7PWei normalcase 304.36 us/op 281.74 us/op 1.08
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 4.9710 us/op 5.1940 us/op 0.96
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 36.842 us/op 34.302 us/op 1.07
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 14.969 us/op 9.0020 us/op 1.66
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 8.7290 us/op 3.2900 us/op 2.65
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 186.20 us/op 93.146 us/op 2.00
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.3992 ms/op 1.3450 ms/op 1.04
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.9085 ms/op 1.7272 ms/op 1.10
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.7946 ms/op 1.7639 ms/op 1.02
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.8302 ms/op 3.6064 ms/op 1.34
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.8993 ms/op 1.8066 ms/op 1.05
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.3564 ms/op 3.7523 ms/op 1.16
Tree 40 250000 create 355.35 ms/op 367.59 ms/op 0.97
Tree 40 250000 get(125000) 112.92 ns/op 109.86 ns/op 1.03
Tree 40 250000 set(125000) 2.3596 us/op 1.1866 us/op 1.99
Tree 40 250000 toArray() 20.892 ms/op 15.970 ms/op 1.31
Tree 40 250000 iterate all - toArray() + loop 20.825 ms/op 17.860 ms/op 1.17
Tree 40 250000 iterate all - get(i) 53.090 ms/op 51.134 ms/op 1.04
Array 250000 create 2.3787 ms/op 2.1549 ms/op 1.10
Array 250000 clone - spread 727.51 us/op 663.07 us/op 1.10
Array 250000 get(125000) 0.38400 ns/op 0.56400 ns/op 0.68
Array 250000 set(125000) 0.39200 ns/op 0.58000 ns/op 0.68
Array 250000 iterate all - loop 78.815 us/op 76.203 us/op 1.03
phase0 afterProcessEpoch - 250000 vs - 7PWei 39.077 ms/op 37.545 ms/op 1.04
Array.fill - length 1000000 2.6067 ms/op 2.4538 ms/op 1.06
Array push - length 1000000 10.248 ms/op 9.4652 ms/op 1.08
Array.get 0.27309 ns/op 0.25980 ns/op 1.05
Uint8Array.get 0.35293 ns/op 0.33982 ns/op 1.04
phase0 beforeProcessEpoch - 250000 vs - 7PWei 16.485 ms/op 17.556 ms/op 0.94
altair processEpoch - mainnet_e81889 290.92 ms/op 271.77 ms/op 1.07
mainnet_e81889 - altair beforeProcessEpoch 18.692 ms/op 14.768 ms/op 1.27
mainnet_e81889 - altair processJustificationAndFinalization 4.6400 us/op 4.7490 us/op 0.98
mainnet_e81889 - altair processInactivityUpdates 5.4123 ms/op 3.3173 ms/op 1.63
mainnet_e81889 - altair processRewardsAndPenalties 44.813 ms/op 38.021 ms/op 1.18
mainnet_e81889 - altair processRegistryUpdates 619.00 ns/op 824.00 ns/op 0.75
mainnet_e81889 - altair processSlashings 151.00 ns/op 388.00 ns/op 0.39
mainnet_e81889 - altair processEth1DataReset 158.00 ns/op 386.00 ns/op 0.41
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.0567 ms/op 1.0235 ms/op 1.03
mainnet_e81889 - altair processSlashingsReset 764.00 ns/op 1.0140 us/op 0.75
mainnet_e81889 - altair processRandaoMixesReset 1.2660 us/op 1.1870 us/op 1.07
mainnet_e81889 - altair processHistoricalRootsUpdate 224.00 ns/op 385.00 ns/op 0.58
mainnet_e81889 - altair processParticipationFlagUpdates 592.00 ns/op 676.00 ns/op 0.88
mainnet_e81889 - altair processSyncCommitteeUpdates 112.00 ns/op 347.00 ns/op 0.32
mainnet_e81889 - altair afterProcessEpoch 42.951 ms/op 39.296 ms/op 1.09
capella processEpoch - mainnet_e217614 865.30 ms/op 914.07 ms/op 0.95
mainnet_e217614 - capella beforeProcessEpoch 61.058 ms/op 56.959 ms/op 1.07
mainnet_e217614 - capella processJustificationAndFinalization 4.0300 us/op 4.4900 us/op 0.90
mainnet_e217614 - capella processInactivityUpdates 12.009 ms/op 12.781 ms/op 0.94
mainnet_e217614 - capella processRewardsAndPenalties 175.58 ms/op 184.81 ms/op 0.95
mainnet_e217614 - capella processRegistryUpdates 6.3170 us/op 6.7990 us/op 0.93
mainnet_e217614 - capella processSlashings 190.00 ns/op 391.00 ns/op 0.49
mainnet_e217614 - capella processEth1DataReset 134.00 ns/op 378.00 ns/op 0.35
mainnet_e217614 - capella processEffectiveBalanceUpdates 3.4664 ms/op 10.170 ms/op 0.34
mainnet_e217614 - capella processSlashingsReset 977.00 ns/op 1.0670 us/op 0.92
mainnet_e217614 - capella processRandaoMixesReset 1.0270 us/op 1.2720 us/op 0.81
mainnet_e217614 - capella processHistoricalRootsUpdate 141.00 ns/op 382.00 ns/op 0.37
mainnet_e217614 - capella processParticipationFlagUpdates 556.00 ns/op 678.00 ns/op 0.82
mainnet_e217614 - capella afterProcessEpoch 108.82 ms/op 105.64 ms/op 1.03
phase0 processEpoch - mainnet_e58758 281.89 ms/op 281.84 ms/op 1.00
mainnet_e58758 - phase0 beforeProcessEpoch 81.436 ms/op 65.901 ms/op 1.24
mainnet_e58758 - phase0 processJustificationAndFinalization 5.2150 us/op 4.7100 us/op 1.11
mainnet_e58758 - phase0 processRewardsAndPenalties 36.025 ms/op 37.659 ms/op 0.96
mainnet_e58758 - phase0 processRegistryUpdates 2.6590 us/op 2.7930 us/op 0.95
mainnet_e58758 - phase0 processSlashings 137.00 ns/op 384.00 ns/op 0.36
mainnet_e58758 - phase0 processEth1DataReset 132.00 ns/op 383.00 ns/op 0.34
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 924.01 us/op 896.16 us/op 1.03
mainnet_e58758 - phase0 processSlashingsReset 715.00 ns/op 1.1050 us/op 0.65
mainnet_e58758 - phase0 processRandaoMixesReset 988.00 ns/op 1.4000 us/op 0.71
mainnet_e58758 - phase0 processHistoricalRootsUpdate 150.00 ns/op 386.00 ns/op 0.39
mainnet_e58758 - phase0 processParticipationRecordUpdates 1.0280 us/op 1.2110 us/op 0.85
mainnet_e58758 - phase0 afterProcessEpoch 33.288 ms/op 32.057 ms/op 1.04
phase0 processEffectiveBalanceUpdates - 250000 normalcase 968.88 us/op 1.6430 ms/op 0.59
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.4408 ms/op 1.6757 ms/op 0.86
altair processInactivityUpdates - 250000 normalcase 20.622 ms/op 15.949 ms/op 1.29
altair processInactivityUpdates - 250000 worstcase 18.886 ms/op 17.700 ms/op 1.07
phase0 processRegistryUpdates - 250000 normalcase 4.6730 us/op 5.6510 us/op 0.83
phase0 processRegistryUpdates - 250000 badcase_full_deposits 294.86 us/op 288.49 us/op 1.02
phase0 processRegistryUpdates - 250000 worstcase 0.5 97.092 ms/op 104.80 ms/op 0.93
altair processRewardsAndPenalties - 250000 normalcase 21.339 ms/op 25.588 ms/op 0.83
altair processRewardsAndPenalties - 250000 worstcase 19.325 ms/op 25.774 ms/op 0.75
phase0 getAttestationDeltas - 250000 normalcase 5.4042 ms/op 6.2690 ms/op 0.86
phase0 getAttestationDeltas - 250000 worstcase 16.186 ms/op 4.8408 ms/op 3.34
phase0 processSlashings - 250000 worstcase 96.749 us/op 94.034 us/op 1.03
altair processSyncCommitteeUpdates - 250000 9.8497 ms/op 10.800 ms/op 0.91
BeaconState.hashTreeRoot - No change 174.00 ns/op 431.00 ns/op 0.40
BeaconState.hashTreeRoot - 1 full validator 69.616 us/op 82.354 us/op 0.85
BeaconState.hashTreeRoot - 32 full validator 905.18 us/op 832.39 us/op 1.09
BeaconState.hashTreeRoot - 512 full validator 7.5665 ms/op 9.8256 ms/op 0.77
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 104.51 us/op 75.416 us/op 1.39
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.2506 ms/op 1.1228 ms/op 1.11
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 20.233 ms/op 17.454 ms/op 1.16
BeaconState.hashTreeRoot - 1 balances 69.279 us/op 58.422 us/op 1.19
BeaconState.hashTreeRoot - 32 balances 562.37 us/op 693.52 us/op 0.81
BeaconState.hashTreeRoot - 512 balances 5.5322 ms/op 7.9373 ms/op 0.70
BeaconState.hashTreeRoot - 250000 balances 113.51 ms/op 181.84 ms/op 0.62
aggregationBits - 2048 els - zipIndexesInBitList 16.818 us/op 19.330 us/op 0.87
byteArrayEquals 32 42.699 ns/op 45.808 ns/op 0.93
Buffer.compare 32 16.373 ns/op 14.827 ns/op 1.10
byteArrayEquals 1024 1.2590 us/op 1.2099 us/op 1.04
Buffer.compare 1024 24.115 ns/op 23.220 ns/op 1.04
byteArrayEquals 16384 20.044 us/op 19.144 us/op 1.05
Buffer.compare 16384 178.56 ns/op 185.28 ns/op 0.96
byteArrayEquals 123687377 148.77 ms/op 149.59 ms/op 0.99
Buffer.compare 123687377 5.8362 ms/op 3.9623 ms/op 1.47
byteArrayEquals 32 - diff last byte 45.442 ns/op 46.366 ns/op 0.98
Buffer.compare 32 - diff last byte 15.010 ns/op 15.733 ns/op 0.95
byteArrayEquals 1024 - diff last byte 1.2140 us/op 1.2499 us/op 0.97
Buffer.compare 1024 - diff last byte 21.844 ns/op 24.996 ns/op 0.87
byteArrayEquals 16384 - diff last byte 19.728 us/op 19.791 us/op 1.00
Buffer.compare 16384 - diff last byte 185.53 ns/op 194.18 ns/op 0.96
byteArrayEquals 123687377 - diff last byte 150.18 ms/op 150.77 ms/op 1.00
Buffer.compare 123687377 - diff last byte 3.7389 ms/op 4.2158 ms/op 0.89
byteArrayEquals 32 - random bytes 4.6470 ns/op 4.8230 ns/op 0.96
Buffer.compare 32 - random bytes 16.565 ns/op 16.678 ns/op 0.99
byteArrayEquals 1024 - random bytes 4.6780 ns/op 4.8790 ns/op 0.96
Buffer.compare 1024 - random bytes 16.870 ns/op 17.177 ns/op 0.98
byteArrayEquals 16384 - random bytes 4.6410 ns/op 4.7980 ns/op 0.97
Buffer.compare 16384 - random bytes 16.655 ns/op 17.163 ns/op 0.97
byteArrayEquals 123687377 - random bytes 5.5900 ns/op 7.6300 ns/op 0.73
Buffer.compare 123687377 - random bytes 15.630 ns/op 20.100 ns/op 0.78
regular array get 100000 times 27.851 us/op 30.141 us/op 0.92
wrappedArray get 100000 times 34.933 us/op 30.213 us/op 1.16
arrayWithProxy get 100000 times 8.8794 ms/op 12.061 ms/op 0.74
ssz.Root.equals 42.616 ns/op 43.538 ns/op 0.98
byteArrayEquals 40.964 ns/op 42.737 ns/op 0.96
Buffer.compare 9.5570 ns/op 9.7970 ns/op 0.98
processSlot - 1 slots 8.7750 us/op 8.9880 us/op 0.98
processSlot - 32 slots 2.1584 ms/op 2.0927 ms/op 1.03
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 1.9395 ms/op 2.0194 ms/op 0.96
getCommitteeAssignments - req 1 vs - 250000 vc 1.8182 ms/op 1.8006 ms/op 1.01
getCommitteeAssignments - req 100 vs - 250000 vc 3.5044 ms/op 3.3959 ms/op 1.03
getCommitteeAssignments - req 1000 vs - 250000 vc 3.7350 ms/op 3.7010 ms/op 1.01
findModifiedValidators - 10000 modified validators 695.04 ms/op 760.71 ms/op 0.91
findModifiedValidators - 1000 modified validators 624.76 ms/op 697.86 ms/op 0.90
findModifiedValidators - 100 modified validators 223.35 ms/op 218.70 ms/op 1.02
findModifiedValidators - 10 modified validators 164.43 ms/op 178.02 ms/op 0.92
findModifiedValidators - 1 modified validators 126.98 ms/op 138.26 ms/op 0.92
findModifiedValidators - no difference 134.26 ms/op 144.99 ms/op 0.93
compare ViewDUs 5.7405 s/op 6.4240 s/op 0.89
compare each validator Uint8Array 1.2366 s/op 1.9534 s/op 0.63
compare ViewDU to Uint8Array 778.94 ms/op 1.2681 s/op 0.61
migrate state 1000000 validators, 24 modified, 0 new 944.91 ms/op 783.04 ms/op 1.21
migrate state 1000000 validators, 1700 modified, 1000 new 1.1728 s/op 1.0608 s/op 1.11
migrate state 1000000 validators, 3400 modified, 2000 new 1.2857 s/op 1.2125 s/op 1.06
migrate state 1500000 validators, 24 modified, 0 new 787.16 ms/op 808.52 ms/op 0.97
migrate state 1500000 validators, 1700 modified, 1000 new 1.0673 s/op 978.14 ms/op 1.09
migrate state 1500000 validators, 3400 modified, 2000 new 1.2349 s/op 1.1431 s/op 1.08
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 3.8000 ns/op 5.8300 ns/op 0.65
state getBlockRootAtSlot - 250000 vs - 7PWei 430.56 ns/op 273.26 ns/op 1.58
naive computeProposerIndex 100000 validators 39.294 ms/op 35.770 ms/op 1.10
computeProposerIndex 100000 validators 1.2966 ms/op 1.2619 ms/op 1.03
naiveGetNextSyncCommitteeIndices 1000 validators 5.8343 s/op 5.5017 s/op 1.06
getNextSyncCommitteeIndices 1000 validators 92.657 ms/op 90.538 ms/op 1.02
naiveGetNextSyncCommitteeIndices 10000 validators 5.5868 s/op 5.9875 s/op 0.93
getNextSyncCommitteeIndices 10000 validators 93.044 ms/op 94.122 ms/op 0.99
naiveGetNextSyncCommitteeIndices 100000 validators 5.3560 s/op 7.6653 s/op 0.70
getNextSyncCommitteeIndices 100000 validators 92.070 ms/op 97.032 ms/op 0.95
naive computeShuffledIndex 100000 validators 17.133 s/op 20.679 s/op 0.83
cached computeShuffledIndex 100000 validators 446.98 ms/op 461.38 ms/op 0.97
naive computeShuffledIndex 2000000 validators 390.75 s/op 366.90 s/op 1.07
cached computeShuffledIndex 2000000 validators 19.888 s/op 22.534 s/op 0.88
computeProposers - vc 250000 562.79 us/op 522.36 us/op 1.08
computeEpochShuffling - vc 250000 38.839 ms/op 36.568 ms/op 1.06
getNextSyncCommittee - vc 250000 9.5046 ms/op 8.8075 ms/op 1.08
computeSigningRoot for AttestationData 17.885 us/op 20.349 us/op 0.88
hash AttestationData serialized data then Buffer.toString(base64) 1.1833 us/op 1.1578 us/op 1.02
toHexString serialized data 947.48 ns/op 900.76 ns/op 1.05
Buffer.toString(base64) 110.04 ns/op 101.40 ns/op 1.09
nodejs block root to RootHex using toHex 109.22 ns/op 96.939 ns/op 1.13
nodejs block root to RootHex using toRootHex 75.088 ns/op 66.868 ns/op 1.12
nodejs fromhex(blob) 92.020 ms/op 86.484 ms/op 1.06
nodejs fromHexInto(blob) 82.022 ms/op 75.453 ms/op 1.09
browser block root to RootHex using the deprecated toHexString 191.40 ns/op 173.89 ns/op 1.10
browser block root to RootHex using toHex 156.64 ns/op 146.89 ns/op 1.07
browser block root to RootHex using toRootHex 150.03 ns/op 139.25 ns/op 1.08
browser fromHexInto(blob) 685.62 us/op 652.17 us/op 1.05
browser fromHex(blob) 659.25 ms/op 630.73 ms/op 1.05

by benchmarkbot/action

@philknows philknows merged commit 658ac34 into unstable Sep 11, 2025
18 of 20 checks passed
@philknows philknows deleted the philknows/update-networking-doc branch September 11, 2025 13:19
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.35.0 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants