这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@nflaig
Copy link
Member

@nflaig nflaig commented Sep 16, 2025

Motivation

To further increase the number of IPv6 nodes on the network it would help if we use dual-stack by default.

Description

Use dual-stack by default

  • if no listenAddress is specified then enable IPv4 and IPv6
  • if only listenAddress is configured then only enable IPv4
  • if only listenAddress6 is configured then only enable IPv6
  • if both listenAddress and listenAddress6 are configured enable both

Information about other clients can be found here https://ipv6eth.info/

@github-actions
Copy link
Contributor

Performance Report

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: 4d8ec7a Previous: 7931b71 Ratio
cached computeShuffledIndex 2000000 validators 16.300 s/op 73.672 s/op 0.22
computeSigningRoot for AttestationData 15.243 us/op 59.503 us/op 0.26
toHexString serialized data 948.74 ns/op 5.0120 us/op 0.19
Full benchmark results
Benchmark suite Current: 4d8ec7a Previous: 7931b71 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 732.93 us/op 987.14 us/op 0.74
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 29.372 us/op 36.553 us/op 0.80
BLS verify - blst 874.89 us/op 844.10 us/op 1.04
BLS verifyMultipleSignatures 3 - blst 1.3023 ms/op 1.3605 ms/op 0.96
BLS verifyMultipleSignatures 8 - blst 2.0825 ms/op 2.5078 ms/op 0.83
BLS verifyMultipleSignatures 32 - blst 4.3901 ms/op 7.3015 ms/op 0.60
BLS verifyMultipleSignatures 64 - blst 8.2092 ms/op 11.086 ms/op 0.74
BLS verifyMultipleSignatures 128 - blst 15.746 ms/op 17.014 ms/op 0.93
BLS deserializing 10000 signatures 610.92 ms/op 686.39 ms/op 0.89
BLS deserializing 100000 signatures 6.2678 s/op 7.0991 s/op 0.88
BLS verifyMultipleSignatures - same message - 3 - blst 973.47 us/op 986.79 us/op 0.99
BLS verifyMultipleSignatures - same message - 8 - blst 1.1004 ms/op 1.1255 ms/op 0.98
BLS verifyMultipleSignatures - same message - 32 - blst 1.6292 ms/op 1.8643 ms/op 0.87
BLS verifyMultipleSignatures - same message - 64 - blst 2.4369 ms/op 2.9778 ms/op 0.82
BLS verifyMultipleSignatures - same message - 128 - blst 3.9892 ms/op 4.5548 ms/op 0.88
BLS aggregatePubkeys 32 - blst 16.771 us/op 20.131 us/op 0.83
BLS aggregatePubkeys 128 - blst 59.288 us/op 72.137 us/op 0.82
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 46.272 ms/op 56.725 ms/op 0.82
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 46.689 ms/op 55.105 ms/op 0.85
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 29.764 ms/op 43.878 ms/op 0.68
getSlashingsAndExits - default max 52.299 us/op 82.908 us/op 0.63
getSlashingsAndExits - 2k 329.43 us/op 346.05 us/op 0.95
proposeBlockBody type=full, size=empty 4.8741 ms/op 6.4324 ms/op 0.76
isKnown best case - 1 super set check 407.00 ns/op 263.00 ns/op 1.55
isKnown normal case - 2 super set checks 400.00 ns/op 214.00 ns/op 1.87
isKnown worse case - 16 super set checks 404.00 ns/op 211.00 ns/op 1.91
InMemoryCheckpointStateCache - add get delete 2.4120 us/op 2.4930 us/op 0.97
validate api signedAggregateAndProof - struct 1.7265 ms/op 1.4070 ms/op 1.23
validate gossip signedAggregateAndProof - struct 1.9506 ms/op 2.9648 ms/op 0.66
batch validate gossip attestation - vc 640000 - chunk 32 105.67 us/op 116.99 us/op 0.90
batch validate gossip attestation - vc 640000 - chunk 64 93.052 us/op 105.29 us/op 0.88
batch validate gossip attestation - vc 640000 - chunk 128 86.124 us/op 99.937 us/op 0.86
batch validate gossip attestation - vc 640000 - chunk 256 90.514 us/op 108.90 us/op 0.83
pickEth1Vote - no votes 798.13 us/op 1.0717 ms/op 0.74
pickEth1Vote - max votes 4.5314 ms/op 10.888 ms/op 0.42
pickEth1Vote - Eth1Data hashTreeRoot value x2048 8.5527 ms/op 14.481 ms/op 0.59
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 12.661 ms/op 22.384 ms/op 0.57
pickEth1Vote - Eth1Data fastSerialize value x2048 370.02 us/op 461.78 us/op 0.80
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.1295 ms/op 3.1954 ms/op 0.67
bytes32 toHexString 514.00 ns/op 417.00 ns/op 1.23
bytes32 Buffer.toString(hex) 424.00 ns/op 268.00 ns/op 1.58
bytes32 Buffer.toString(hex) from Uint8Array 497.00 ns/op 371.00 ns/op 1.34
bytes32 Buffer.toString(hex) + 0x 425.00 ns/op 253.00 ns/op 1.68
Object access 1 prop 0.31400 ns/op 0.12400 ns/op 2.53
Map access 1 prop 0.31800 ns/op 0.14000 ns/op 2.27
Object get x1000 5.1330 ns/op 6.3770 ns/op 0.80
Map get x1000 5.3260 ns/op 6.7530 ns/op 0.79
Object set x1000 18.790 ns/op 33.992 ns/op 0.55
Map set x1000 16.392 ns/op 22.065 ns/op 0.74
Return object 10000 times 0.27510 ns/op 0.38510 ns/op 0.71
Throw Error 10000 times 3.4288 us/op 4.8030 us/op 0.71
toHex 94.158 ns/op 154.75 ns/op 0.61
Buffer.from 84.779 ns/op 133.77 ns/op 0.63
shared Buffer 60.109 ns/op 91.606 ns/op 0.66
fastMsgIdFn sha256 / 200 bytes 1.8550 us/op 2.2880 us/op 0.81
fastMsgIdFn h32 xxhash / 200 bytes 365.00 ns/op 264.00 ns/op 1.38
fastMsgIdFn h64 xxhash / 200 bytes 410.00 ns/op 297.00 ns/op 1.38
fastMsgIdFn sha256 / 1000 bytes 5.5680 us/op 7.7140 us/op 0.72
fastMsgIdFn h32 xxhash / 1000 bytes 488.00 ns/op 440.00 ns/op 1.11
fastMsgIdFn h64 xxhash / 1000 bytes 473.00 ns/op 346.00 ns/op 1.37
fastMsgIdFn sha256 / 10000 bytes 47.311 us/op 68.952 us/op 0.69
fastMsgIdFn h32 xxhash / 10000 bytes 1.8020 us/op 1.9480 us/op 0.93
fastMsgIdFn h64 xxhash / 10000 bytes 1.2520 us/op 1.2840 us/op 0.98
send data - 1000 256B messages 12.573 ms/op 18.544 ms/op 0.68
send data - 1000 512B messages 14.854 ms/op 24.532 ms/op 0.61
send data - 1000 1024B messages 20.960 ms/op 30.054 ms/op 0.70
send data - 1000 1200B messages 15.826 ms/op 30.580 ms/op 0.52
send data - 1000 2048B messages 16.683 ms/op 31.942 ms/op 0.52
send data - 1000 4096B messages 17.006 ms/op 31.574 ms/op 0.54
send data - 1000 16384B messages 32.744 ms/op 52.167 ms/op 0.63
send data - 1000 65536B messages 94.253 ms/op 126.30 ms/op 0.75
enrSubnets - fastDeserialize 64 bits 960.00 ns/op 910.00 ns/op 1.05
enrSubnets - ssz BitVector 64 bits 488.00 ns/op 340.00 ns/op 1.44
enrSubnets - fastDeserialize 4 bits 312.00 ns/op 148.00 ns/op 2.11
enrSubnets - ssz BitVector 4 bits 484.00 ns/op 351.00 ns/op 1.38
prioritizePeers score -10:0 att 32-0.1 sync 2-0 201.65 us/op 251.66 us/op 0.80
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 230.61 us/op 279.08 us/op 0.83
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 400.49 us/op 403.61 us/op 0.99
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 663.19 us/op 783.94 us/op 0.85
prioritizePeers score 0:0 att 64-1 sync 4-1 758.21 us/op 914.87 us/op 0.83
array of 16000 items push then shift 1.2866 us/op 1.7153 us/op 0.75
LinkedList of 16000 items push then shift 6.4600 ns/op 7.5440 ns/op 0.86
array of 16000 items push then pop 65.395 ns/op 85.065 ns/op 0.77
LinkedList of 16000 items push then pop 6.1770 ns/op 7.7760 ns/op 0.79
array of 24000 items push then shift 1.9645 us/op 2.4589 us/op 0.80
LinkedList of 24000 items push then shift 6.3560 ns/op 8.3380 ns/op 0.76
array of 24000 items push then pop 89.929 ns/op 116.70 ns/op 0.77
LinkedList of 24000 items push then pop 6.2200 ns/op 7.8150 ns/op 0.80
intersect bitArray bitLen 8 5.5080 ns/op 7.0530 ns/op 0.78
intersect array and set length 8 32.213 ns/op 40.636 ns/op 0.79
intersect bitArray bitLen 128 26.520 ns/op 31.356 ns/op 0.85
intersect array and set length 128 540.86 ns/op 648.08 ns/op 0.83
bitArray.getTrueBitIndexes() bitLen 128 1.1740 us/op 1.1190 us/op 1.05
bitArray.getTrueBitIndexes() bitLen 248 1.9330 us/op 2.0300 us/op 0.95
bitArray.getTrueBitIndexes() bitLen 512 3.3240 us/op 3.8390 us/op 0.87
Buffer.concat 32 items 972.00 ns/op 808.00 ns/op 1.20
Uint8Array.set 32 items 971.00 ns/op 1.7430 us/op 0.56
Buffer.copy 1.9990 us/op 2.8540 us/op 0.70
Uint8Array.set - with subarray 2.1570 us/op 2.7690 us/op 0.78
Uint8Array.set - without subarray 1.1050 us/op 1.9100 us/op 0.58
getUint32 - dataview 383.00 ns/op 219.00 ns/op 1.75
getUint32 - manual 318.00 ns/op 128.00 ns/op 2.48
Set add up to 64 items then delete first 1.9697 us/op 3.1588 us/op 0.62
OrderedSet add up to 64 items then delete first 3.0767 us/op 4.6676 us/op 0.66
Set add up to 64 items then delete last 2.5168 us/op 3.6006 us/op 0.70
OrderedSet add up to 64 items then delete last 3.4285 us/op 6.0558 us/op 0.57
Set add up to 64 items then delete middle 2.4352 us/op 2.6855 us/op 0.91
OrderedSet add up to 64 items then delete middle 4.7874 us/op 8.1962 us/op 0.58
Set add up to 128 items then delete first 4.2604 us/op 8.4261 us/op 0.51
OrderedSet add up to 128 items then delete first 6.5112 us/op 12.917 us/op 0.50
Set add up to 128 items then delete last 3.9983 us/op 7.8453 us/op 0.51
OrderedSet add up to 128 items then delete last 6.1707 us/op 13.307 us/op 0.46
Set add up to 128 items then delete middle 3.9515 us/op 7.8128 us/op 0.51
OrderedSet add up to 128 items then delete middle 11.644 us/op 20.025 us/op 0.58
Set add up to 256 items then delete first 7.9713 us/op 14.968 us/op 0.53
OrderedSet add up to 256 items then delete first 12.772 us/op 23.772 us/op 0.54
Set add up to 256 items then delete last 7.7302 us/op 14.010 us/op 0.55
OrderedSet add up to 256 items then delete last 11.836 us/op 21.385 us/op 0.55
Set add up to 256 items then delete middle 7.7554 us/op 13.525 us/op 0.57
OrderedSet add up to 256 items then delete middle 33.863 us/op 51.942 us/op 0.65
transfer serialized Status (84 B) 1.8500 us/op 3.2370 us/op 0.57
copy serialized Status (84 B) 1.1440 us/op 1.6100 us/op 0.71
transfer serialized SignedVoluntaryExit (112 B) 1.8800 us/op 2.6920 us/op 0.70
copy serialized SignedVoluntaryExit (112 B) 1.1780 us/op 1.6900 us/op 0.70
transfer serialized ProposerSlashing (416 B) 1.9490 us/op 3.1630 us/op 0.62
copy serialized ProposerSlashing (416 B) 1.2050 us/op 1.9470 us/op 0.62
transfer serialized Attestation (485 B) 1.8940 us/op 2.7820 us/op 0.68
copy serialized Attestation (485 B) 1.2210 us/op 2.2090 us/op 0.55
transfer serialized AttesterSlashing (33232 B) 1.9550 us/op 3.0970 us/op 0.63
copy serialized AttesterSlashing (33232 B) 2.3950 us/op 5.7720 us/op 0.41
transfer serialized Small SignedBeaconBlock (128000 B) 2.0410 us/op 3.6030 us/op 0.57
copy serialized Small SignedBeaconBlock (128000 B) 5.5280 us/op 16.464 us/op 0.34
transfer serialized Avg SignedBeaconBlock (200000 B) 2.1200 us/op 4.1400 us/op 0.51
copy serialized Avg SignedBeaconBlock (200000 B) 7.8290 us/op 26.646 us/op 0.29
transfer serialized BlobsSidecar (524380 B) 2.6780 us/op 5.0090 us/op 0.53
copy serialized BlobsSidecar (524380 B) 145.93 us/op 118.72 us/op 1.23
transfer serialized Big SignedBeaconBlock (1000000 B) 3.1850 us/op 5.0900 us/op 0.63
copy serialized Big SignedBeaconBlock (1000000 B) 102.98 us/op 184.95 us/op 0.56
pass gossip attestations to forkchoice per slot 2.3137 ms/op 3.7222 ms/op 0.62
forkChoice updateHead vc 100000 bc 64 eq 0 335.29 us/op 501.17 us/op 0.67
forkChoice updateHead vc 600000 bc 64 eq 0 2.2415 ms/op 3.4758 ms/op 0.64
forkChoice updateHead vc 1000000 bc 64 eq 0 4.8753 ms/op 5.5619 ms/op 0.88
forkChoice updateHead vc 600000 bc 320 eq 0 2.2594 ms/op 3.4869 ms/op 0.65
forkChoice updateHead vc 600000 bc 1200 eq 0 2.3848 ms/op 3.5822 ms/op 0.67
forkChoice updateHead vc 600000 bc 7200 eq 0 2.5302 ms/op 3.4665 ms/op 0.73
forkChoice updateHead vc 600000 bc 64 eq 1000 9.4337 ms/op 11.069 ms/op 0.85
forkChoice updateHead vc 600000 bc 64 eq 10000 9.3319 ms/op 11.673 ms/op 0.80
forkChoice updateHead vc 600000 bc 64 eq 300000 11.403 ms/op 19.242 ms/op 0.59
computeDeltas 500000 validators 300 proto nodes 3.1393 ms/op 4.2232 ms/op 0.74
computeDeltas 500000 validators 1200 proto nodes 3.1660 ms/op 4.6659 ms/op 0.68
computeDeltas 500000 validators 7200 proto nodes 3.9457 ms/op 5.0804 ms/op 0.78
computeDeltas 750000 validators 300 proto nodes 5.1969 ms/op 6.2768 ms/op 0.83
computeDeltas 750000 validators 1200 proto nodes 4.8416 ms/op 6.4115 ms/op 0.76
computeDeltas 750000 validators 7200 proto nodes 4.8678 ms/op 6.6405 ms/op 0.73
computeDeltas 1400000 validators 300 proto nodes 9.3843 ms/op 12.946 ms/op 0.72
computeDeltas 1400000 validators 1200 proto nodes 9.3277 ms/op 12.886 ms/op 0.72
computeDeltas 1400000 validators 7200 proto nodes 9.2872 ms/op 12.674 ms/op 0.73
computeDeltas 2100000 validators 300 proto nodes 14.252 ms/op 18.881 ms/op 0.75
computeDeltas 2100000 validators 1200 proto nodes 14.586 ms/op 19.407 ms/op 0.75
computeDeltas 2100000 validators 7200 proto nodes 14.475 ms/op 19.010 ms/op 0.76
altair processAttestation - 250000 vs - 7PWei normalcase 3.6681 ms/op 3.2035 ms/op 1.15
altair processAttestation - 250000 vs - 7PWei worstcase 4.6424 ms/op 4.4069 ms/op 1.05
altair processAttestation - setStatus - 1/6 committees join 142.62 us/op 152.85 us/op 0.93
altair processAttestation - setStatus - 1/3 committees join 231.52 us/op 257.35 us/op 0.90
altair processAttestation - setStatus - 1/2 committees join 316.23 us/op 382.60 us/op 0.83
altair processAttestation - setStatus - 2/3 committees join 387.82 us/op 469.97 us/op 0.83
altair processAttestation - setStatus - 4/5 committees join 847.27 us/op 637.27 us/op 1.33
altair processAttestation - setStatus - 100% committees join 652.91 us/op 732.65 us/op 0.89
altair processBlock - 250000 vs - 7PWei normalcase 5.0702 ms/op 9.9557 ms/op 0.51
altair processBlock - 250000 vs - 7PWei normalcase hashState 26.067 ms/op 34.846 ms/op 0.75
altair processBlock - 250000 vs - 7PWei worstcase 45.377 ms/op 38.361 ms/op 1.18
altair processBlock - 250000 vs - 7PWei worstcase hashState 93.966 ms/op 83.205 ms/op 1.13
phase0 processBlock - 250000 vs - 7PWei normalcase 2.5554 ms/op 2.0949 ms/op 1.22
phase0 processBlock - 250000 vs - 7PWei worstcase 24.185 ms/op 27.938 ms/op 0.87
altair processEth1Data - 250000 vs - 7PWei normalcase 394.10 us/op 390.05 us/op 1.01
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 8.3670 us/op 6.3080 us/op 1.33
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 40.831 us/op 45.752 us/op 0.89
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 13.702 us/op 13.412 us/op 1.02
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 11.356 us/op 7.0070 us/op 1.62
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 146.32 us/op 224.68 us/op 0.65
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.8547 ms/op 2.1994 ms/op 0.84
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.3123 ms/op 2.5283 ms/op 0.91
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.1298 ms/op 2.7162 ms/op 0.78
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.9253 ms/op 5.6106 ms/op 0.70
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.4614 ms/op 3.0307 ms/op 0.81
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 7.3953 ms/op 4.8121 ms/op 1.54
Tree 40 250000 create 410.79 ms/op 470.41 ms/op 0.87
Tree 40 250000 get(125000) 114.40 ns/op 145.50 ns/op 0.79
Tree 40 250000 set(125000) 1.3557 us/op 1.5737 us/op 0.86
Tree 40 250000 toArray() 22.884 ms/op 21.141 ms/op 1.08
Tree 40 250000 iterate all - toArray() + loop 23.742 ms/op 20.931 ms/op 1.13
Tree 40 250000 iterate all - get(i) 55.872 ms/op 59.209 ms/op 0.94
Array 250000 create 3.2035 ms/op 2.4273 ms/op 1.32
Array 250000 clone - spread 746.63 us/op 809.21 us/op 0.92
Array 250000 get(125000) 0.58800 ns/op 0.40000 ns/op 1.47
Array 250000 set(125000) 0.60800 ns/op 0.42700 ns/op 1.42
Array 250000 iterate all - loop 105.57 us/op 110.50 us/op 0.96
phase0 afterProcessEpoch - 250000 vs - 7PWei 39.631 ms/op 41.865 ms/op 0.95
Array.fill - length 1000000 2.5879 ms/op 3.7413 ms/op 0.69
Array push - length 1000000 12.134 ms/op 13.014 ms/op 0.93
Array.get 0.33265 ns/op 0.28862 ns/op 1.15
Uint8Array.get 0.42932 ns/op 0.44984 ns/op 0.95
phase0 beforeProcessEpoch - 250000 vs - 7PWei 20.954 ms/op 16.389 ms/op 1.28
altair processEpoch - mainnet_e81889 300.70 ms/op 258.55 ms/op 1.16
mainnet_e81889 - altair beforeProcessEpoch 18.902 ms/op 17.750 ms/op 1.06
mainnet_e81889 - altair processJustificationAndFinalization 5.7030 us/op 6.0840 us/op 0.94
mainnet_e81889 - altair processInactivityUpdates 6.2144 ms/op 4.1395 ms/op 1.50
mainnet_e81889 - altair processRewardsAndPenalties 40.301 ms/op 47.203 ms/op 0.85
mainnet_e81889 - altair processRegistryUpdates 1.0560 us/op 696.00 ns/op 1.52
mainnet_e81889 - altair processSlashings 451.00 ns/op 180.00 ns/op 2.51
mainnet_e81889 - altair processEth1DataReset 436.00 ns/op 174.00 ns/op 2.51
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.1617 ms/op 1.1869 ms/op 0.98
mainnet_e81889 - altair processSlashingsReset 1.2800 us/op 1.0540 us/op 1.21
mainnet_e81889 - altair processRandaoMixesReset 1.4220 us/op 1.3060 us/op 1.09
mainnet_e81889 - altair processHistoricalRootsUpdate 428.00 ns/op 184.00 ns/op 2.33
mainnet_e81889 - altair processParticipationFlagUpdates 797.00 ns/op 523.00 ns/op 1.52
mainnet_e81889 - altair processSyncCommitteeUpdates 401.00 ns/op 146.00 ns/op 2.75
mainnet_e81889 - altair afterProcessEpoch 42.889 ms/op 44.366 ms/op 0.97
capella processEpoch - mainnet_e217614 846.76 ms/op 851.23 ms/op 0.99
mainnet_e217614 - capella beforeProcessEpoch 58.039 ms/op 63.349 ms/op 0.92
mainnet_e217614 - capella processJustificationAndFinalization 4.6590 us/op 5.3600 us/op 0.87
mainnet_e217614 - capella processInactivityUpdates 12.392 ms/op 15.336 ms/op 0.81
mainnet_e217614 - capella processRewardsAndPenalties 184.49 ms/op 193.32 ms/op 0.95
mainnet_e217614 - capella processRegistryUpdates 6.6860 us/op 7.2390 us/op 0.92
mainnet_e217614 - capella processSlashings 413.00 ns/op 187.00 ns/op 2.21
mainnet_e217614 - capella processEth1DataReset 426.00 ns/op 174.00 ns/op 2.45
mainnet_e217614 - capella processEffectiveBalanceUpdates 14.281 ms/op 4.2037 ms/op 3.40
mainnet_e217614 - capella processSlashingsReset 1.1090 us/op 1.0280 us/op 1.08
mainnet_e217614 - capella processRandaoMixesReset 1.3930 us/op 1.2790 us/op 1.09
mainnet_e217614 - capella processHistoricalRootsUpdate 404.00 ns/op 179.00 ns/op 2.26
mainnet_e217614 - capella processParticipationFlagUpdates 799.00 ns/op 555.00 ns/op 1.44
mainnet_e217614 - capella afterProcessEpoch 107.06 ms/op 119.19 ms/op 0.90
phase0 processEpoch - mainnet_e58758 297.34 ms/op 378.93 ms/op 0.78
mainnet_e58758 - phase0 beforeProcessEpoch 70.593 ms/op 94.735 ms/op 0.75
mainnet_e58758 - phase0 processJustificationAndFinalization 5.5500 us/op 6.8330 us/op 0.81
mainnet_e58758 - phase0 processRewardsAndPenalties 38.196 ms/op 44.119 ms/op 0.87
mainnet_e58758 - phase0 processRegistryUpdates 2.9000 us/op 3.7020 us/op 0.78
mainnet_e58758 - phase0 processSlashings 432.00 ns/op 244.00 ns/op 1.77
mainnet_e58758 - phase0 processEth1DataReset 414.00 ns/op 264.00 ns/op 1.57
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 982.99 us/op 2.0018 ms/op 0.49
mainnet_e58758 - phase0 processSlashingsReset 1.4300 us/op 1.1890 us/op 1.20
mainnet_e58758 - phase0 processRandaoMixesReset 1.5660 us/op 1.6710 us/op 0.94
mainnet_e58758 - phase0 processHistoricalRootsUpdate 439.00 ns/op 221.00 ns/op 1.99
mainnet_e58758 - phase0 processParticipationRecordUpdates 1.2210 us/op 967.00 ns/op 1.26
mainnet_e58758 - phase0 afterProcessEpoch 35.067 ms/op 36.501 ms/op 0.96
phase0 processEffectiveBalanceUpdates - 250000 normalcase 988.64 us/op 1.5674 ms/op 0.63
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.4617 ms/op 2.8998 ms/op 0.50
altair processInactivityUpdates - 250000 normalcase 16.448 ms/op 24.630 ms/op 0.67
altair processInactivityUpdates - 250000 worstcase 17.311 ms/op 23.092 ms/op 0.75
phase0 processRegistryUpdates - 250000 normalcase 5.8470 us/op 16.821 us/op 0.35
phase0 processRegistryUpdates - 250000 badcase_full_deposits 288.19 us/op 389.57 us/op 0.74
phase0 processRegistryUpdates - 250000 worstcase 0.5 98.399 ms/op 132.65 ms/op 0.74
altair processRewardsAndPenalties - 250000 normalcase 24.643 ms/op 31.691 ms/op 0.78
altair processRewardsAndPenalties - 250000 worstcase 27.856 ms/op 32.233 ms/op 0.86
phase0 getAttestationDeltas - 250000 normalcase 5.2661 ms/op 8.8331 ms/op 0.60
phase0 getAttestationDeltas - 250000 worstcase 5.7497 ms/op 6.5743 ms/op 0.87
phase0 processSlashings - 250000 worstcase 67.104 us/op 120.18 us/op 0.56
altair processSyncCommitteeUpdates - 250000 9.9376 ms/op 13.225 ms/op 0.75
BeaconState.hashTreeRoot - No change 478.00 ns/op 248.00 ns/op 1.93
BeaconState.hashTreeRoot - 1 full validator 69.562 us/op 99.543 us/op 0.70
BeaconState.hashTreeRoot - 32 full validator 883.28 us/op 1.0430 ms/op 0.85
BeaconState.hashTreeRoot - 512 full validator 12.110 ms/op 13.513 ms/op 0.90
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 87.877 us/op 147.15 us/op 0.60
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.4088 ms/op 2.1661 ms/op 0.65
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 25.449 ms/op 37.195 ms/op 0.68
BeaconState.hashTreeRoot - 1 balances 57.742 us/op 88.143 us/op 0.66
BeaconState.hashTreeRoot - 32 balances 549.93 us/op 842.77 us/op 0.65
BeaconState.hashTreeRoot - 512 balances 5.5986 ms/op 10.115 ms/op 0.55
BeaconState.hashTreeRoot - 250000 balances 127.77 ms/op 221.56 ms/op 0.58
aggregationBits - 2048 els - zipIndexesInBitList 17.828 us/op 24.872 us/op 0.72
byteArrayEquals 32 43.300 ns/op 55.042 ns/op 0.79
Buffer.compare 32 15.616 ns/op 18.277 ns/op 0.85
byteArrayEquals 1024 1.2697 us/op 1.6496 us/op 0.77
Buffer.compare 1024 23.681 ns/op 26.924 ns/op 0.88
byteArrayEquals 16384 20.355 us/op 26.317 us/op 0.77
Buffer.compare 16384 169.83 ns/op 203.36 ns/op 0.84
byteArrayEquals 123687377 154.68 ms/op 193.85 ms/op 0.80
Buffer.compare 123687377 6.1571 ms/op 6.5498 ms/op 0.94
byteArrayEquals 32 - diff last byte 41.532 ns/op 52.030 ns/op 0.80
Buffer.compare 32 - diff last byte 15.147 ns/op 17.439 ns/op 0.87
byteArrayEquals 1024 - diff last byte 1.2392 us/op 1.5989 us/op 0.78
Buffer.compare 1024 - diff last byte 22.363 ns/op 26.498 ns/op 0.84
byteArrayEquals 16384 - diff last byte 19.782 us/op 25.345 us/op 0.78
Buffer.compare 16384 - diff last byte 196.61 ns/op 186.10 ns/op 1.06
byteArrayEquals 123687377 - diff last byte 154.90 ms/op 191.26 ms/op 0.81
Buffer.compare 123687377 - diff last byte 5.2499 ms/op 7.4089 ms/op 0.71
byteArrayEquals 32 - random bytes 4.8420 ns/op 5.1020 ns/op 0.95
Buffer.compare 32 - random bytes 15.462 ns/op 17.023 ns/op 0.91
byteArrayEquals 1024 - random bytes 4.8670 ns/op 5.1010 ns/op 0.95
Buffer.compare 1024 - random bytes 15.310 ns/op 17.107 ns/op 0.89
byteArrayEquals 16384 - random bytes 4.8280 ns/op 5.1200 ns/op 0.94
Buffer.compare 16384 - random bytes 15.305 ns/op 17.015 ns/op 0.90
byteArrayEquals 123687377 - random bytes 7.6400 ns/op 7.4200 ns/op 1.03
Buffer.compare 123687377 - random bytes 18.280 ns/op 18.280 ns/op 1.00
regular array get 100000 times 41.137 us/op 33.134 us/op 1.24
wrappedArray get 100000 times 41.115 us/op 36.329 us/op 1.13
arrayWithProxy get 100000 times 9.6587 ms/op 12.603 ms/op 0.77
ssz.Root.equals 39.927 ns/op 46.020 ns/op 0.87
byteArrayEquals 39.388 ns/op 45.073 ns/op 0.87
Buffer.compare 9.1070 ns/op 10.324 ns/op 0.88
processSlot - 1 slots 8.9220 us/op 11.260 us/op 0.79
processSlot - 32 slots 2.1688 ms/op 1.8926 ms/op 1.15
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 2.3105 ms/op 2.8736 ms/op 0.80
getCommitteeAssignments - req 1 vs - 250000 vc 1.8069 ms/op 2.1227 ms/op 0.85
getCommitteeAssignments - req 100 vs - 250000 vc 3.6121 ms/op 4.1225 ms/op 0.88
getCommitteeAssignments - req 1000 vs - 250000 vc 3.8355 ms/op 4.4715 ms/op 0.86
findModifiedValidators - 10000 modified validators 826.82 ms/op 763.04 ms/op 1.08
findModifiedValidators - 1000 modified validators 728.20 ms/op 740.88 ms/op 0.98
findModifiedValidators - 100 modified validators 191.22 ms/op 256.37 ms/op 0.75
findModifiedValidators - 10 modified validators 139.38 ms/op 167.57 ms/op 0.83
findModifiedValidators - 1 modified validators 142.19 ms/op 138.46 ms/op 1.03
findModifiedValidators - no difference 146.97 ms/op 143.30 ms/op 1.03
compare ViewDUs 6.2644 s/op 6.1549 s/op 1.02
compare each validator Uint8Array 1.6834 s/op 894.01 ms/op 1.88
compare ViewDU to Uint8Array 775.83 ms/op 1.0957 s/op 0.71
migrate state 1000000 validators, 24 modified, 0 new 863.12 ms/op 844.39 ms/op 1.02
migrate state 1000000 validators, 1700 modified, 1000 new 1.0511 s/op 1.1726 s/op 0.90
migrate state 1000000 validators, 3400 modified, 2000 new 1.2309 s/op 1.2278 s/op 1.00
migrate state 1500000 validators, 24 modified, 0 new 862.17 ms/op 901.32 ms/op 0.96
migrate state 1500000 validators, 1700 modified, 1000 new 1.0406 s/op 1.1517 s/op 0.90
migrate state 1500000 validators, 3400 modified, 2000 new 1.1872 s/op 1.3732 s/op 0.86
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.7900 ns/op 4.3700 ns/op 1.32
state getBlockRootAtSlot - 250000 vs - 7PWei 472.09 ns/op 640.15 ns/op 0.74
naive computeProposerIndex 100000 validators 39.913 ms/op 57.354 ms/op 0.70
computeProposerIndex 100000 validators 1.2999 ms/op 1.6274 ms/op 0.80
naiveGetNextSyncCommitteeIndices 1000 validators 6.6375 s/op 8.2552 s/op 0.80
getNextSyncCommitteeIndices 1000 validators 94.350 ms/op 114.22 ms/op 0.83
naiveGetNextSyncCommitteeIndices 10000 validators 6.2565 s/op 7.5775 s/op 0.83
getNextSyncCommitteeIndices 10000 validators 92.315 ms/op 117.05 ms/op 0.79
naiveGetNextSyncCommitteeIndices 100000 validators 5.7835 s/op 8.0495 s/op 0.72
getNextSyncCommitteeIndices 100000 validators 93.383 ms/op 120.78 ms/op 0.77
naive computeShuffledIndex 100000 validators 18.935 s/op 26.442 s/op 0.72
cached computeShuffledIndex 100000 validators 489.48 ms/op 583.02 ms/op 0.84
naive computeShuffledIndex 2000000 validators 373.00 s/op 576.78 s/op 0.65
cached computeShuffledIndex 2000000 validators 16.300 s/op 73.672 s/op 0.22
computeProposers - vc 250000 523.64 us/op 676.52 us/op 0.77
computeEpochShuffling - vc 250000 37.448 ms/op 46.413 ms/op 0.81
getNextSyncCommittee - vc 250000 9.1430 ms/op 12.908 ms/op 0.71
computeSigningRoot for AttestationData 15.243 us/op 59.503 us/op 0.26
hash AttestationData serialized data then Buffer.toString(base64) 1.1912 us/op 2.1008 us/op 0.57
toHexString serialized data 948.74 ns/op 5.0120 us/op 0.19
Buffer.toString(base64) 102.64 ns/op 214.52 ns/op 0.48
nodejs block root to RootHex using toHex 115.08 ns/op 162.36 ns/op 0.71
nodejs block root to RootHex using toRootHex 78.422 ns/op 106.89 ns/op 0.73
nodejs fromhex(blob) 84.480 ms/op 152.72 ms/op 0.55
nodejs fromHexInto(blob) 81.607 ms/op 107.21 ms/op 0.76
browser block root to RootHex using the deprecated toHexString 187.69 ns/op 263.34 ns/op 0.71
browser block root to RootHex using toHex 151.41 ns/op 217.89 ns/op 0.69
browser block root to RootHex using toRootHex 138.85 ns/op 186.27 ns/op 0.75
browser fromHexInto(blob) 647.92 us/op 1.0409 ms/op 0.62
browser fromHex(blob) 639.61 ms/op 1.0033 s/op 0.64

by benchmarkbot/action

@codecov
Copy link

codecov bot commented Sep 16, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 54.10%. Comparing base (7931b71) to head (76cd729).
⚠️ Report is 5 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #8407      +/-   ##
============================================
+ Coverage     54.09%   54.10%   +0.01%     
============================================
  Files           850      850              
  Lines         64198    64200       +2     
  Branches       4854     4857       +3     
============================================
+ Hits          34729    34738       +9     
+ Misses        29392    29385       -7     
  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.

@nflaig nflaig marked this pull request as ready for review September 18, 2025 11:37
@nflaig nflaig requested a review from a team as a code owner September 18, 2025 11:37
Copy link
Member

@wemeetagain wemeetagain left a comment

Choose a reason for hiding this comment

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

lgtm

@wemeetagain wemeetagain merged commit 955e9f8 into unstable Sep 18, 2025
47 of 54 checks passed
@wemeetagain wemeetagain deleted the nflaig/default-dual-stack branch September 18, 2025 12:48
@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