Skip to content
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

fix: do not register libp2p handler twice for same protocol #6455

Merged
merged 1 commit into from
Feb 20, 2024

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Feb 19, 2024

Motivation

Closes #6319

Description

In #5325 we have split out some functionality to be able to register dial only protocols but duplicate check to not register libp2p handler twice for same protocol has been moved in a function which does not even call libp2p.handle.

This changes adds it back in the right place and makes sure we do not register libp2p handler twice for same protocol.

@nflaig nflaig requested a review from a team as a code owner February 19, 2024 20:56
@nflaig nflaig added this to the v1.16.0 milestone Feb 19, 2024
@nflaig
Copy link
Member Author

nflaig commented Feb 19, 2024

Error logs are no longer observed in sim tests (sim-test-multifork-logs.zip)

Copy link

codecov bot commented Feb 19, 2024

Codecov Report

Merging #6455 (f79ebf5) into unstable (efb684a) will increase coverage by 0.00%.
The diff coverage is 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6455   +/-   ##
=========================================
  Coverage     61.63%   61.63%           
=========================================
  Files           553      553           
  Lines         57975    57974    -1     
  Branches       1832     1833    +1     
=========================================
+ Hits          35733    35735    +2     
+ Misses        22205    22202    -3     
  Partials         37       37           

Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 88efae9 Previous: efb684a Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 599.83 us/op 697.65 us/op 0.86
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 91.321 us/op 77.489 us/op 1.18
BLS verify - blst-native 1.3202 ms/op 1.2474 ms/op 1.06
BLS verifyMultipleSignatures 3 - blst-native 2.7861 ms/op 2.6167 ms/op 1.06
BLS verifyMultipleSignatures 8 - blst-native 6.0876 ms/op 5.7342 ms/op 1.06
BLS verifyMultipleSignatures 32 - blst-native 22.138 ms/op 20.982 ms/op 1.06
BLS verifyMultipleSignatures 64 - blst-native 43.311 ms/op 41.303 ms/op 1.05
BLS verifyMultipleSignatures 128 - blst-native 84.127 ms/op 82.015 ms/op 1.03
BLS deserializing 10000 signatures 930.80 ms/op 887.36 ms/op 1.05
BLS deserializing 100000 signatures 9.3795 s/op 9.1057 s/op 1.03
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.3638 ms/op 1.3087 ms/op 1.04
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.5380 ms/op 1.5334 ms/op 1.00
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.8537 ms/op 2.7232 ms/op 1.05
BLS verifyMultipleSignatures - same message - 64 - blst-native 4.2373 ms/op 4.3782 ms/op 0.97
BLS verifyMultipleSignatures - same message - 128 - blst-native 7.0216 ms/op 5.3888 ms/op 1.30
BLS aggregatePubkeys 32 - blst-native 28.424 us/op 24.695 us/op 1.15
BLS aggregatePubkeys 128 - blst-native 100.33 us/op 96.912 us/op 1.04
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 49.294 ms/op 47.999 ms/op 1.03
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 56.155 ms/op 42.317 ms/op 1.33
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 31.979 ms/op 30.178 ms/op 1.06
getSlashingsAndExits - default max 158.04 us/op 174.88 us/op 0.90
getSlashingsAndExits - 2k 386.37 us/op 375.66 us/op 1.03
proposeBlockBody type=full, size=empty 5.0071 ms/op 4.8396 ms/op 1.03
isKnown best case - 1 super set check 384.00 ns/op 288.00 ns/op 1.33
isKnown normal case - 2 super set checks 349.00 ns/op 280.00 ns/op 1.25
isKnown worse case - 16 super set checks 356.00 ns/op 282.00 ns/op 1.26
CheckpointStateCache - add get delete 5.5150 us/op 4.7720 us/op 1.16
validate api signedAggregateAndProof - struct 2.7831 ms/op 2.6652 ms/op 1.04
validate gossip signedAggregateAndProof - struct 2.7833 ms/op 2.6773 ms/op 1.04
validate gossip attestation - vc 640000 1.4141 ms/op 1.3090 ms/op 1.08
batch validate gossip attestation - vc 640000 - chunk 32 192.86 us/op 154.48 us/op 1.25
batch validate gossip attestation - vc 640000 - chunk 64 151.17 us/op 139.15 us/op 1.09
batch validate gossip attestation - vc 640000 - chunk 128 145.74 us/op 133.68 us/op 1.09
batch validate gossip attestation - vc 640000 - chunk 256 129.65 us/op 128.75 us/op 1.01
pickEth1Vote - no votes 1.1505 ms/op 1.3222 ms/op 0.87
pickEth1Vote - max votes 8.2247 ms/op 11.619 ms/op 0.71
pickEth1Vote - Eth1Data hashTreeRoot value x2048 16.047 ms/op 23.581 ms/op 0.68
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 21.549 ms/op 29.917 ms/op 0.72
pickEth1Vote - Eth1Data fastSerialize value x2048 643.71 us/op 606.84 us/op 1.06
pickEth1Vote - Eth1Data fastSerialize tree x2048 4.2577 ms/op 6.7329 ms/op 0.63
bytes32 toHexString 509.00 ns/op 512.00 ns/op 0.99
bytes32 Buffer.toString(hex) 301.00 ns/op 286.00 ns/op 1.05
bytes32 Buffer.toString(hex) from Uint8Array 432.00 ns/op 438.00 ns/op 0.99
bytes32 Buffer.toString(hex) + 0x 301.00 ns/op 289.00 ns/op 1.04
Object access 1 prop 0.16200 ns/op 0.16100 ns/op 1.01
Map access 1 prop 0.16100 ns/op 0.14300 ns/op 1.13
Object get x1000 7.2210 ns/op 7.1500 ns/op 1.01
Map get x1000 0.77500 ns/op 0.77600 ns/op 1.00
Object set x1000 54.948 ns/op 51.867 ns/op 1.06
Map set x1000 40.942 ns/op 45.226 ns/op 0.91
Return object 10000 times 0.24450 ns/op 0.24100 ns/op 1.01
Throw Error 10000 times 4.2488 us/op 3.8534 us/op 1.10
fastMsgIdFn sha256 / 200 bytes 3.3610 us/op 3.2940 us/op 1.02
fastMsgIdFn h32 xxhash / 200 bytes 282.00 ns/op 289.00 ns/op 0.98
fastMsgIdFn h64 xxhash / 200 bytes 361.00 ns/op 347.00 ns/op 1.04
fastMsgIdFn sha256 / 1000 bytes 11.478 us/op 11.170 us/op 1.03
fastMsgIdFn h32 xxhash / 1000 bytes 401.00 ns/op 464.00 ns/op 0.86
fastMsgIdFn h64 xxhash / 1000 bytes 430.00 ns/op 441.00 ns/op 0.98
fastMsgIdFn sha256 / 10000 bytes 104.76 us/op 103.75 us/op 1.01
fastMsgIdFn h32 xxhash / 10000 bytes 1.9140 us/op 2.0220 us/op 0.95
fastMsgIdFn h64 xxhash / 10000 bytes 1.3140 us/op 1.3750 us/op 0.96
send data - 1000 256B messages 18.161 ms/op 21.440 ms/op 0.85
send data - 1000 512B messages 30.145 ms/op 23.958 ms/op 1.26
send data - 1000 1024B messages 38.964 ms/op 43.625 ms/op 0.89
send data - 1000 1200B messages 37.224 ms/op 37.256 ms/op 1.00
send data - 1000 2048B messages 47.364 ms/op 49.670 ms/op 0.95
send data - 1000 4096B messages 26.051 ms/op 44.322 ms/op 0.59
send data - 1000 16384B messages 111.11 ms/op 114.42 ms/op 0.97
send data - 1000 65536B messages 453.85 ms/op 505.02 ms/op 0.90
enrSubnets - fastDeserialize 64 bits 1.4130 us/op 1.5210 us/op 0.93
enrSubnets - ssz BitVector 64 bits 443.00 ns/op 478.00 ns/op 0.93
enrSubnets - fastDeserialize 4 bits 174.00 ns/op 185.00 ns/op 0.94
enrSubnets - ssz BitVector 4 bits 428.00 ns/op 504.00 ns/op 0.85
prioritizePeers score -10:0 att 32-0.1 sync 2-0 100.98 us/op 111.92 us/op 0.90
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 126.39 us/op 141.58 us/op 0.89
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 160.33 us/op 184.57 us/op 0.87
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 282.40 us/op 331.33 us/op 0.85
prioritizePeers score 0:0 att 64-1 sync 4-1 333.70 us/op 400.29 us/op 0.83
array of 16000 items push then shift 1.6010 us/op 1.6985 us/op 0.94
LinkedList of 16000 items push then shift 8.9840 ns/op 9.2250 ns/op 0.97
array of 16000 items push then pop 74.973 ns/op 108.40 ns/op 0.69
LinkedList of 16000 items push then pop 8.7190 ns/op 8.7430 ns/op 1.00
array of 24000 items push then shift 2.4047 us/op 2.5359 us/op 0.95
LinkedList of 24000 items push then shift 8.9840 ns/op 8.9940 ns/op 1.00
array of 24000 items push then pop 107.48 ns/op 143.51 ns/op 0.75
LinkedList of 24000 items push then pop 8.6840 ns/op 8.6720 ns/op 1.00
intersect bitArray bitLen 8 5.7640 ns/op 5.7940 ns/op 0.99
intersect array and set length 8 61.810 ns/op 65.445 ns/op 0.94
intersect bitArray bitLen 128 35.076 ns/op 35.612 ns/op 0.98
intersect array and set length 128 856.11 ns/op 911.77 ns/op 0.94
bitArray.getTrueBitIndexes() bitLen 128 1.4200 us/op 1.6320 us/op 0.87
bitArray.getTrueBitIndexes() bitLen 248 2.4330 us/op 2.7040 us/op 0.90
bitArray.getTrueBitIndexes() bitLen 512 4.8230 us/op 5.4520 us/op 0.88
Buffer.concat 32 items 965.00 ns/op 987.00 ns/op 0.98
Uint8Array.set 32 items 1.7950 us/op 1.7920 us/op 1.00
Set add up to 64 items then delete first 4.1552 us/op 4.7651 us/op 0.87
OrderedSet add up to 64 items then delete first 5.4597 us/op 5.6861 us/op 0.96
Set add up to 64 items then delete last 4.6859 us/op 4.9010 us/op 0.96
OrderedSet add up to 64 items then delete last 5.8368 us/op 6.6721 us/op 0.87
Set add up to 64 items then delete middle 4.6361 us/op 5.1306 us/op 0.90
OrderedSet add up to 64 items then delete middle 6.9662 us/op 8.0169 us/op 0.87
Set add up to 128 items then delete first 9.2600 us/op 9.2276 us/op 1.00
OrderedSet add up to 128 items then delete first 12.464 us/op 12.416 us/op 1.00
Set add up to 128 items then delete last 9.1339 us/op 9.3763 us/op 0.97
OrderedSet add up to 128 items then delete last 11.508 us/op 11.597 us/op 0.99
Set add up to 128 items then delete middle 9.0552 us/op 9.0817 us/op 1.00
OrderedSet add up to 128 items then delete middle 16.617 us/op 16.960 us/op 0.98
Set add up to 256 items then delete first 18.637 us/op 18.913 us/op 0.99
OrderedSet add up to 256 items then delete first 25.096 us/op 25.112 us/op 1.00
Set add up to 256 items then delete last 18.042 us/op 18.431 us/op 0.98
OrderedSet add up to 256 items then delete last 23.356 us/op 23.377 us/op 1.00
Set add up to 256 items then delete middle 18.165 us/op 18.341 us/op 0.99
OrderedSet add up to 256 items then delete middle 44.444 us/op 46.453 us/op 0.96
transfer serialized Status (84 B) 1.7020 us/op 1.6390 us/op 1.04
copy serialized Status (84 B) 1.2610 us/op 1.2710 us/op 0.99
transfer serialized SignedVoluntaryExit (112 B) 1.7580 us/op 1.7640 us/op 1.00
copy serialized SignedVoluntaryExit (112 B) 1.5620 us/op 1.2940 us/op 1.21
transfer serialized ProposerSlashing (416 B) 2.7870 us/op 1.8970 us/op 1.47
copy serialized ProposerSlashing (416 B) 2.5900 us/op 2.3340 us/op 1.11
transfer serialized Attestation (485 B) 2.4100 us/op 2.5480 us/op 0.95
copy serialized Attestation (485 B) 2.0600 us/op 2.6680 us/op 0.77
transfer serialized AttesterSlashing (33232 B) 2.4280 us/op 2.0820 us/op 1.17
copy serialized AttesterSlashing (33232 B) 5.6500 us/op 5.8260 us/op 0.97
transfer serialized Small SignedBeaconBlock (128000 B) 2.9610 us/op 2.3220 us/op 1.28
copy serialized Small SignedBeaconBlock (128000 B) 15.264 us/op 15.494 us/op 0.99
transfer serialized Avg SignedBeaconBlock (200000 B) 3.4860 us/op 2.6170 us/op 1.33
copy serialized Avg SignedBeaconBlock (200000 B) 22.183 us/op 23.280 us/op 0.95
transfer serialized BlobsSidecar (524380 B) 3.5890 us/op 2.7070 us/op 1.33
copy serialized BlobsSidecar (524380 B) 103.59 us/op 87.278 us/op 1.19
transfer serialized Big SignedBeaconBlock (1000000 B) 3.5830 us/op 2.7380 us/op 1.31
copy serialized Big SignedBeaconBlock (1000000 B) 173.16 us/op 168.08 us/op 1.03
pass gossip attestations to forkchoice per slot 7.6715 ms/op 4.3541 ms/op 1.76
forkChoice updateHead vc 100000 bc 64 eq 0 723.19 us/op 691.76 us/op 1.05
forkChoice updateHead vc 600000 bc 64 eq 0 5.0381 ms/op 4.6346 ms/op 1.09
forkChoice updateHead vc 1000000 bc 64 eq 0 7.0489 ms/op 6.9423 ms/op 1.02
forkChoice updateHead vc 600000 bc 320 eq 0 4.2787 ms/op 4.1285 ms/op 1.04
forkChoice updateHead vc 600000 bc 1200 eq 0 4.1922 ms/op 4.2143 ms/op 0.99
forkChoice updateHead vc 600000 bc 7200 eq 0 5.2832 ms/op 5.2216 ms/op 1.01
forkChoice updateHead vc 600000 bc 64 eq 1000 11.072 ms/op 11.049 ms/op 1.00
forkChoice updateHead vc 600000 bc 64 eq 10000 12.328 ms/op 11.732 ms/op 1.05
forkChoice updateHead vc 600000 bc 64 eq 300000 15.629 ms/op 15.323 ms/op 1.02
computeDeltas 500000 validators 300 proto nodes 6.6397 ms/op 6.5420 ms/op 1.01
computeDeltas 500000 validators 1200 proto nodes 6.8276 ms/op 6.3806 ms/op 1.07
computeDeltas 500000 validators 7200 proto nodes 6.6738 ms/op 6.2551 ms/op 1.07
computeDeltas 750000 validators 300 proto nodes 10.223 ms/op 9.5757 ms/op 1.07
computeDeltas 750000 validators 1200 proto nodes 10.100 ms/op 9.7188 ms/op 1.04
computeDeltas 750000 validators 7200 proto nodes 10.787 ms/op 9.7933 ms/op 1.10
computeDeltas 1400000 validators 300 proto nodes 19.659 ms/op 18.590 ms/op 1.06
computeDeltas 1400000 validators 1200 proto nodes 20.275 ms/op 19.032 ms/op 1.07
computeDeltas 1400000 validators 7200 proto nodes 19.634 ms/op 18.276 ms/op 1.07
computeDeltas 2100000 validators 300 proto nodes 30.845 ms/op 26.697 ms/op 1.16
computeDeltas 2100000 validators 1200 proto nodes 30.053 ms/op 27.535 ms/op 1.09
computeDeltas 2100000 validators 7200 proto nodes 30.812 ms/op 28.111 ms/op 1.10
altair processAttestation - 250000 vs - 7PWei normalcase 3.6086 ms/op 1.9996 ms/op 1.80
altair processAttestation - 250000 vs - 7PWei worstcase 4.6297 ms/op 2.9370 ms/op 1.58
altair processAttestation - setStatus - 1/6 committees join 150.45 us/op 140.12 us/op 1.07
altair processAttestation - setStatus - 1/3 committees join 293.14 us/op 276.26 us/op 1.06
altair processAttestation - setStatus - 1/2 committees join 409.63 us/op 367.22 us/op 1.12
altair processAttestation - setStatus - 2/3 committees join 532.59 us/op 458.84 us/op 1.16
altair processAttestation - setStatus - 4/5 committees join 729.94 us/op 654.68 us/op 1.11
altair processAttestation - setStatus - 100% committees join 858.62 us/op 761.25 us/op 1.13
altair processBlock - 250000 vs - 7PWei normalcase 11.583 ms/op 9.5685 ms/op 1.21
altair processBlock - 250000 vs - 7PWei normalcase hashState 39.768 ms/op 32.780 ms/op 1.21
altair processBlock - 250000 vs - 7PWei worstcase 46.932 ms/op 35.516 ms/op 1.32
altair processBlock - 250000 vs - 7PWei worstcase hashState 108.57 ms/op 88.418 ms/op 1.23
phase0 processBlock - 250000 vs - 7PWei normalcase 3.3466 ms/op 2.6453 ms/op 1.27
phase0 processBlock - 250000 vs - 7PWei worstcase 34.147 ms/op 27.525 ms/op 1.24
altair processEth1Data - 250000 vs - 7PWei normalcase 814.89 us/op 548.64 us/op 1.49
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 16.227 us/op 7.2460 us/op 2.24
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 79.001 us/op 57.374 us/op 1.38
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 34.472 us/op 12.871 us/op 2.68
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 20.688 us/op 7.7030 us/op 2.69
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 177.91 us/op 150.49 us/op 1.18
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.7197 ms/op 1.1794 ms/op 1.46
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.6105 ms/op 1.4610 ms/op 1.79
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.1098 ms/op 1.6313 ms/op 1.29
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 5.3434 ms/op 3.2789 ms/op 1.63
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.9438 ms/op 2.3827 ms/op 1.24
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 7.8981 ms/op 5.6026 ms/op 1.41
Tree 40 250000 create 561.50 ms/op 352.57 ms/op 1.59
Tree 40 250000 get(125000) 223.81 ns/op 196.44 ns/op 1.14
Tree 40 250000 set(125000) 1.2214 us/op 1.0270 us/op 1.19
Tree 40 250000 toArray() 25.365 ms/op 20.038 ms/op 1.27
Tree 40 250000 iterate all - toArray() + loop 24.500 ms/op 20.691 ms/op 1.18
Tree 40 250000 iterate all - get(i) 80.573 ms/op 67.028 ms/op 1.20
MutableVector 250000 create 15.580 ms/op 13.728 ms/op 1.13
MutableVector 250000 get(125000) 7.1120 ns/op 6.6870 ns/op 1.06
MutableVector 250000 set(125000) 310.24 ns/op 281.88 ns/op 1.10
MutableVector 250000 toArray() 4.2812 ms/op 3.3387 ms/op 1.28
MutableVector 250000 iterate all - toArray() + loop 4.0080 ms/op 3.7943 ms/op 1.06
MutableVector 250000 iterate all - get(i) 1.5924 ms/op 1.5364 ms/op 1.04
Array 250000 create 3.6956 ms/op 3.5763 ms/op 1.03
Array 250000 clone - spread 1.4330 ms/op 1.4341 ms/op 1.00
Array 250000 get(125000) 1.1160 ns/op 1.1750 ns/op 0.95
Array 250000 set(125000) 4.3650 ns/op 4.4770 ns/op 0.97
Array 250000 iterate all - loop 176.58 us/op 165.13 us/op 1.07
effectiveBalanceIncrements clone Uint8Array 300000 56.703 us/op 40.824 us/op 1.39
effectiveBalanceIncrements clone MutableVector 300000 419.00 ns/op 458.00 ns/op 0.91
effectiveBalanceIncrements rw all Uint8Array 300000 210.03 us/op 201.65 us/op 1.04
effectiveBalanceIncrements rw all MutableVector 300000 105.42 ms/op 99.200 ms/op 1.06
phase0 afterProcessEpoch - 250000 vs - 7PWei 120.79 ms/op 116.19 ms/op 1.04
phase0 beforeProcessEpoch - 250000 vs - 7PWei 59.808 ms/op 39.152 ms/op 1.53
altair processEpoch - mainnet_e81889 597.68 ms/op 544.26 ms/op 1.10
mainnet_e81889 - altair beforeProcessEpoch 89.831 ms/op 90.585 ms/op 0.99
mainnet_e81889 - altair processJustificationAndFinalization 15.472 us/op 15.638 us/op 0.99
mainnet_e81889 - altair processInactivityUpdates 6.0606 ms/op 6.2163 ms/op 0.97
mainnet_e81889 - altair processRewardsAndPenalties 60.757 ms/op 64.901 ms/op 0.94
mainnet_e81889 - altair processRegistryUpdates 2.6520 us/op 4.5520 us/op 0.58
mainnet_e81889 - altair processSlashings 489.00 ns/op 1.0020 us/op 0.49
mainnet_e81889 - altair processEth1DataReset 447.00 ns/op 909.00 ns/op 0.49
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.4538 ms/op 2.4650 ms/op 0.59
mainnet_e81889 - altair processSlashingsReset 3.0510 us/op 5.8400 us/op 0.52
mainnet_e81889 - altair processRandaoMixesReset 5.2890 us/op 5.5300 us/op 0.96
mainnet_e81889 - altair processHistoricalRootsUpdate 558.00 ns/op 715.00 ns/op 0.78
mainnet_e81889 - altair processParticipationFlagUpdates 1.6400 us/op 1.9170 us/op 0.86
mainnet_e81889 - altair processSyncCommitteeUpdates 592.00 ns/op 647.00 ns/op 0.91
mainnet_e81889 - altair afterProcessEpoch 120.54 ms/op 119.23 ms/op 1.01
capella processEpoch - mainnet_e217614 2.1395 s/op 2.0907 s/op 1.02
mainnet_e217614 - capella beforeProcessEpoch 515.19 ms/op 482.39 ms/op 1.07
mainnet_e217614 - capella processJustificationAndFinalization 22.204 us/op 14.278 us/op 1.56
mainnet_e217614 - capella processInactivityUpdates 20.776 ms/op 21.228 ms/op 0.98
mainnet_e217614 - capella processRewardsAndPenalties 401.74 ms/op 399.91 ms/op 1.00
mainnet_e217614 - capella processRegistryUpdates 35.268 us/op 20.899 us/op 1.69
mainnet_e217614 - capella processSlashings 694.00 ns/op 567.00 ns/op 1.22
mainnet_e217614 - capella processEth1DataReset 474.00 ns/op 464.00 ns/op 1.02
mainnet_e217614 - capella processEffectiveBalanceUpdates 9.4755 ms/op 5.3251 ms/op 1.78
mainnet_e217614 - capella processSlashingsReset 5.7150 us/op 3.0670 us/op 1.86
mainnet_e217614 - capella processRandaoMixesReset 4.4800 us/op 4.4630 us/op 1.00
mainnet_e217614 - capella processHistoricalRootsUpdate 662.00 ns/op 504.00 ns/op 1.31
mainnet_e217614 - capella processParticipationFlagUpdates 1.4340 us/op 1.7130 us/op 0.84
mainnet_e217614 - capella afterProcessEpoch 336.74 ms/op 298.39 ms/op 1.13
phase0 processEpoch - mainnet_e58758 485.83 ms/op 480.35 ms/op 1.01
mainnet_e58758 - phase0 beforeProcessEpoch 140.63 ms/op 134.80 ms/op 1.04
mainnet_e58758 - phase0 processJustificationAndFinalization 17.268 us/op 16.134 us/op 1.07
mainnet_e58758 - phase0 processRewardsAndPenalties 35.990 ms/op 52.645 ms/op 0.68
mainnet_e58758 - phase0 processRegistryUpdates 13.506 us/op 12.711 us/op 1.06
mainnet_e58758 - phase0 processSlashings 573.00 ns/op 609.00 ns/op 0.94
mainnet_e58758 - phase0 processEth1DataReset 654.00 ns/op 437.00 ns/op 1.50
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.2756 ms/op 1.2118 ms/op 1.05
mainnet_e58758 - phase0 processSlashingsReset 2.9420 us/op 4.5520 us/op 0.65
mainnet_e58758 - phase0 processRandaoMixesReset 4.0140 us/op 4.0530 us/op 0.99
mainnet_e58758 - phase0 processHistoricalRootsUpdate 427.00 ns/op 454.00 ns/op 0.94
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.3430 us/op 3.8690 us/op 0.86
mainnet_e58758 - phase0 afterProcessEpoch 95.019 ms/op 95.710 ms/op 0.99
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.4080 ms/op 1.3896 ms/op 1.01
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.6216 ms/op 1.5153 ms/op 1.07
altair processInactivityUpdates - 250000 normalcase 20.961 ms/op 28.230 ms/op 0.74
altair processInactivityUpdates - 250000 worstcase 27.511 ms/op 22.473 ms/op 1.22
phase0 processRegistryUpdates - 250000 normalcase 11.227 us/op 11.704 us/op 0.96
phase0 processRegistryUpdates - 250000 badcase_full_deposits 454.03 us/op 468.15 us/op 0.97
phase0 processRegistryUpdates - 250000 worstcase 0.5 150.44 ms/op 139.83 ms/op 1.08
altair processRewardsAndPenalties - 250000 normalcase 55.647 ms/op 47.891 ms/op 1.16
altair processRewardsAndPenalties - 250000 worstcase 53.004 ms/op 57.232 ms/op 0.93
phase0 getAttestationDeltas - 250000 normalcase 9.2326 ms/op 11.398 ms/op 0.81
phase0 getAttestationDeltas - 250000 worstcase 9.7211 ms/op 11.416 ms/op 0.85
phase0 processSlashings - 250000 worstcase 91.776 us/op 112.88 us/op 0.81
altair processSyncCommitteeUpdates - 250000 166.30 ms/op 162.82 ms/op 1.02
BeaconState.hashTreeRoot - No change 399.00 ns/op 627.00 ns/op 0.64
BeaconState.hashTreeRoot - 1 full validator 132.59 us/op 135.91 us/op 0.98
BeaconState.hashTreeRoot - 32 full validator 1.5088 ms/op 1.3099 ms/op 1.15
BeaconState.hashTreeRoot - 512 full validator 15.027 ms/op 14.660 ms/op 1.02
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 194.07 us/op 157.85 us/op 1.23
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.1356 ms/op 2.1863 ms/op 0.98
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 31.391 ms/op 32.959 ms/op 0.95
BeaconState.hashTreeRoot - 1 balances 125.90 us/op 138.41 us/op 0.91
BeaconState.hashTreeRoot - 32 balances 1.1881 ms/op 1.2724 ms/op 0.93
BeaconState.hashTreeRoot - 512 balances 11.245 ms/op 14.375 ms/op 0.78
BeaconState.hashTreeRoot - 250000 balances 187.66 ms/op 200.34 ms/op 0.94
aggregationBits - 2048 els - zipIndexesInBitList 22.279 us/op 21.644 us/op 1.03
byteArrayEquals 32 78.016 ns/op 75.611 ns/op 1.03
Buffer.compare 32 58.009 ns/op 55.813 ns/op 1.04
byteArrayEquals 1024 2.1215 us/op 2.0574 us/op 1.03
Buffer.compare 1024 74.086 ns/op 70.522 ns/op 1.05
byteArrayEquals 16384 33.745 us/op 32.795 us/op 1.03
Buffer.compare 16384 281.76 ns/op 278.91 ns/op 1.01
byteArrayEquals 123687377 263.13 ms/op 248.89 ms/op 1.06
Buffer.compare 123687377 8.3566 ms/op 7.8375 ms/op 1.07
byteArrayEquals 32 - diff last byte 81.997 ns/op 75.749 ns/op 1.08
Buffer.compare 32 - diff last byte 59.621 ns/op 58.049 ns/op 1.03
byteArrayEquals 1024 - diff last byte 2.2115 us/op 2.0572 us/op 1.08
Buffer.compare 1024 - diff last byte 75.400 ns/op 73.985 ns/op 1.02
byteArrayEquals 16384 - diff last byte 35.309 us/op 32.789 us/op 1.08
Buffer.compare 16384 - diff last byte 262.54 ns/op 263.59 ns/op 1.00
byteArrayEquals 123687377 - diff last byte 264.55 ms/op 251.24 ms/op 1.05
Buffer.compare 123687377 - diff last byte 8.5801 ms/op 8.4139 ms/op 1.02
byteArrayEquals 32 - random bytes 6.2330 ns/op 6.1190 ns/op 1.02
Buffer.compare 32 - random bytes 63.754 ns/op 63.479 ns/op 1.00
byteArrayEquals 1024 - random bytes 6.2670 ns/op 6.4640 ns/op 0.97
Buffer.compare 1024 - random bytes 63.501 ns/op 63.146 ns/op 1.01
byteArrayEquals 16384 - random bytes 6.4260 ns/op 6.1640 ns/op 1.04
Buffer.compare 16384 - random bytes 63.363 ns/op 63.207 ns/op 1.00
byteArrayEquals 123687377 - random bytes 9.2900 ns/op 8.9800 ns/op 1.03
Buffer.compare 123687377 - random bytes 73.420 ns/op 75.330 ns/op 0.97
regular array get 100000 times 47.359 us/op 45.960 us/op 1.03
wrappedArray get 100000 times 47.922 us/op 45.724 us/op 1.05
arrayWithProxy get 100000 times 15.754 ms/op 14.351 ms/op 1.10
ssz.Root.equals 56.931 ns/op 55.153 ns/op 1.03
byteArrayEquals 55.806 ns/op 54.385 ns/op 1.03
Buffer.compare 13.408 ns/op 11.888 ns/op 1.13
shuffle list - 16384 els 7.6071 ms/op 7.0834 ms/op 1.07
shuffle list - 250000 els 106.47 ms/op 104.92 ms/op 1.01
processSlot - 1 slots 19.747 us/op 18.167 us/op 1.09
processSlot - 32 slots 4.3271 ms/op 3.5536 ms/op 1.22
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 57.414 ms/op 61.706 ms/op 0.93
getCommitteeAssignments - req 1 vs - 250000 vc 2.5687 ms/op 2.6460 ms/op 0.97
getCommitteeAssignments - req 100 vs - 250000 vc 3.6760 ms/op 3.7269 ms/op 0.99
getCommitteeAssignments - req 1000 vs - 250000 vc 3.9742 ms/op 4.1740 ms/op 0.95
findModifiedValidators - 10000 modified validators 531.83 ms/op 556.87 ms/op 0.96
findModifiedValidators - 1000 modified validators 429.27 ms/op 477.87 ms/op 0.90
findModifiedValidators - 100 modified validators 407.25 ms/op 467.41 ms/op 0.87
findModifiedValidators - 10 modified validators 452.08 ms/op 456.72 ms/op 0.99
findModifiedValidators - 1 modified validators 417.77 ms/op 454.11 ms/op 0.92
findModifiedValidators - no difference 440.46 ms/op 436.06 ms/op 1.01
compare ViewDUs 4.4680 s/op 5.0390 s/op 0.89
compare each validator Uint8Array 1.7124 s/op 1.8430 s/op 0.93
compare ViewDU to Uint8Array 1.1344 s/op 1.5333 s/op 0.74
migrate state 1000000 validators, 24 modified, 0 new 771.46 ms/op 979.83 ms/op 0.79
migrate state 1000000 validators, 1700 modified, 1000 new 1.0960 s/op 1.3197 s/op 0.83
migrate state 1000000 validators, 3400 modified, 2000 new 1.3224 s/op 1.4754 s/op 0.90
migrate state 1500000 validators, 24 modified, 0 new 796.32 ms/op 850.58 ms/op 0.94
migrate state 1500000 validators, 1700 modified, 1000 new 1.0716 s/op 1.2168 s/op 0.88
migrate state 1500000 validators, 3400 modified, 2000 new 1.3096 s/op 1.5389 s/op 0.85
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.1200 ns/op 5.1000 ns/op 0.81
state getBlockRootAtSlot - 250000 vs - 7PWei 711.63 ns/op 659.45 ns/op 1.08
computeProposers - vc 250000 8.8679 ms/op 9.4549 ms/op 0.94
computeEpochShuffling - vc 250000 101.58 ms/op 105.38 ms/op 0.96
getNextSyncCommittee - vc 250000 156.46 ms/op 169.28 ms/op 0.92
computeSigningRoot for AttestationData 30.316 us/op 34.040 us/op 0.89
hash AttestationData serialized data then Buffer.toString(base64) 2.3016 us/op 2.3768 us/op 0.97
toHexString serialized data 1.0675 us/op 1.5798 us/op 0.68
Buffer.toString(base64) 223.29 ns/op 252.92 ns/op 0.88

by benchmarkbot/action

Copy link
Contributor

@g11tech g11tech left a comment

Choose a reason for hiding this comment

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

lgtm

@g11tech g11tech merged commit 533db97 into unstable Feb 20, 2024
19 of 21 checks passed
@g11tech g11tech deleted the nflaig/fix-handler-already-registered branch February 20, 2024 10:14
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.16.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.

CodeError: Handler already registered for protocol
3 participants