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: only dial subnet peers if needed #5782

Merged
merged 2 commits into from
Jul 26, 2023

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Jul 21, 2023

Motivation

  • For now we always dial subnet peers as much as we can, this lead to I/O performance issue when subscribing to sync committee #5741
  • This is because:
    • Most of the time, we have enough subnet peers very quickly (see Peer requests to discovery metrics)
    • But we always got ENRs very frequently (because node wants to connect to "maxPeers" so it issue FIND_NODES request frequently) and if the retuned ENRs have the subnets we want, we still connect to it
      • In the case of sync committee subscription, we usually have up to 50 long lived subnets per peer and most of them are outbound peers

Description

  • Only connect to subnet peers if needed by adding "peersToConnect" to "subnetRequests"
  • Based on the current metrics, this should help us have around 10 long lived subnets per peer instead of 50 like in the case of sync committee

Closes #5741

@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: d6a41e4 Previous: 50551d3 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 441.20 us/op 826.70 us/op 0.53
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 73.588 us/op 74.431 us/op 0.99
BLS verify - blst-native 1.2292 ms/op 1.1991 ms/op 1.03
BLS verifyMultipleSignatures 3 - blst-native 2.5133 ms/op 2.4364 ms/op 1.03
BLS verifyMultipleSignatures 8 - blst-native 5.3648 ms/op 5.2468 ms/op 1.02
BLS verifyMultipleSignatures 32 - blst-native 19.628 ms/op 18.919 ms/op 1.04
BLS aggregatePubkeys 32 - blst-native 25.854 us/op 25.004 us/op 1.03
BLS aggregatePubkeys 128 - blst-native 100.56 us/op 98.431 us/op 1.02
getAttestationsForBlock 58.565 ms/op 58.353 ms/op 1.00
isKnown best case - 1 super set check 293.00 ns/op 263.00 ns/op 1.11
isKnown normal case - 2 super set checks 318.00 ns/op 257.00 ns/op 1.24
isKnown worse case - 16 super set checks 328.00 ns/op 252.00 ns/op 1.30
CheckpointStateCache - add get delete 5.7400 us/op 4.9030 us/op 1.17
validate api signedAggregateAndProof - struct 2.8422 ms/op 2.7351 ms/op 1.04
validate gossip signedAggregateAndProof - struct 2.8644 ms/op 2.7327 ms/op 1.05
validate api attestation - struct 1.3833 ms/op 1.3587 ms/op 1.02
validate gossip attestation - struct 1.3920 ms/op 1.2822 ms/op 1.09
pickEth1Vote - no votes 1.3914 ms/op 1.0858 ms/op 1.28
pickEth1Vote - max votes 11.611 ms/op 11.464 ms/op 1.01
pickEth1Vote - Eth1Data hashTreeRoot value x2048 9.5456 ms/op 8.6200 ms/op 1.11
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 17.648 ms/op 17.613 ms/op 1.00
pickEth1Vote - Eth1Data fastSerialize value x2048 784.24 us/op 537.43 us/op 1.46
pickEth1Vote - Eth1Data fastSerialize tree x2048 6.7697 ms/op 6.6259 ms/op 1.02
bytes32 toHexString 639.00 ns/op 479.00 ns/op 1.33
bytes32 Buffer.toString(hex) 299.00 ns/op 274.00 ns/op 1.09
bytes32 Buffer.toString(hex) from Uint8Array 472.00 ns/op 414.00 ns/op 1.14
bytes32 Buffer.toString(hex) + 0x 303.00 ns/op 284.00 ns/op 1.07
Object access 1 prop 0.17600 ns/op 0.14200 ns/op 1.24
Map access 1 prop 0.14900 ns/op 0.14500 ns/op 1.03
Object get x1000 7.3040 ns/op 6.9730 ns/op 1.05
Map get x1000 0.52100 ns/op 0.59100 ns/op 0.88
Object set x1000 63.019 ns/op 47.053 ns/op 1.34
Map set x1000 48.483 ns/op 37.330 ns/op 1.30
Return object 10000 times 0.25100 ns/op 0.23210 ns/op 1.08
Throw Error 10000 times 3.9341 us/op 3.7558 us/op 1.05
fastMsgIdFn sha256 / 200 bytes 3.4640 us/op 3.1930 us/op 1.08
fastMsgIdFn h32 xxhash / 200 bytes 326.00 ns/op 257.00 ns/op 1.27
fastMsgIdFn h64 xxhash / 200 bytes 377.00 ns/op 326.00 ns/op 1.16
fastMsgIdFn sha256 / 1000 bytes 11.606 us/op 11.122 us/op 1.04
fastMsgIdFn h32 xxhash / 1000 bytes 421.00 ns/op 389.00 ns/op 1.08
fastMsgIdFn h64 xxhash / 1000 bytes 419.00 ns/op 400.00 ns/op 1.05
fastMsgIdFn sha256 / 10000 bytes 103.30 us/op 102.13 us/op 1.01
fastMsgIdFn h32 xxhash / 10000 bytes 1.9290 us/op 1.8880 us/op 1.02
fastMsgIdFn h64 xxhash / 10000 bytes 1.3100 us/op 1.3010 us/op 1.01
enrSubnets - fastDeserialize 64 bits 1.2380 us/op 1.1550 us/op 1.07
enrSubnets - ssz BitVector 64 bits 454.00 ns/op 395.00 ns/op 1.15
enrSubnets - fastDeserialize 4 bits 185.00 ns/op 153.00 ns/op 1.21
enrSubnets - ssz BitVector 4 bits 457.00 ns/op 384.00 ns/op 1.19
prioritizePeers score -10:0 att 32-0.1 sync 2-0 110.50 us/op 106.43 us/op 1.04
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 129.62 us/op 121.99 us/op 1.06
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 181.09 us/op 157.40 us/op 1.15
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 344.43 us/op 278.77 us/op 1.24
prioritizePeers score 0:0 att 64-1 sync 4-1 348.57 us/op 331.22 us/op 1.05
array of 16000 items push then shift 1.5996 us/op 1.5871 us/op 1.01
LinkedList of 16000 items push then shift 9.3490 ns/op 8.8460 ns/op 1.06
array of 16000 items push then pop 59.762 ns/op 52.814 ns/op 1.13
LinkedList of 16000 items push then pop 8.5190 ns/op 8.8150 ns/op 0.97
array of 24000 items push then shift 2.4632 us/op 2.3447 us/op 1.05
LinkedList of 24000 items push then shift 9.5730 ns/op 8.7760 ns/op 1.09
array of 24000 items push then pop 113.65 ns/op 107.97 ns/op 1.05
LinkedList of 24000 items push then pop 8.6900 ns/op 8.6480 ns/op 1.00
intersect bitArray bitLen 8 6.7830 ns/op 6.7100 ns/op 1.01
intersect array and set length 8 60.332 ns/op 52.134 ns/op 1.16
intersect bitArray bitLen 128 32.488 ns/op 30.305 ns/op 1.07
intersect array and set length 128 788.13 ns/op 716.37 ns/op 1.10
bitArray.getTrueBitIndexes() bitLen 128 1.4780 us/op 1.3610 us/op 1.09
bitArray.getTrueBitIndexes() bitLen 248 2.4630 us/op 2.3020 us/op 1.07
bitArray.getTrueBitIndexes() bitLen 512 5.0430 us/op 4.3990 us/op 1.15
Buffer.concat 32 items 1.0500 us/op 874.00 ns/op 1.20
Uint8Array.set 32 items 1.8200 us/op 1.5790 us/op 1.15
transfer serialized Status (84 B) 1.8540 us/op 1.7180 us/op 1.08
copy serialized Status (84 B) 1.5980 us/op 1.3740 us/op 1.16
transfer serialized SignedVoluntaryExit (112 B) 1.9110 us/op 1.7770 us/op 1.08
copy serialized SignedVoluntaryExit (112 B) 1.6030 us/op 1.6700 us/op 0.96
transfer serialized ProposerSlashing (416 B) 2.0070 us/op 3.1190 us/op 0.64
copy serialized ProposerSlashing (416 B) 1.7730 us/op 3.2520 us/op 0.55
transfer serialized Attestation (485 B) 2.1350 us/op 3.3490 us/op 0.64
copy serialized Attestation (485 B) 1.8900 us/op 3.3460 us/op 0.56
transfer serialized AttesterSlashing (33232 B) 2.1640 us/op 2.9490 us/op 0.73
copy serialized AttesterSlashing (33232 B) 5.1120 us/op 6.1470 us/op 0.83
transfer serialized Small SignedBeaconBlock (128000 B) 2.4720 us/op 2.8940 us/op 0.85
copy serialized Small SignedBeaconBlock (128000 B) 12.526 us/op 12.628 us/op 0.99
transfer serialized Avg SignedBeaconBlock (200000 B) 2.8570 us/op 3.2160 us/op 0.89
copy serialized Avg SignedBeaconBlock (200000 B) 17.873 us/op 22.521 us/op 0.79
transfer serialized BlobsSidecar (524380 B) 3.2630 us/op 3.1070 us/op 1.05
copy serialized BlobsSidecar (524380 B) 206.47 us/op 74.235 us/op 2.78
transfer serialized Big SignedBeaconBlock (1000000 B) 3.2700 us/op 2.7870 us/op 1.17
copy serialized Big SignedBeaconBlock (1000000 B) 203.74 us/op 150.55 us/op 1.35
pass gossip attestations to forkchoice per slot 2.2026 ms/op 2.1531 ms/op 1.02
forkChoice updateHead vc 100000 bc 64 eq 0 2.1490 ms/op 2.4423 ms/op 0.88
forkChoice updateHead vc 600000 bc 64 eq 0 14.175 ms/op 11.417 ms/op 1.24
forkChoice updateHead vc 1000000 bc 64 eq 0 19.853 ms/op 18.385 ms/op 1.08
forkChoice updateHead vc 600000 bc 320 eq 0 16.657 ms/op 16.805 ms/op 0.99
forkChoice updateHead vc 600000 bc 1200 eq 0 90.112 ms/op 82.569 ms/op 1.09
forkChoice updateHead vc 600000 bc 64 eq 1000 22.468 ms/op 18.976 ms/op 1.18
forkChoice updateHead vc 600000 bc 64 eq 10000 24.775 ms/op 20.272 ms/op 1.22
forkChoice updateHead vc 600000 bc 64 eq 300000 36.236 ms/op 26.614 ms/op 1.36
computeDeltas 3.7693 ms/op 2.9478 ms/op 1.28
computeProposerBoostScoreFromBalances 414.30 us/op 382.68 us/op 1.08
altair processAttestation - 250000 vs - 7PWei normalcase 3.2691 ms/op 2.0216 ms/op 1.62
altair processAttestation - 250000 vs - 7PWei worstcase 4.2210 ms/op 3.0733 ms/op 1.37
altair processAttestation - setStatus - 1/6 committees join 214.28 us/op 229.34 us/op 0.93
altair processAttestation - setStatus - 1/3 committees join 352.65 us/op 441.75 us/op 0.80
altair processAttestation - setStatus - 1/2 committees join 489.59 us/op 657.25 us/op 0.74
altair processAttestation - setStatus - 2/3 committees join 644.78 us/op 862.97 us/op 0.75
altair processAttestation - setStatus - 4/5 committees join 846.81 us/op 1.0919 ms/op 0.78
altair processAttestation - setStatus - 100% committees join 1.0127 ms/op 1.1924 ms/op 0.85
altair processBlock - 250000 vs - 7PWei normalcase 10.386 ms/op 9.5312 ms/op 1.09
altair processBlock - 250000 vs - 7PWei normalcase hashState 18.249 ms/op 16.910 ms/op 1.08
altair processBlock - 250000 vs - 7PWei worstcase 42.753 ms/op 37.207 ms/op 1.15
altair processBlock - 250000 vs - 7PWei worstcase hashState 63.881 ms/op 57.111 ms/op 1.12
phase0 processBlock - 250000 vs - 7PWei normalcase 2.9092 ms/op 1.9929 ms/op 1.46
phase0 processBlock - 250000 vs - 7PWei worstcase 33.716 ms/op 27.256 ms/op 1.24
altair processEth1Data - 250000 vs - 7PWei normalcase 647.57 us/op 429.54 us/op 1.51
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 16.885 us/op 13.887 us/op 1.22
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 52.536 us/op 59.164 us/op 0.89
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 29.336 us/op 10.653 us/op 2.75
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 13.548 us/op 7.1650 us/op 1.89
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 214.45 us/op 224.78 us/op 0.95
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.5136 ms/op 2.0266 ms/op 0.75
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.0597 ms/op 2.1535 ms/op 0.96
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.6852 ms/op 3.2635 ms/op 0.52
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.3225 ms/op 2.7926 ms/op 1.55
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.6230 ms/op 2.2391 ms/op 1.17
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.6131 ms/op 4.3864 ms/op 1.28
Tree 40 250000 create 364.64 ms/op 334.82 ms/op 1.09
Tree 40 250000 get(125000) 207.30 ns/op 189.93 ns/op 1.09
Tree 40 250000 set(125000) 1.0205 us/op 834.76 ns/op 1.22
Tree 40 250000 toArray() 18.568 ms/op 16.371 ms/op 1.13
Tree 40 250000 iterate all - toArray() + loop 19.273 ms/op 16.480 ms/op 1.17
Tree 40 250000 iterate all - get(i) 67.994 ms/op 61.809 ms/op 1.10
MutableVector 250000 create 11.554 ms/op 12.657 ms/op 0.91
MutableVector 250000 get(125000) 6.5810 ns/op 6.4470 ns/op 1.02
MutableVector 250000 set(125000) 263.31 ns/op 236.06 ns/op 1.12
MutableVector 250000 toArray() 2.7765 ms/op 3.2515 ms/op 0.85
MutableVector 250000 iterate all - toArray() + loop 3.1625 ms/op 3.1527 ms/op 1.00
MutableVector 250000 iterate all - get(i) 1.5446 ms/op 1.5369 ms/op 1.01
Array 250000 create 2.8125 ms/op 3.0640 ms/op 0.92
Array 250000 clone - spread 1.1925 ms/op 1.0120 ms/op 1.18
Array 250000 get(125000) 0.60200 ns/op 0.55000 ns/op 1.09
Array 250000 set(125000) 0.67600 ns/op 0.60500 ns/op 1.12
Array 250000 iterate all - loop 84.185 us/op 83.802 us/op 1.00
effectiveBalanceIncrements clone Uint8Array 300000 26.707 us/op 24.149 us/op 1.11
effectiveBalanceIncrements clone MutableVector 300000 363.00 ns/op 289.00 ns/op 1.26
effectiveBalanceIncrements rw all Uint8Array 300000 180.81 us/op 178.20 us/op 1.01
effectiveBalanceIncrements rw all MutableVector 300000 85.523 ms/op 78.722 ms/op 1.09
phase0 afterProcessEpoch - 250000 vs - 7PWei 116.33 ms/op 113.82 ms/op 1.02
phase0 beforeProcessEpoch - 250000 vs - 7PWei 32.747 ms/op 43.262 ms/op 0.76
altair processEpoch - mainnet_e81889 321.60 ms/op 345.43 ms/op 0.93
mainnet_e81889 - altair beforeProcessEpoch 61.948 ms/op 62.485 ms/op 0.99
mainnet_e81889 - altair processJustificationAndFinalization 15.315 us/op 20.108 us/op 0.76
mainnet_e81889 - altair processInactivityUpdates 5.3158 ms/op 5.9243 ms/op 0.90
mainnet_e81889 - altair processRewardsAndPenalties 69.125 ms/op 67.831 ms/op 1.02
mainnet_e81889 - altair processRegistryUpdates 2.6040 us/op 2.9970 us/op 0.87
mainnet_e81889 - altair processSlashings 452.00 ns/op 507.00 ns/op 0.89
mainnet_e81889 - altair processEth1DataReset 538.00 ns/op 580.00 ns/op 0.93
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.3612 ms/op 2.6524 ms/op 0.51
mainnet_e81889 - altair processSlashingsReset 4.4700 us/op 2.3080 us/op 1.94
mainnet_e81889 - altair processRandaoMixesReset 8.4670 us/op 5.1330 us/op 1.65
mainnet_e81889 - altair processHistoricalRootsUpdate 627.00 ns/op 705.00 ns/op 0.89
mainnet_e81889 - altair processParticipationFlagUpdates 1.8710 us/op 2.0930 us/op 0.89
mainnet_e81889 - altair processSyncCommitteeUpdates 670.00 ns/op 1.2500 us/op 0.54
mainnet_e81889 - altair afterProcessEpoch 123.47 ms/op 131.60 ms/op 0.94
phase0 processEpoch - mainnet_e58758 345.33 ms/op 380.84 ms/op 0.91
mainnet_e58758 - phase0 beforeProcessEpoch 134.70 ms/op 159.50 ms/op 0.84
mainnet_e58758 - phase0 processJustificationAndFinalization 14.237 us/op 16.238 us/op 0.88
mainnet_e58758 - phase0 processRewardsAndPenalties 67.240 ms/op 74.707 ms/op 0.90
mainnet_e58758 - phase0 processRegistryUpdates 11.215 us/op 9.4860 us/op 1.18
mainnet_e58758 - phase0 processSlashings 520.00 ns/op 550.00 ns/op 0.95
mainnet_e58758 - phase0 processEth1DataReset 449.00 ns/op 429.00 ns/op 1.05
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.4021 ms/op 1.8752 ms/op 0.75
mainnet_e58758 - phase0 processSlashingsReset 2.1150 us/op 1.9220 us/op 1.10
mainnet_e58758 - phase0 processRandaoMixesReset 4.6620 us/op 4.3370 us/op 1.07
mainnet_e58758 - phase0 processHistoricalRootsUpdate 623.00 ns/op 490.00 ns/op 1.27
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.5630 us/op 4.6730 us/op 0.76
mainnet_e58758 - phase0 afterProcessEpoch 98.338 ms/op 97.273 ms/op 1.01
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.2629 ms/op 1.5732 ms/op 0.80
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.4439 ms/op 1.4268 ms/op 1.01
altair processInactivityUpdates - 250000 normalcase 25.298 ms/op 27.602 ms/op 0.92
altair processInactivityUpdates - 250000 worstcase 24.640 ms/op 23.937 ms/op 1.03
phase0 processRegistryUpdates - 250000 normalcase 8.5600 us/op 8.9080 us/op 0.96
phase0 processRegistryUpdates - 250000 badcase_full_deposits 352.81 us/op 326.67 us/op 1.08
phase0 processRegistryUpdates - 250000 worstcase 0.5 130.15 ms/op 140.85 ms/op 0.92
altair processRewardsAndPenalties - 250000 normalcase 66.188 ms/op 76.632 ms/op 0.86
altair processRewardsAndPenalties - 250000 worstcase 66.367 ms/op 72.655 ms/op 0.91
phase0 getAttestationDeltas - 250000 normalcase 7.6162 ms/op 7.8872 ms/op 0.97
phase0 getAttestationDeltas - 250000 worstcase 8.7227 ms/op 7.7723 ms/op 1.12
phase0 processSlashings - 250000 worstcase 2.2320 ms/op 2.2864 ms/op 0.98
altair processSyncCommitteeUpdates - 250000 148.11 ms/op 148.45 ms/op 1.00
BeaconState.hashTreeRoot - No change 250.00 ns/op 290.00 ns/op 0.86
BeaconState.hashTreeRoot - 1 full validator 53.478 us/op 48.703 us/op 1.10
BeaconState.hashTreeRoot - 32 full validator 504.34 us/op 479.79 us/op 1.05
BeaconState.hashTreeRoot - 512 full validator 5.4661 ms/op 4.9749 ms/op 1.10
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 66.823 us/op 59.150 us/op 1.13
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 937.43 us/op 813.35 us/op 1.15
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 12.482 ms/op 10.079 ms/op 1.24
BeaconState.hashTreeRoot - 1 balances 49.405 us/op 46.534 us/op 1.06
BeaconState.hashTreeRoot - 32 balances 440.51 us/op 418.67 us/op 1.05
BeaconState.hashTreeRoot - 512 balances 4.4642 ms/op 3.8624 ms/op 1.16
BeaconState.hashTreeRoot - 250000 balances 78.661 ms/op 80.070 ms/op 0.98
aggregationBits - 2048 els - zipIndexesInBitList 15.953 us/op 15.422 us/op 1.03
regular array get 100000 times 43.743 us/op 33.465 us/op 1.31
wrappedArray get 100000 times 33.534 us/op 33.065 us/op 1.01
arrayWithProxy get 100000 times 15.571 ms/op 15.034 ms/op 1.04
ssz.Root.equals 217.00 ns/op 203.00 ns/op 1.07
byteArrayEquals 220.00 ns/op 203.00 ns/op 1.08
shuffle list - 16384 els 7.2540 ms/op 6.8656 ms/op 1.06
shuffle list - 250000 els 105.02 ms/op 103.25 ms/op 1.02
processSlot - 1 slots 10.016 us/op 7.8460 us/op 1.28
processSlot - 32 slots 1.4289 ms/op 1.2758 ms/op 1.12
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 54.756 ms/op 55.291 ms/op 0.99
getCommitteeAssignments - req 1 vs - 250000 vc 2.5322 ms/op 2.5245 ms/op 1.00
getCommitteeAssignments - req 100 vs - 250000 vc 3.6847 ms/op 3.7420 ms/op 0.98
getCommitteeAssignments - req 1000 vs - 250000 vc 4.0277 ms/op 4.0738 ms/op 0.99
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.4700 ns/op 4.5200 ns/op 0.99
state getBlockRootAtSlot - 250000 vs - 7PWei 602.18 ns/op 743.05 ns/op 0.81
computeProposers - vc 250000 8.8616 ms/op 8.9167 ms/op 0.99
computeEpochShuffling - vc 250000 103.66 ms/op 101.82 ms/op 1.02
getNextSyncCommittee - vc 250000 147.00 ms/op 152.75 ms/op 0.96
computeSigningRoot for AttestationData 13.410 us/op 12.857 us/op 1.04
hash AttestationData serialized data then Buffer.toString(base64) 2.3683 us/op 2.2378 us/op 1.06
toHexString serialized data 1.0677 us/op 1.0411 us/op 1.03
Buffer.toString(base64) 226.77 ns/op 216.45 ns/op 1.05

by benchmarkbot/action

@twoeths
Copy link
Contributor Author

twoeths commented Jul 24, 2023

I have deployed this branch across nodes, don't see any differences in missed attestation ratio and number of topic peers. In fact, the issue of having too many topic peers during sync committee period does not happen on goerli

ready for review

@twoeths twoeths marked this pull request as ready for review July 24, 2023 08:42
@twoeths twoeths requested a review from a team as a code owner July 24, 2023 08:42
@philknows philknows modified the milestones: v1.9.3, v1.10.0 Jul 25, 2023
@wemeetagain wemeetagain merged commit c112f01 into unstable Jul 26, 2023
11 checks passed
@wemeetagain wemeetagain deleted the tuyen/fix_should_dial_peer branch July 26, 2023 03:47
@wemeetagain
Copy link
Member

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

I/O performance issue when subscribing to sync committee
3 participants