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: enable deterministicLongLivedAttnets by default #5822

Merged
merged 1 commit into from
Aug 1, 2023

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Jul 31, 2023

Motivation

Most of nodes (except for novc and 1v) use significant less resource so we may want to turn this flag on by default sooner than later

Description

  • Enable deterministicLongLivedAttnets flag by default which make nodes subscribe to 2 subnets instead of depending on number of connected validator

  • 1k node

Screenshot 2023-07-31 at 20 04 06
  • 64 validator node
Screenshot 2023-07-31 at 20 05 10
  • 16 validator node
Screenshot 2023-07-31 at 20 06 11
  • 1 validator node uses a bit more resource
Screenshot 2023-07-31 at 20 06 55

@twoeths
Copy link
Contributor Author

twoeths commented Jul 31, 2023

also way less event loop lag metric B, this is on 64 validator node

Screenshot 2023-07-31 at 20 08 47

this helps the API a lot, like submitPoolsAttestation
Screenshot 2023-07-31 at 20 10 16

missed attestation ratio is similar, or a bit better

Screenshot 2023-07-31 at 20 10 45

@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 0cbb775 Previous: 487aef9 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 575.95 us/op 426.48 us/op 1.35
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 89.017 us/op 73.411 us/op 1.21
BLS verify - blst-native 1.2728 ms/op 1.2172 ms/op 1.05
BLS verifyMultipleSignatures 3 - blst-native 2.5884 ms/op 2.4779 ms/op 1.04
BLS verifyMultipleSignatures 8 - blst-native 5.5879 ms/op 5.3143 ms/op 1.05
BLS verifyMultipleSignatures 32 - blst-native 20.204 ms/op 19.202 ms/op 1.05
BLS aggregatePubkeys 32 - blst-native 27.927 us/op 25.514 us/op 1.09
BLS aggregatePubkeys 128 - blst-native 104.78 us/op 99.715 us/op 1.05
getAttestationsForBlock 68.142 ms/op 48.755 ms/op 1.40
isKnown best case - 1 super set check 437.00 ns/op 283.00 ns/op 1.54
isKnown normal case - 2 super set checks 476.00 ns/op 269.00 ns/op 1.77
isKnown worse case - 16 super set checks 467.00 ns/op 276.00 ns/op 1.69
CheckpointStateCache - add get delete 5.7560 us/op 5.0450 us/op 1.14
validate api signedAggregateAndProof - struct 2.8864 ms/op 2.8125 ms/op 1.03
validate gossip signedAggregateAndProof - struct 2.8887 ms/op 2.8174 ms/op 1.03
validate api attestation - struct 1.4712 ms/op 1.3427 ms/op 1.10
validate gossip attestation - struct 1.5002 ms/op 1.3620 ms/op 1.10
pickEth1Vote - no votes 1.3781 ms/op 1.1770 ms/op 1.17
pickEth1Vote - max votes 12.337 ms/op 10.305 ms/op 1.20
pickEth1Vote - Eth1Data hashTreeRoot value x2048 10.049 ms/op 8.6599 ms/op 1.16
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 20.273 ms/op 13.128 ms/op 1.54
pickEth1Vote - Eth1Data fastSerialize value x2048 772.00 us/op 573.13 us/op 1.35
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.9597 ms/op 6.8657 ms/op 0.87
bytes32 toHexString 783.00 ns/op 512.00 ns/op 1.53
bytes32 Buffer.toString(hex) 354.00 ns/op 299.00 ns/op 1.18
bytes32 Buffer.toString(hex) from Uint8Array 647.00 ns/op 413.00 ns/op 1.57
bytes32 Buffer.toString(hex) + 0x 403.00 ns/op 286.00 ns/op 1.41
Object access 1 prop 0.21800 ns/op 0.16600 ns/op 1.31
Map access 1 prop 0.18800 ns/op 0.15000 ns/op 1.25
Object get x1000 9.8460 ns/op 7.6740 ns/op 1.28
Map get x1000 0.78200 ns/op 0.54500 ns/op 1.43
Object set x1000 76.701 ns/op 49.040 ns/op 1.56
Map set x1000 56.604 ns/op 39.213 ns/op 1.44
Return object 10000 times 0.28330 ns/op 0.23410 ns/op 1.21
Throw Error 10000 times 4.3462 us/op 3.8459 us/op 1.13
fastMsgIdFn sha256 / 200 bytes 3.6580 us/op 3.3240 us/op 1.10
fastMsgIdFn h32 xxhash / 200 bytes 354.00 ns/op 285.00 ns/op 1.24
fastMsgIdFn h64 xxhash / 200 bytes 425.00 ns/op 354.00 ns/op 1.20
fastMsgIdFn sha256 / 1000 bytes 12.197 us/op 11.250 us/op 1.08
fastMsgIdFn h32 xxhash / 1000 bytes 503.00 ns/op 412.00 ns/op 1.22
fastMsgIdFn h64 xxhash / 1000 bytes 478.00 ns/op 419.00 ns/op 1.14
fastMsgIdFn sha256 / 10000 bytes 108.73 us/op 102.67 us/op 1.06
fastMsgIdFn h32 xxhash / 10000 bytes 2.1090 us/op 1.9320 us/op 1.09
fastMsgIdFn h64 xxhash / 10000 bytes 1.5310 us/op 1.3220 us/op 1.16
enrSubnets - fastDeserialize 64 bits 1.8090 us/op 1.2340 us/op 1.47
enrSubnets - ssz BitVector 64 bits 653.00 ns/op 415.00 ns/op 1.57
enrSubnets - fastDeserialize 4 bits 262.00 ns/op 168.00 ns/op 1.56
enrSubnets - ssz BitVector 4 bits 629.00 ns/op 428.00 ns/op 1.47
prioritizePeers score -10:0 att 32-0.1 sync 2-0 133.50 us/op 98.000 us/op 1.36
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 165.98 us/op 125.40 us/op 1.32
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 211.60 us/op 164.99 us/op 1.28
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 387.83 us/op 289.68 us/op 1.34
prioritizePeers score 0:0 att 64-1 sync 4-1 441.77 us/op 353.72 us/op 1.25
array of 16000 items push then shift 1.7909 us/op 1.5774 us/op 1.14
LinkedList of 16000 items push then shift 11.619 ns/op 8.8730 ns/op 1.31
array of 16000 items push then pop 71.702 ns/op 51.167 ns/op 1.40
LinkedList of 16000 items push then pop 10.435 ns/op 8.8700 ns/op 1.18
array of 24000 items push then shift 2.8904 us/op 2.3926 us/op 1.21
LinkedList of 24000 items push then shift 11.625 ns/op 8.8100 ns/op 1.32
array of 24000 items push then pop 149.59 ns/op 111.36 ns/op 1.34
LinkedList of 24000 items push then pop 11.030 ns/op 9.1060 ns/op 1.21
intersect bitArray bitLen 8 8.1640 ns/op 6.9460 ns/op 1.18
intersect array and set length 8 101.28 ns/op 61.198 ns/op 1.65
intersect bitArray bitLen 128 39.964 ns/op 32.204 ns/op 1.24
intersect array and set length 128 1.1227 us/op 806.04 ns/op 1.39
bitArray.getTrueBitIndexes() bitLen 128 2.1310 us/op 1.5990 us/op 1.33
bitArray.getTrueBitIndexes() bitLen 248 3.8630 us/op 2.5110 us/op 1.54
bitArray.getTrueBitIndexes() bitLen 512 7.5800 us/op 4.9000 us/op 1.55
Buffer.concat 32 items 1.3960 us/op 1.0370 us/op 1.35
Uint8Array.set 32 items 3.5130 us/op 1.9440 us/op 1.81
transfer serialized Status (84 B) 2.8410 us/op 1.8610 us/op 1.53
copy serialized Status (84 B) 2.3740 us/op 1.5450 us/op 1.54
transfer serialized SignedVoluntaryExit (112 B) 2.7900 us/op 1.9370 us/op 1.44
copy serialized SignedVoluntaryExit (112 B) 2.4110 us/op 1.5550 us/op 1.55
transfer serialized ProposerSlashing (416 B) 4.0860 us/op 2.1000 us/op 1.95
copy serialized ProposerSlashing (416 B) 3.2380 us/op 1.8560 us/op 1.74
transfer serialized Attestation (485 B) 3.7750 us/op 2.0620 us/op 1.83
copy serialized Attestation (485 B) 3.3970 us/op 1.7870 us/op 1.90
transfer serialized AttesterSlashing (33232 B) 3.4610 us/op 2.2450 us/op 1.54
copy serialized AttesterSlashing (33232 B) 12.112 us/op 4.8340 us/op 2.51
transfer serialized Small SignedBeaconBlock (128000 B) 3.3450 us/op 2.3850 us/op 1.40
copy serialized Small SignedBeaconBlock (128000 B) 31.641 us/op 11.918 us/op 2.65
transfer serialized Avg SignedBeaconBlock (200000 B) 4.4030 us/op 2.7470 us/op 1.60
copy serialized Avg SignedBeaconBlock (200000 B) 48.700 us/op 17.175 us/op 2.84
transfer serialized BlobsSidecar (524380 B) 5.8180 us/op 2.8080 us/op 2.07
copy serialized BlobsSidecar (524380 B) 194.42 us/op 76.224 us/op 2.55
transfer serialized Big SignedBeaconBlock (1000000 B) 5.7190 us/op 3.7150 us/op 1.54
copy serialized Big SignedBeaconBlock (1000000 B) 260.05 us/op 154.75 us/op 1.68
pass gossip attestations to forkchoice per slot 2.5575 ms/op 2.1504 ms/op 1.19
forkChoice updateHead vc 100000 bc 64 eq 0 2.3370 ms/op 2.0840 ms/op 1.12
forkChoice updateHead vc 600000 bc 64 eq 0 12.473 ms/op 13.546 ms/op 0.92
forkChoice updateHead vc 1000000 bc 64 eq 0 22.182 ms/op 18.841 ms/op 1.18
forkChoice updateHead vc 600000 bc 320 eq 0 21.556 ms/op 16.540 ms/op 1.30
forkChoice updateHead vc 600000 bc 1200 eq 0 98.275 ms/op 84.402 ms/op 1.16
forkChoice updateHead vc 600000 bc 64 eq 1000 22.814 ms/op 22.002 ms/op 1.04
forkChoice updateHead vc 600000 bc 64 eq 10000 25.738 ms/op 24.289 ms/op 1.06
forkChoice updateHead vc 600000 bc 64 eq 300000 61.411 ms/op 28.815 ms/op 2.13
computeDeltas 3.5617 ms/op 2.9925 ms/op 1.19
computeProposerBoostScoreFromBalances 414.97 us/op 388.70 us/op 1.07
altair processAttestation - 250000 vs - 7PWei normalcase 3.1204 ms/op 2.3598 ms/op 1.32
altair processAttestation - 250000 vs - 7PWei worstcase 4.0573 ms/op 4.0104 ms/op 1.01
altair processAttestation - setStatus - 1/6 committees join 168.21 us/op 220.65 us/op 0.76
altair processAttestation - setStatus - 1/3 committees join 318.66 us/op 444.33 us/op 0.72
altair processAttestation - setStatus - 1/2 committees join 419.52 us/op 593.20 us/op 0.71
altair processAttestation - setStatus - 2/3 committees join 531.96 us/op 706.83 us/op 0.75
altair processAttestation - setStatus - 4/5 committees join 732.51 us/op 1.0137 ms/op 0.72
altair processAttestation - setStatus - 100% committees join 893.13 us/op 1.1999 ms/op 0.74
altair processBlock - 250000 vs - 7PWei normalcase 10.334 ms/op 10.453 ms/op 0.99
altair processBlock - 250000 vs - 7PWei normalcase hashState 19.285 ms/op 17.937 ms/op 1.08
altair processBlock - 250000 vs - 7PWei worstcase 42.573 ms/op 39.566 ms/op 1.08
altair processBlock - 250000 vs - 7PWei worstcase hashState 67.027 ms/op 59.822 ms/op 1.12
phase0 processBlock - 250000 vs - 7PWei normalcase 2.7369 ms/op 1.9088 ms/op 1.43
phase0 processBlock - 250000 vs - 7PWei worstcase 34.277 ms/op 29.306 ms/op 1.17
altair processEth1Data - 250000 vs - 7PWei normalcase 690.67 us/op 555.70 us/op 1.24
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 18.384 us/op 10.252 us/op 1.79
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 57.598 us/op 72.045 us/op 0.80
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 29.687 us/op 19.016 us/op 1.56
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 12.977 us/op 17.159 us/op 0.76
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 238.84 us/op 179.10 us/op 1.33
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.4667 ms/op 1.2740 ms/op 1.15
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.5337 ms/op 1.9381 ms/op 1.31
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.1045 ms/op 1.4262 ms/op 1.48
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.7948 ms/op 3.4789 ms/op 1.09
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.8649 ms/op 2.5985 ms/op 1.10
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 6.0058 ms/op 5.3971 ms/op 1.11
Tree 40 250000 create 395.42 ms/op 321.50 ms/op 1.23
Tree 40 250000 get(125000) 213.14 ns/op 210.22 ns/op 1.01
Tree 40 250000 set(125000) 1.0981 us/op 939.88 ns/op 1.17
Tree 40 250000 toArray() 24.203 ms/op 22.250 ms/op 1.09
Tree 40 250000 iterate all - toArray() + loop 24.805 ms/op 23.308 ms/op 1.06
Tree 40 250000 iterate all - get(i) 78.070 ms/op 72.830 ms/op 1.07
MutableVector 250000 create 12.147 ms/op 10.505 ms/op 1.16
MutableVector 250000 get(125000) 6.8900 ns/op 6.5830 ns/op 1.05
MutableVector 250000 set(125000) 294.35 ns/op 276.40 ns/op 1.06
MutableVector 250000 toArray() 4.0506 ms/op 2.8662 ms/op 1.41
MutableVector 250000 iterate all - toArray() + loop 4.0497 ms/op 3.0440 ms/op 1.33
MutableVector 250000 iterate all - get(i) 1.5820 ms/op 1.5403 ms/op 1.03
Array 250000 create 3.9156 ms/op 2.8075 ms/op 1.39
Array 250000 clone - spread 1.3225 ms/op 1.2440 ms/op 1.06
Array 250000 get(125000) 0.63000 ns/op 0.62700 ns/op 1.00
Array 250000 set(125000) 0.72100 ns/op 0.71000 ns/op 1.02
Array 250000 iterate all - loop 90.177 us/op 86.163 us/op 1.05
effectiveBalanceIncrements clone Uint8Array 300000 57.079 us/op 29.844 us/op 1.91
effectiveBalanceIncrements clone MutableVector 300000 393.00 ns/op 379.00 ns/op 1.04
effectiveBalanceIncrements rw all Uint8Array 300000 183.64 us/op 180.47 us/op 1.02
effectiveBalanceIncrements rw all MutableVector 300000 112.62 ms/op 86.705 ms/op 1.30
phase0 afterProcessEpoch - 250000 vs - 7PWei 130.94 ms/op 115.21 ms/op 1.14
phase0 beforeProcessEpoch - 250000 vs - 7PWei 45.175 ms/op 34.293 ms/op 1.32
altair processEpoch - mainnet_e81889 374.47 ms/op 296.96 ms/op 1.26
mainnet_e81889 - altair beforeProcessEpoch 71.288 ms/op 61.443 ms/op 1.16
mainnet_e81889 - altair processJustificationAndFinalization 17.867 us/op 14.896 us/op 1.20
mainnet_e81889 - altair processInactivityUpdates 6.4708 ms/op 5.7267 ms/op 1.13
mainnet_e81889 - altair processRewardsAndPenalties 76.761 ms/op 65.012 ms/op 1.18
mainnet_e81889 - altair processRegistryUpdates 5.5700 us/op 2.0990 us/op 2.65
mainnet_e81889 - altair processSlashings 762.00 ns/op 489.00 ns/op 1.56
mainnet_e81889 - altair processEth1DataReset 677.00 ns/op 533.00 ns/op 1.27
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.5233 ms/op 1.2762 ms/op 1.19
mainnet_e81889 - altair processSlashingsReset 3.9110 us/op 2.3610 us/op 1.66
mainnet_e81889 - altair processRandaoMixesReset 7.1820 us/op 6.8890 us/op 1.04
mainnet_e81889 - altair processHistoricalRootsUpdate 1.2620 us/op 875.00 ns/op 1.44
mainnet_e81889 - altair processParticipationFlagUpdates 2.9610 us/op 2.0020 us/op 1.48
mainnet_e81889 - altair processSyncCommitteeUpdates 1.1810 us/op 544.00 ns/op 2.17
mainnet_e81889 - altair afterProcessEpoch 133.95 ms/op 126.46 ms/op 1.06
capella processEpoch - mainnet_e217614 1.1842 s/op 1.0207 s/op 1.16
mainnet_e217614 - capella beforeProcessEpoch 304.46 ms/op 223.77 ms/op 1.36
mainnet_e217614 - capella processJustificationAndFinalization 29.577 us/op 12.507 us/op 2.36
mainnet_e217614 - capella processInactivityUpdates 20.674 ms/op 19.496 ms/op 1.06
mainnet_e217614 - capella processRewardsAndPenalties 353.46 ms/op 283.34 ms/op 1.25
mainnet_e217614 - capella processRegistryUpdates 35.705 us/op 20.010 us/op 1.78
mainnet_e217614 - capella processSlashings 1.0090 us/op 504.00 ns/op 2.00
mainnet_e217614 - capella processEth1DataReset 1.0850 us/op 454.00 ns/op 2.39
mainnet_e217614 - capella processEffectiveBalanceUpdates 5.1237 ms/op 4.0902 ms/op 1.25
mainnet_e217614 - capella processSlashingsReset 3.3440 us/op 1.9950 us/op 1.68
mainnet_e217614 - capella processRandaoMixesReset 8.2560 us/op 4.5870 us/op 1.80
mainnet_e217614 - capella processHistoricalRootsUpdate 1.2240 us/op 474.00 ns/op 2.58
mainnet_e217614 - capella processParticipationFlagUpdates 4.9500 us/op 1.1290 us/op 4.38
mainnet_e217614 - capella afterProcessEpoch 352.31 ms/op 303.76 ms/op 1.16
phase0 processEpoch - mainnet_e58758 406.32 ms/op 351.75 ms/op 1.16
mainnet_e58758 - phase0 beforeProcessEpoch 134.44 ms/op 114.52 ms/op 1.17
mainnet_e58758 - phase0 processJustificationAndFinalization 24.397 us/op 15.460 us/op 1.58
mainnet_e58758 - phase0 processRewardsAndPenalties 61.176 ms/op 56.839 ms/op 1.08
mainnet_e58758 - phase0 processRegistryUpdates 12.144 us/op 16.860 us/op 0.72
mainnet_e58758 - phase0 processSlashings 599.00 ns/op 512.00 ns/op 1.17
mainnet_e58758 - phase0 processEth1DataReset 527.00 ns/op 639.00 ns/op 0.82
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.2532 ms/op 1.2004 ms/op 1.04
mainnet_e58758 - phase0 processSlashingsReset 3.4460 us/op 2.7610 us/op 1.25
mainnet_e58758 - phase0 processRandaoMixesReset 8.3840 us/op 4.6870 us/op 1.79
mainnet_e58758 - phase0 processHistoricalRootsUpdate 615.00 ns/op 1.0090 us/op 0.61
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.3670 us/op 6.4380 us/op 0.68
mainnet_e58758 - phase0 afterProcessEpoch 113.99 ms/op 107.32 ms/op 1.06
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3468 ms/op 1.9576 ms/op 0.69
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.9428 ms/op 1.5391 ms/op 1.26
altair processInactivityUpdates - 250000 normalcase 30.076 ms/op 21.906 ms/op 1.37
altair processInactivityUpdates - 250000 worstcase 28.592 ms/op 20.778 ms/op 1.38
phase0 processRegistryUpdates - 250000 normalcase 11.010 us/op 14.845 us/op 0.74
phase0 processRegistryUpdates - 250000 badcase_full_deposits 429.38 us/op 360.25 us/op 1.19
phase0 processRegistryUpdates - 250000 worstcase 0.5 143.00 ms/op 152.08 ms/op 0.94
altair processRewardsAndPenalties - 250000 normalcase 77.232 ms/op 62.072 ms/op 1.24
altair processRewardsAndPenalties - 250000 worstcase 79.399 ms/op 56.425 ms/op 1.41
phase0 getAttestationDeltas - 250000 normalcase 8.4218 ms/op 10.108 ms/op 0.83
phase0 getAttestationDeltas - 250000 worstcase 8.1479 ms/op 10.931 ms/op 0.75
phase0 processSlashings - 250000 worstcase 2.3484 ms/op 2.5325 ms/op 0.93
altair processSyncCommitteeUpdates - 250000 160.59 ms/op 186.44 ms/op 0.86
BeaconState.hashTreeRoot - No change 276.00 ns/op 534.00 ns/op 0.52
BeaconState.hashTreeRoot - 1 full validator 58.514 us/op 53.963 us/op 1.08
BeaconState.hashTreeRoot - 32 full validator 628.61 us/op 518.07 us/op 1.21
BeaconState.hashTreeRoot - 512 full validator 6.2520 ms/op 6.8312 ms/op 0.92
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 70.343 us/op 66.543 us/op 1.06
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 998.53 us/op 1.0339 ms/op 0.97
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 13.563 ms/op 14.278 ms/op 0.95
BeaconState.hashTreeRoot - 1 balances 54.605 us/op 50.799 us/op 1.07
BeaconState.hashTreeRoot - 32 balances 557.14 us/op 478.71 us/op 1.16
BeaconState.hashTreeRoot - 512 balances 4.9536 ms/op 5.0059 ms/op 0.99
BeaconState.hashTreeRoot - 250000 balances 80.542 ms/op 91.231 ms/op 0.88
aggregationBits - 2048 els - zipIndexesInBitList 20.408 us/op 33.644 us/op 0.61
regular array get 100000 times 36.892 us/op 37.156 us/op 0.99
wrappedArray get 100000 times 35.963 us/op 36.425 us/op 0.99
arrayWithProxy get 100000 times 14.690 ms/op 17.332 ms/op 0.85
ssz.Root.equals 243.00 ns/op 304.00 ns/op 0.80
byteArrayEquals 257.00 ns/op 304.00 ns/op 0.85
shuffle list - 16384 els 7.3116 ms/op 8.6305 ms/op 0.85
shuffle list - 250000 els 106.74 ms/op 121.28 ms/op 0.88
processSlot - 1 slots 9.9630 us/op 9.1340 us/op 1.09
processSlot - 32 slots 1.3617 ms/op 1.6555 ms/op 0.82
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 57.882 ms/op 66.060 ms/op 0.88
getCommitteeAssignments - req 1 vs - 250000 vc 2.5895 ms/op 2.8380 ms/op 0.91
getCommitteeAssignments - req 100 vs - 250000 vc 3.8207 ms/op 4.0323 ms/op 0.95
getCommitteeAssignments - req 1000 vs - 250000 vc 4.4327 ms/op 4.8978 ms/op 0.91
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.3500 ns/op 5.9800 ns/op 0.89
state getBlockRootAtSlot - 250000 vs - 7PWei 1.0800 us/op 828.80 ns/op 1.30
computeProposers - vc 250000 9.6750 ms/op 11.701 ms/op 0.83
computeEpochShuffling - vc 250000 114.80 ms/op 119.42 ms/op 0.96
getNextSyncCommittee - vc 250000 161.64 ms/op 176.23 ms/op 0.92
computeSigningRoot for AttestationData 14.283 us/op 15.907 us/op 0.90
hash AttestationData serialized data then Buffer.toString(base64) 2.3941 us/op 2.6628 us/op 0.90
toHexString serialized data 1.1467 us/op 1.6538 us/op 0.69
Buffer.toString(base64) 248.05 ns/op 328.17 ns/op 0.76

