-
-
Notifications
You must be signed in to change notification settings - Fork 434
docs: clarify ipv6 details in networking page #8368
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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
-
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. ↩
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request 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.
| 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 | ||
| ``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This 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.
| 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 Report✅ All modified and coverable lines are covered by tests. 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:
|
|
| 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
|
🎉 This PR is included in v1.35.0 🎉 |
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 port9000.