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

feat: manually use identify protocol #6400

Merged
merged 1 commit into from
Feb 10, 2024
Merged

Conversation

wemeetagain
Copy link
Member

Description

  • Manually dial newly connected peers with the identify protocol, rather than relying on automatic dialing with identify
  • Manually dialing allows us to await the result rather than poll for peerstore updates

@wemeetagain wemeetagain requested a review from a team as a code owner February 6, 2024 19:37
Copy link
Contributor

github-actions bot commented Feb 6, 2024

Performance Report

✔️ no performance regression detected

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: be228fe Previous: 274871d Ratio
fastMsgIdFn h64 xxhash / 1000 bytes 537.00 ns/op 1.8400 us/op 0.29
Full benchmark results
Benchmark suite Current: be228fe Previous: 274871d Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 465.20 us/op 862.63 us/op 0.54
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 88.126 us/op 179.27 us/op 0.49
BLS verify - blst-native 1.2945 ms/op 1.7192 ms/op 0.75
BLS verifyMultipleSignatures 3 - blst-native 2.7413 ms/op 3.4827 ms/op 0.79
BLS verifyMultipleSignatures 8 - blst-native 5.9808 ms/op 7.6729 ms/op 0.78
BLS verifyMultipleSignatures 32 - blst-native 21.829 ms/op 29.203 ms/op 0.75
BLS verifyMultipleSignatures 64 - blst-native 42.980 ms/op 53.956 ms/op 0.80
BLS verifyMultipleSignatures 128 - blst-native 85.699 ms/op 109.05 ms/op 0.79
BLS deserializing 10000 signatures 920.12 ms/op 1.1042 s/op 0.83
BLS deserializing 100000 signatures 9.3126 s/op 10.697 s/op 0.87
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.3209 ms/op 1.4878 ms/op 0.89
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.6924 ms/op 1.6453 ms/op 1.03
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.3120 ms/op 2.6092 ms/op 0.89
BLS verifyMultipleSignatures - same message - 64 - blst-native 4.8372 ms/op 3.9907 ms/op 1.21
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.5307 ms/op 6.8032 ms/op 0.81
BLS aggregatePubkeys 32 - blst-native 25.211 us/op 29.607 us/op 0.85
BLS aggregatePubkeys 128 - blst-native 99.298 us/op 112.44 us/op 0.88
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 56.282 ms/op 117.35 ms/op 0.48
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 54.759 ms/op 90.010 ms/op 0.61
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 48.236 ms/op 63.087 ms/op 0.76
getSlashingsAndExits - default max 470.09 us/op 714.98 us/op 0.66
getSlashingsAndExits - 2k 515.17 us/op 786.04 us/op 0.66
proposeBlockBody type=full, size=empty 7.3882 ms/op 9.6860 ms/op 0.76
isKnown best case - 1 super set check 821.00 ns/op 867.00 ns/op 0.95
isKnown normal case - 2 super set checks 777.00 ns/op 861.00 ns/op 0.90
isKnown worse case - 16 super set checks 776.00 ns/op 897.00 ns/op 0.87
CheckpointStateCache - add get delete 6.6610 us/op 7.7620 us/op 0.86
validate api signedAggregateAndProof - struct 3.0089 ms/op 3.1212 ms/op 0.96
validate gossip signedAggregateAndProof - struct 3.0446 ms/op 3.0643 ms/op 0.99
validate gossip attestation - vc 640000 1.5313 ms/op 1.5800 ms/op 0.97
batch validate gossip attestation - vc 640000 - chunk 32 214.34 us/op 209.06 us/op 1.03
batch validate gossip attestation - vc 640000 - chunk 64 193.63 us/op 195.52 us/op 0.99
batch validate gossip attestation - vc 640000 - chunk 128 171.34 us/op 212.01 us/op 0.81
batch validate gossip attestation - vc 640000 - chunk 256 161.36 us/op 195.20 us/op 0.83
pickEth1Vote - no votes 1.4976 ms/op 1.8481 ms/op 0.81
pickEth1Vote - max votes 18.699 ms/op 17.736 ms/op 1.05
pickEth1Vote - Eth1Data hashTreeRoot value x2048 36.389 ms/op 27.629 ms/op 1.32
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 51.398 ms/op 44.570 ms/op 1.15
pickEth1Vote - Eth1Data fastSerialize value x2048 856.38 us/op 1.4274 ms/op 0.60
pickEth1Vote - Eth1Data fastSerialize tree x2048 8.6571 ms/op 11.585 ms/op 0.75
bytes32 toHexString 924.00 ns/op 1.2460 us/op 0.74
bytes32 Buffer.toString(hex) 350.00 ns/op 533.00 ns/op 0.66
bytes32 Buffer.toString(hex) from Uint8Array 607.00 ns/op 1.0060 us/op 0.60
bytes32 Buffer.toString(hex) + 0x 358.00 ns/op 443.00 ns/op 0.81
Object access 1 prop 0.28500 ns/op 0.40600 ns/op 0.70
Map access 1 prop 0.16600 ns/op 0.22300 ns/op 0.74
Object get x1000 9.5610 ns/op 13.936 ns/op 0.69
Map get x1000 0.96600 ns/op 1.3160 ns/op 0.73
Object set x1000 88.652 ns/op 121.34 ns/op 0.73
Map set x1000 61.467 ns/op 80.616 ns/op 0.76
Return object 10000 times 0.28330 ns/op 0.45720 ns/op 0.62
Throw Error 10000 times 4.3077 us/op 4.8228 us/op 0.89
fastMsgIdFn sha256 / 200 bytes 3.3910 us/op 4.3770 us/op 0.77
fastMsgIdFn h32 xxhash / 200 bytes 297.00 ns/op 499.00 ns/op 0.60
fastMsgIdFn h64 xxhash / 200 bytes 406.00 ns/op 576.00 ns/op 0.70
fastMsgIdFn sha256 / 1000 bytes 12.770 us/op 12.867 us/op 0.99
fastMsgIdFn h32 xxhash / 1000 bytes 557.00 ns/op 706.00 ns/op 0.79
fastMsgIdFn h64 xxhash / 1000 bytes 537.00 ns/op 1.8400 us/op 0.29
fastMsgIdFn sha256 / 10000 bytes 118.25 us/op 135.41 us/op 0.87
fastMsgIdFn h32 xxhash / 10000 bytes 2.3080 us/op 3.6340 us/op 0.64
fastMsgIdFn h64 xxhash / 10000 bytes 1.7160 us/op 2.6490 us/op 0.65
send data - 1000 256B messages 29.736 ms/op 44.848 ms/op 0.66
send data - 1000 512B messages 45.279 ms/op 34.639 ms/op 1.31
send data - 1000 1024B messages 49.431 ms/op 72.063 ms/op 0.69
send data - 1000 1200B messages 66.803 ms/op 91.977 ms/op 0.73
send data - 1000 2048B messages 76.982 ms/op 98.090 ms/op 0.78
send data - 1000 4096B messages 65.565 ms/op 81.999 ms/op 0.80
send data - 1000 16384B messages 186.54 ms/op 217.43 ms/op 0.86
send data - 1000 65536B messages 523.87 ms/op 960.52 ms/op 0.55
enrSubnets - fastDeserialize 64 bits 1.3430 us/op 2.7680 us/op 0.49
enrSubnets - ssz BitVector 64 bits 517.00 ns/op 755.00 ns/op 0.68
enrSubnets - fastDeserialize 4 bits 234.00 ns/op 387.00 ns/op 0.60
enrSubnets - ssz BitVector 4 bits 547.00 ns/op 818.00 ns/op 0.67
prioritizePeers score -10:0 att 32-0.1 sync 2-0 120.48 us/op 163.66 us/op 0.74
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 142.38 us/op 271.32 us/op 0.52
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 200.26 us/op 364.39 us/op 0.55
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 338.92 us/op 594.40 us/op 0.57
prioritizePeers score 0:0 att 64-1 sync 4-1 369.51 us/op 498.86 us/op 0.74
array of 16000 items push then shift 1.6821 us/op 2.0026 us/op 0.84
LinkedList of 16000 items push then shift 9.4360 ns/op 14.525 ns/op 0.65
array of 16000 items push then pop 105.42 ns/op 169.20 ns/op 0.62
LinkedList of 16000 items push then pop 8.8940 ns/op 12.266 ns/op 0.73
array of 24000 items push then shift 2.6586 us/op 2.9893 us/op 0.89
LinkedList of 24000 items push then shift 9.4250 ns/op 17.090 ns/op 0.55
array of 24000 items push then pop 150.32 ns/op 277.07 ns/op 0.54
LinkedList of 24000 items push then pop 9.0140 ns/op 14.832 ns/op 0.61
intersect bitArray bitLen 8 5.8910 ns/op 8.8620 ns/op 0.66
intersect array and set length 8 73.538 ns/op 142.67 ns/op 0.52
intersect bitArray bitLen 128 36.517 ns/op 45.097 ns/op 0.81
intersect array and set length 128 1.0321 us/op 1.5192 us/op 0.68
bitArray.getTrueBitIndexes() bitLen 128 1.7290 us/op 3.1360 us/op 0.55
bitArray.getTrueBitIndexes() bitLen 248 2.7550 us/op 5.2940 us/op 0.52
bitArray.getTrueBitIndexes() bitLen 512 5.5540 us/op 10.094 us/op 0.55
Buffer.concat 32 items 1.0620 us/op 1.4270 us/op 0.74
Uint8Array.set 32 items 2.2220 us/op 2.7210 us/op 0.82
Set add up to 64 items then delete first 4.9932 us/op 5.6194 us/op 0.89
OrderedSet add up to 64 items then delete first 5.8068 us/op 7.6799 us/op 0.76
Set add up to 64 items then delete last 4.7355 us/op 5.8975 us/op 0.80
OrderedSet add up to 64 items then delete last 5.8853 us/op 8.3405 us/op 0.71
Set add up to 64 items then delete middle 4.6982 us/op 6.2202 us/op 0.76
OrderedSet add up to 64 items then delete middle 7.2234 us/op 9.7094 us/op 0.74
Set add up to 128 items then delete first 9.7959 us/op 12.016 us/op 0.82
OrderedSet add up to 128 items then delete first 13.362 us/op 16.838 us/op 0.79
Set add up to 128 items then delete last 10.404 us/op 11.594 us/op 0.90
OrderedSet add up to 128 items then delete last 13.351 us/op 15.903 us/op 0.84
Set add up to 128 items then delete middle 9.4616 us/op 13.207 us/op 0.72
OrderedSet add up to 128 items then delete middle 17.661 us/op 27.826 us/op 0.63
Set add up to 256 items then delete first 19.642 us/op 26.035 us/op 0.75
OrderedSet add up to 256 items then delete first 26.167 us/op 36.303 us/op 0.72
Set add up to 256 items then delete last 19.044 us/op 25.346 us/op 0.75
OrderedSet add up to 256 items then delete last 24.102 us/op 35.699 us/op 0.68
Set add up to 256 items then delete middle 18.718 us/op 26.179 us/op 0.71
OrderedSet add up to 256 items then delete middle 48.099 us/op 65.110 us/op 0.74
transfer serialized Status (84 B) 1.7740 us/op 2.4310 us/op 0.73
copy serialized Status (84 B) 1.3260 us/op 1.7350 us/op 0.76
transfer serialized SignedVoluntaryExit (112 B) 1.8220 us/op 2.5490 us/op 0.71
copy serialized SignedVoluntaryExit (112 B) 1.3110 us/op 1.7600 us/op 0.74
transfer serialized ProposerSlashing (416 B) 1.9950 us/op 3.6770 us/op 0.54
copy serialized ProposerSlashing (416 B) 1.7080 us/op 3.5760 us/op 0.48
transfer serialized Attestation (485 B) 2.0640 us/op 3.7150 us/op 0.56
copy serialized Attestation (485 B) 1.7860 us/op 3.0570 us/op 0.58
transfer serialized AttesterSlashing (33232 B) 2.1090 us/op 3.5450 us/op 0.59
copy serialized AttesterSlashing (33232 B) 5.7270 us/op 12.875 us/op 0.44
transfer serialized Small SignedBeaconBlock (128000 B) 2.4330 us/op 3.4270 us/op 0.71
copy serialized Small SignedBeaconBlock (128000 B) 16.600 us/op 30.152 us/op 0.55
transfer serialized Avg SignedBeaconBlock (200000 B) 2.7310 us/op 3.3550 us/op 0.81
copy serialized Avg SignedBeaconBlock (200000 B) 26.273 us/op 42.553 us/op 0.62
transfer serialized BlobsSidecar (524380 B) 3.0580 us/op 4.8700 us/op 0.63
copy serialized BlobsSidecar (524380 B) 96.154 us/op 159.33 us/op 0.60
transfer serialized Big SignedBeaconBlock (1000000 B) 3.2270 us/op 7.1300 us/op 0.45
copy serialized Big SignedBeaconBlock (1000000 B) 173.95 us/op 606.34 us/op 0.29
pass gossip attestations to forkchoice per slot 4.3380 ms/op 5.5253 ms/op 0.79
forkChoice updateHead vc 100000 bc 64 eq 0 691.89 us/op 742.33 us/op 0.93
forkChoice updateHead vc 600000 bc 64 eq 0 5.6436 ms/op 6.8001 ms/op 0.83
forkChoice updateHead vc 1000000 bc 64 eq 0 7.1547 ms/op 9.6245 ms/op 0.74
forkChoice updateHead vc 600000 bc 320 eq 0 4.2650 ms/op 5.8468 ms/op 0.73
forkChoice updateHead vc 600000 bc 1200 eq 0 4.5206 ms/op 5.1138 ms/op 0.88
forkChoice updateHead vc 600000 bc 7200 eq 0 6.2840 ms/op 6.1965 ms/op 1.01
forkChoice updateHead vc 600000 bc 64 eq 1000 11.465 ms/op 12.693 ms/op 0.90
forkChoice updateHead vc 600000 bc 64 eq 10000 12.179 ms/op 14.981 ms/op 0.81
forkChoice updateHead vc 600000 bc 64 eq 300000 16.999 ms/op 33.502 ms/op 0.51
computeDeltas 500000 validators 300 proto nodes 6.8025 ms/op 7.4894 ms/op 0.91
computeDeltas 500000 validators 1200 proto nodes 6.7065 ms/op 7.3463 ms/op 0.91
computeDeltas 500000 validators 7200 proto nodes 6.6124 ms/op 6.9166 ms/op 0.96
computeDeltas 750000 validators 300 proto nodes 9.8009 ms/op 10.318 ms/op 0.95
computeDeltas 750000 validators 1200 proto nodes 10.307 ms/op 10.591 ms/op 0.97
computeDeltas 750000 validators 7200 proto nodes 9.5183 ms/op 10.457 ms/op 0.91
computeDeltas 1400000 validators 300 proto nodes 18.410 ms/op 20.403 ms/op 0.90
computeDeltas 1400000 validators 1200 proto nodes 18.524 ms/op 20.947 ms/op 0.88
computeDeltas 1400000 validators 7200 proto nodes 18.590 ms/op 20.268 ms/op 0.92
computeDeltas 2100000 validators 300 proto nodes 27.825 ms/op 30.403 ms/op 0.92
computeDeltas 2100000 validators 1200 proto nodes 27.750 ms/op 32.397 ms/op 0.86
computeDeltas 2100000 validators 7200 proto nodes 28.014 ms/op 32.870 ms/op 0.85
altair processAttestation - 250000 vs - 7PWei normalcase 2.3680 ms/op 4.3835 ms/op 0.54
altair processAttestation - 250000 vs - 7PWei worstcase 3.4652 ms/op 5.6935 ms/op 0.61
altair processAttestation - setStatus - 1/6 committees join 178.24 us/op 233.81 us/op 0.76
altair processAttestation - setStatus - 1/3 committees join 343.44 us/op 408.95 us/op 0.84
altair processAttestation - setStatus - 1/2 committees join 462.07 us/op 631.01 us/op 0.73
altair processAttestation - setStatus - 2/3 committees join 581.62 us/op 713.48 us/op 0.82
altair processAttestation - setStatus - 4/5 committees join 786.04 us/op 1.0075 ms/op 0.78
altair processAttestation - setStatus - 100% committees join 931.78 us/op 1.0464 ms/op 0.89
altair processBlock - 250000 vs - 7PWei normalcase 10.371 ms/op 12.957 ms/op 0.80
altair processBlock - 250000 vs - 7PWei normalcase hashState 38.464 ms/op 54.827 ms/op 0.70
altair processBlock - 250000 vs - 7PWei worstcase 38.163 ms/op 49.905 ms/op 0.76
altair processBlock - 250000 vs - 7PWei worstcase hashState 98.460 ms/op 146.08 ms/op 0.67
phase0 processBlock - 250000 vs - 7PWei normalcase 2.6077 ms/op 4.0952 ms/op 0.64
phase0 processBlock - 250000 vs - 7PWei worstcase 30.722 ms/op 38.262 ms/op 0.80
altair processEth1Data - 250000 vs - 7PWei normalcase 566.63 us/op 773.10 us/op 0.73
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 11.293 us/op 22.206 us/op 0.51
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 68.679 us/op 76.020 us/op 0.90
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 14.405 us/op 36.579 us/op 0.39
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 12.646 us/op 22.570 us/op 0.56
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 187.65 us/op 224.29 us/op 0.84
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.5340 ms/op 1.5984 ms/op 0.96
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.7789 ms/op 2.5031 ms/op 0.71
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.7062 ms/op 2.4128 ms/op 0.71
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.1584 ms/op 4.7321 ms/op 0.88
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.5087 ms/op 2.9030 ms/op 0.86
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 6.4329 ms/op 7.8313 ms/op 0.82
Tree 40 250000 create 399.12 ms/op 607.58 ms/op 0.66
Tree 40 250000 get(125000) 221.07 ns/op 232.23 ns/op 0.95
Tree 40 250000 set(125000) 1.1207 us/op 1.7610 us/op 0.64
Tree 40 250000 toArray() 23.403 ms/op 25.410 ms/op 0.92
Tree 40 250000 iterate all - toArray() + loop 21.712 ms/op 25.520 ms/op 0.85
Tree 40 250000 iterate all - get(i) 74.889 ms/op 85.123 ms/op 0.88
MutableVector 250000 create 14.944 ms/op 17.038 ms/op 0.88
MutableVector 250000 get(125000) 6.8410 ns/op 7.0380 ns/op 0.97
MutableVector 250000 set(125000) 278.53 ns/op 341.22 ns/op 0.82
MutableVector 250000 toArray() 3.3978 ms/op 4.3206 ms/op 0.79
MutableVector 250000 iterate all - toArray() + loop 3.5053 ms/op 4.7392 ms/op 0.74
MutableVector 250000 iterate all - get(i) 1.4808 ms/op 1.6394 ms/op 0.90
Array 250000 create 2.9040 ms/op 3.9158 ms/op 0.74
Array 250000 clone - spread 1.3220 ms/op 1.5201 ms/op 0.87
Array 250000 get(125000) 1.1100 ns/op 1.5830 ns/op 0.70
Array 250000 set(125000) 4.3170 ns/op 5.6750 ns/op 0.76
Array 250000 iterate all - loop 170.16 us/op 181.02 us/op 0.94
effectiveBalanceIncrements clone Uint8Array 300000 38.796 us/op 72.332 us/op 0.54
effectiveBalanceIncrements clone MutableVector 300000 407.00 ns/op 526.00 ns/op 0.77
effectiveBalanceIncrements rw all Uint8Array 300000 201.17 us/op 218.73 us/op 0.92
effectiveBalanceIncrements rw all MutableVector 300000 90.572 ms/op 146.44 ms/op 0.62
phase0 afterProcessEpoch - 250000 vs - 7PWei 113.69 ms/op 136.16 ms/op 0.84
phase0 beforeProcessEpoch - 250000 vs - 7PWei 53.115 ms/op 66.664 ms/op 0.80
altair processEpoch - mainnet_e81889 858.24 ms/op 628.75 ms/op 1.36
mainnet_e81889 - altair beforeProcessEpoch 152.74 ms/op 105.80 ms/op 1.44
mainnet_e81889 - altair processJustificationAndFinalization 19.967 us/op 23.300 us/op 0.86
mainnet_e81889 - altair processInactivityUpdates 9.6949 ms/op 8.1556 ms/op 1.19
mainnet_e81889 - altair processRewardsAndPenalties 71.858 ms/op 83.227 ms/op 0.86
mainnet_e81889 - altair processRegistryUpdates 5.0250 us/op 4.0050 us/op 1.25
mainnet_e81889 - altair processSlashings 1.0260 us/op 950.00 ns/op 1.08
mainnet_e81889 - altair processEth1DataReset 1.3390 us/op 1.0280 us/op 1.30
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.5410 ms/op 1.8278 ms/op 0.84
mainnet_e81889 - altair processSlashingsReset 4.2770 us/op 7.1570 us/op 0.60
mainnet_e81889 - altair processRandaoMixesReset 4.9500 us/op 11.216 us/op 0.44
mainnet_e81889 - altair processHistoricalRootsUpdate 1.1040 us/op 1.1020 us/op 1.00
mainnet_e81889 - altair processParticipationFlagUpdates 2.0090 us/op 4.9040 us/op 0.41
mainnet_e81889 - altair processSyncCommitteeUpdates 720.00 ns/op 1.8780 us/op 0.38
mainnet_e81889 - altair afterProcessEpoch 120.97 ms/op 134.07 ms/op 0.90
capella processEpoch - mainnet_e217614 2.3374 s/op 2.8327 s/op 0.83
mainnet_e217614 - capella beforeProcessEpoch 508.44 ms/op 891.09 ms/op 0.57
mainnet_e217614 - capella processJustificationAndFinalization 21.111 us/op 59.009 us/op 0.36
mainnet_e217614 - capella processInactivityUpdates 25.786 ms/op 54.171 ms/op 0.48
mainnet_e217614 - capella processRewardsAndPenalties 439.03 ms/op 602.15 ms/op 0.73
mainnet_e217614 - capella processRegistryUpdates 21.453 us/op 48.200 us/op 0.45
mainnet_e217614 - capella processSlashings 976.00 ns/op 1.7740 us/op 0.55
mainnet_e217614 - capella processEth1DataReset 460.00 ns/op 1.0480 us/op 0.44
mainnet_e217614 - capella processEffectiveBalanceUpdates 5.4992 ms/op 7.1020 ms/op 0.77
mainnet_e217614 - capella processSlashingsReset 3.3570 us/op 6.3280 us/op 0.53
mainnet_e217614 - capella processRandaoMixesReset 4.6460 us/op 7.2310 us/op 0.64
mainnet_e217614 - capella processHistoricalRootsUpdate 496.00 ns/op 853.00 ns/op 0.58
mainnet_e217614 - capella processParticipationFlagUpdates 1.4880 us/op 4.4840 us/op 0.33
mainnet_e217614 - capella afterProcessEpoch 303.33 ms/op 348.42 ms/op 0.87
phase0 processEpoch - mainnet_e58758 435.51 ms/op 701.50 ms/op 0.62
mainnet_e58758 - phase0 beforeProcessEpoch 144.10 ms/op 255.87 ms/op 0.56
mainnet_e58758 - phase0 processJustificationAndFinalization 16.254 us/op 35.289 us/op 0.46
mainnet_e58758 - phase0 processRewardsAndPenalties 59.510 ms/op 77.732 ms/op 0.77
mainnet_e58758 - phase0 processRegistryUpdates 12.623 us/op 24.756 us/op 0.51
mainnet_e58758 - phase0 processSlashings 701.00 ns/op 2.2020 us/op 0.32
mainnet_e58758 - phase0 processEth1DataReset 519.00 ns/op 1.4060 us/op 0.37
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.1740 ms/op 2.3819 ms/op 0.49
mainnet_e58758 - phase0 processSlashingsReset 3.1140 us/op 6.7830 us/op 0.46
mainnet_e58758 - phase0 processRandaoMixesReset 4.6340 us/op 11.407 us/op 0.41
mainnet_e58758 - phase0 processHistoricalRootsUpdate 593.00 ns/op 1.8060 us/op 0.33
mainnet_e58758 - phase0 processParticipationRecordUpdates 6.7870 us/op 15.229 us/op 0.45
mainnet_e58758 - phase0 afterProcessEpoch 102.16 ms/op 127.44 ms/op 0.80
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.8755 ms/op 2.8760 ms/op 0.65
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.2549 ms/op 2.2311 ms/op 1.01
altair processInactivityUpdates - 250000 normalcase 29.176 ms/op 33.447 ms/op 0.87
altair processInactivityUpdates - 250000 worstcase 34.340 ms/op 37.422 ms/op 0.92
phase0 processRegistryUpdates - 250000 normalcase 17.229 us/op 20.215 us/op 0.85
phase0 processRegistryUpdates - 250000 badcase_full_deposits 544.76 us/op 683.36 us/op 0.80
phase0 processRegistryUpdates - 250000 worstcase 0.5 186.98 ms/op 201.62 ms/op 0.93
altair processRewardsAndPenalties - 250000 normalcase 68.186 ms/op 63.392 ms/op 1.08
altair processRewardsAndPenalties - 250000 worstcase 53.303 ms/op 74.468 ms/op 0.72
phase0 getAttestationDeltas - 250000 normalcase 13.204 ms/op 14.963 ms/op 0.88
phase0 getAttestationDeltas - 250000 worstcase 12.892 ms/op 15.448 ms/op 0.83
phase0 processSlashings - 250000 worstcase 154.07 us/op 147.46 us/op 1.04
altair processSyncCommitteeUpdates - 250000 170.15 ms/op 192.99 ms/op 0.88
BeaconState.hashTreeRoot - No change 733.00 ns/op 1.0530 us/op 0.70
BeaconState.hashTreeRoot - 1 full validator 180.52 us/op 201.25 us/op 0.90
BeaconState.hashTreeRoot - 32 full validator 2.0785 ms/op 1.7858 ms/op 1.16
BeaconState.hashTreeRoot - 512 full validator 16.716 ms/op 20.876 ms/op 0.80
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 176.72 us/op 202.06 us/op 0.87
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.2013 ms/op 3.0815 ms/op 0.71
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 40.222 ms/op 38.747 ms/op 1.04
BeaconState.hashTreeRoot - 1 balances 158.05 us/op 223.34 us/op 0.71
BeaconState.hashTreeRoot - 32 balances 1.4669 ms/op 1.8515 ms/op 0.79
BeaconState.hashTreeRoot - 512 balances 15.447 ms/op 19.184 ms/op 0.81
BeaconState.hashTreeRoot - 250000 balances 244.73 ms/op 282.18 ms/op 0.87
aggregationBits - 2048 els - zipIndexesInBitList 31.903 us/op 32.829 us/op 0.97
byteArrayEquals 32 90.971 ns/op 84.343 ns/op 1.08
Buffer.compare 32 59.099 ns/op 60.581 ns/op 0.98
byteArrayEquals 1024 2.2930 us/op 2.2938 us/op 1.00
Buffer.compare 1024 73.463 ns/op 77.220 ns/op 0.95
byteArrayEquals 16384 36.115 us/op 37.246 us/op 0.97
Buffer.compare 16384 313.52 ns/op 277.22 ns/op 1.13
byteArrayEquals 123687377 310.83 ms/op 330.26 ms/op 0.94
Buffer.compare 123687377 10.883 ms/op 13.911 ms/op 0.78
byteArrayEquals 32 - diff last byte 79.245 ns/op 106.69 ns/op 0.74
Buffer.compare 32 - diff last byte 63.406 ns/op 70.002 ns/op 0.91
byteArrayEquals 1024 - diff last byte 3.0674 us/op 2.3370 us/op 1.31
Buffer.compare 1024 - diff last byte 88.763 ns/op 89.002 ns/op 1.00
byteArrayEquals 16384 - diff last byte 36.799 us/op 44.963 us/op 0.82
Buffer.compare 16384 - diff last byte 340.61 ns/op 361.69 ns/op 0.94
byteArrayEquals 123687377 - diff last byte 272.90 ms/op 308.09 ms/op 0.89
Buffer.compare 123687377 - diff last byte 10.529 ms/op 12.594 ms/op 0.84
byteArrayEquals 32 - random bytes 7.3340 ns/op 8.3620 ns/op 0.88
Buffer.compare 32 - random bytes 65.411 ns/op 70.209 ns/op 0.93
byteArrayEquals 1024 - random bytes 6.5600 ns/op 7.6680 ns/op 0.86
Buffer.compare 1024 - random bytes 67.703 ns/op 71.417 ns/op 0.95
byteArrayEquals 16384 - random bytes 6.4600 ns/op 7.2910 ns/op 0.89
Buffer.compare 16384 - random bytes 67.980 ns/op 72.881 ns/op 0.93
byteArrayEquals 123687377 - random bytes 14.700 ns/op 18.100 ns/op 0.81
Buffer.compare 123687377 - random bytes 86.390 ns/op 80.820 ns/op 1.07
regular array get 100000 times 52.321 us/op 48.973 us/op 1.07
wrappedArray get 100000 times 51.267 us/op 48.585 us/op 1.06
arrayWithProxy get 100000 times 18.295 ms/op 14.800 ms/op 1.24
ssz.Root.equals 65.545 ns/op 58.489 ns/op 1.12
byteArrayEquals 60.089 ns/op 57.350 ns/op 1.05
Buffer.compare 13.686 ns/op 12.740 ns/op 1.07
shuffle list - 16384 els 8.2401 ms/op 7.4867 ms/op 1.10
shuffle list - 250000 els 122.31 ms/op 108.63 ms/op 1.13
processSlot - 1 slots 20.923 us/op 19.861 us/op 1.05
processSlot - 32 slots 4.1038 ms/op 4.0745 ms/op 1.01
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 70.493 ms/op 70.461 ms/op 1.00
getCommitteeAssignments - req 1 vs - 250000 vc 2.6268 ms/op 2.7201 ms/op 0.97
getCommitteeAssignments - req 100 vs - 250000 vc 3.8377 ms/op 4.1739 ms/op 0.92
getCommitteeAssignments - req 1000 vs - 250000 vc 4.3592 ms/op 4.6255 ms/op 0.94
findModifiedValidators - 10000 modified validators 639.28 ms/op 590.92 ms/op 1.08
findModifiedValidators - 1000 modified validators 527.73 ms/op 543.93 ms/op 0.97
findModifiedValidators - 100 modified validators 556.95 ms/op 550.81 ms/op 1.01
findModifiedValidators - 10 modified validators 532.16 ms/op 561.36 ms/op 0.95
findModifiedValidators - 1 modified validators 586.30 ms/op 551.46 ms/op 1.06
findModifiedValidators - no difference 529.19 ms/op 599.62 ms/op 0.88
compare ViewDUs 4.9237 s/op 7.8685 s/op 0.63
compare each validator Uint8Array 1.8638 s/op 2.0961 s/op 0.89
compare ViewDU to Uint8Array 1.4571 s/op 1.3115 s/op 1.11
migrate state 1000000 validators, 24 modified, 0 new 895.87 ms/op 920.39 ms/op 0.97
migrate state 1000000 validators, 1700 modified, 1000 new 1.1944 s/op 1.3346 s/op 0.89
migrate state 1000000 validators, 3400 modified, 2000 new 1.4532 s/op 1.7749 s/op 0.82
migrate state 1500000 validators, 24 modified, 0 new 990.85 ms/op 1.0176 s/op 0.97
migrate state 1500000 validators, 1700 modified, 1000 new 1.2427 s/op 1.2795 s/op 0.97
migrate state 1500000 validators, 3400 modified, 2000 new 1.5366 s/op 1.4224 s/op 1.08
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.1100 ns/op 4.7600 ns/op 1.07
state getBlockRootAtSlot - 250000 vs - 7PWei 713.17 ns/op 578.01 ns/op 1.23
computeProposers - vc 250000 9.3761 ms/op 9.8300 ms/op 0.95
computeEpochShuffling - vc 250000 106.17 ms/op 105.94 ms/op 1.00
getNextSyncCommittee - vc 250000 164.83 ms/op 160.12 ms/op 1.03
computeSigningRoot for AttestationData 32.155 us/op 25.716 us/op 1.25
hash AttestationData serialized data then Buffer.toString(base64) 2.5939 us/op 2.4666 us/op 1.05
toHexString serialized data 1.2351 us/op 1.1430 us/op 1.08
Buffer.toString(base64) 259.37 ns/op 235.24 ns/op 1.10