by benchmarkbot/action

@wemeetagain
Copy link
Member

Screenshot from 2023-07-31 09-31-01

Gossip bandwidth much lower

@twoeths
Copy link
Contributor Author

twoeths commented Jul 31, 2023

adding some bandquidth metrics, cc @nflaig

Screenshot 2023-07-31 at 20 35 17 Screenshot 2023-07-31 at 20 35 53 Screenshot 2023-07-31 at 20 36 30

@twoeths
Copy link
Contributor Author

twoeths commented Jul 31, 2023

The aggregator performance is the same, this is from 64 validator node

Screenshot 2023-07-31 at 21 08 22

cc @dapplion

@philknows philknows added this to the v1.10.0 milestone Jul 31, 2023
@twoeths
Copy link
Contributor Author

twoeths commented Aug 1, 2023

attaching the profile of 1k node on goerli
0801_lg1k_v1.10.0_rc.0_deterministicLongLivedSubnets.cpuprofile.zip

cc @wemeetagain

@twoeths twoeths marked this pull request as ready for review August 1, 2023 14:08
@twoeths twoeths requested a review from a team as a code owner August 1, 2023 14:08
@wemeetagain wemeetagain merged commit 07b16f3 into unstable Aug 1, 2023
11 checks passed
@wemeetagain wemeetagain deleted the tuyen/deterministicLongLivedAttnets_default branch August 1, 2023 14:08
@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.

3 participants