by benchmarkbot/action

Copy link

codecov bot commented Feb 6, 2024

Codecov Report

Merging #6400 (15d6a34) into unstable (d8b500a) will decrease coverage by 0.01%.
Report is 3 commits behind head on unstable.
The diff coverage is n/a.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #6400      +/-   ##
============================================
- Coverage     60.14%   60.14%   -0.01%     
============================================
  Files           407      407              
  Lines         46512    46510       -2     
  Branches       1551     1551              
============================================
- Hits          27975    27972       -3     
- Misses        18505    18506       +1     
  Partials         32       32              

.identify(evt.detail)
.then((result) => {
const agentVersion = result.agentVersion;
if (agentVersion) {
Copy link
Member

Choose a reason for hiding this comment

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

I am curios about the different cases, i.e. when do we not get an error but also an empty agentVersion? and should we add a fallback case like "N/A" as previously done?

Copy link
Member Author

Choose a reason for hiding this comment

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

The protobuf sent to us can have a null entry.

I thought about keeping the fallback "N/A" but it didn't seem particularly useful? Happy to add it back if anyone feels different.

Copy link
Member

@nflaig nflaig Feb 6, 2024

Choose a reason for hiding this comment

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

I thought about keeping the fallback "N/A" but it didn't seem particularly useful?

The only case I see where this makes a difference is in the case we error as it would be undefined vs "N/A" otherwise, although I don't see that this value is used anywhere other than dumping peer information.

I remember Tuyen did some changes in known client version but that is just for metrics afaik and we already handle the case if agentClient is not set

const client = peerData?.agentClient ?? ClientKind.Unknown;

@wemeetagain wemeetagain merged commit 10ac136 into unstable Feb 10, 2024
13 of 15 checks passed
@wemeetagain wemeetagain deleted the cayman/manual-identify branch February 10, 2024 04:08
@wemeetagain
Copy link
Member Author

🎉 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.

2 participants