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

Update lodestar agent detection #4664

Merged
merged 1 commit into from
Oct 19, 2022

Conversation

dapplion
Copy link
Contributor

@dapplion dapplion commented Oct 18, 2022

Motivation

Description

Update lodestar agent detection

@dapplion dapplion requested a review from a team as a code owner October 18, 2022 15:08
@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 7aa9c30 Previous: 6489264 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.1117 ms/op 2.3660 ms/op 0.89
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 84.918 us/op 76.948 us/op 1.10
BLS verify - blst-native 2.1987 ms/op 1.8601 ms/op 1.18
BLS verifyMultipleSignatures 3 - blst-native 4.3689 ms/op 3.8152 ms/op 1.15
BLS verifyMultipleSignatures 8 - blst-native 9.4040 ms/op 8.2097 ms/op 1.15
BLS verifyMultipleSignatures 32 - blst-native 35.034 ms/op 29.743 ms/op 1.18
BLS aggregatePubkeys 32 - blst-native 46.324 us/op 39.866 us/op 1.16
BLS aggregatePubkeys 128 - blst-native 182.58 us/op 153.22 us/op 1.19
getAttestationsForBlock 91.184 ms/op 96.628 ms/op 0.94
isKnown best case - 1 super set check 504.00 ns/op 446.00 ns/op 1.13
isKnown normal case - 2 super set checks 498.00 ns/op 432.00 ns/op 1.15
isKnown worse case - 16 super set checks 492.00 ns/op 434.00 ns/op 1.13
CheckpointStateCache - add get delete 9.4630 us/op 9.2880 us/op 1.02
validate gossip signedAggregateAndProof - struct 4.8676 ms/op 4.2857 ms/op 1.14
validate gossip attestation - struct 2.2974 ms/op 2.0324 ms/op 1.13
pickEth1Vote - no votes 2.3899 ms/op 2.2069 ms/op 1.08
pickEth1Vote - max votes 19.745 ms/op 22.057 ms/op 0.90
pickEth1Vote - Eth1Data hashTreeRoot value x2048 11.960 ms/op 11.368 ms/op 1.05
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 21.132 ms/op 21.742 ms/op 0.97
pickEth1Vote - Eth1Data fastSerialize value x2048 1.7120 ms/op 1.5643 ms/op 1.09
pickEth1Vote - Eth1Data fastSerialize tree x2048 13.546 ms/op 15.379 ms/op 0.88
bytes32 toHexString 1.1690 us/op 1.1210 us/op 1.04
bytes32 Buffer.toString(hex) 771.00 ns/op 710.00 ns/op 1.09
bytes32 Buffer.toString(hex) from Uint8Array 1.0180 us/op 961.00 ns/op 1.06
bytes32 Buffer.toString(hex) + 0x 760.00 ns/op 719.00 ns/op 1.06
Object access 1 prop 0.40500 ns/op 0.39200 ns/op 1.03
Map access 1 prop 0.34700 ns/op 0.30000 ns/op 1.16
Object get x1000 21.294 ns/op 17.595 ns/op 1.21
Map get x1000 1.2320 ns/op 1.0090 ns/op 1.22
Object set x1000 128.90 ns/op 126.31 ns/op 1.02
Map set x1000 75.120 ns/op 75.246 ns/op 1.00
Return object 10000 times 0.42420 ns/op 0.36650 ns/op 1.16
Throw Error 10000 times 6.8848 us/op 6.0752 us/op 1.13
fastMsgIdFn sha256 / 200 bytes 4.7600 us/op 4.2240 us/op 1.13
fastMsgIdFn h32 xxhash / 200 bytes 598.00 ns/op 574.00 ns/op 1.04
fastMsgIdFn h64 xxhash / 200 bytes 792.00 ns/op 872.00 ns/op 0.91
fastMsgIdFn sha256 / 1000 bytes 14.753 us/op 13.226 us/op 1.12
fastMsgIdFn h32 xxhash / 1000 bytes 784.00 ns/op 715.00 ns/op 1.10
fastMsgIdFn h64 xxhash / 1000 bytes 909.00 ns/op 861.00 ns/op 1.06
fastMsgIdFn sha256 / 10000 bytes 131.47 us/op 112.34 us/op 1.17
fastMsgIdFn h32 xxhash / 10000 bytes 2.6730 us/op 2.3970 us/op 1.12
fastMsgIdFn h64 xxhash / 10000 bytes 2.0010 us/op 1.7960 us/op 1.11
enrSubnets - fastDeserialize 64 bits 2.8980 us/op 2.7990 us/op 1.04
enrSubnets - ssz BitVector 64 bits 872.00 ns/op 768.00 ns/op 1.14
enrSubnets - fastDeserialize 4 bits 423.00 ns/op 404.00 ns/op 1.05
enrSubnets - ssz BitVector 4 bits 837.00 ns/op 783.00 ns/op 1.07
prioritizePeers score -10:0 att 32-0.1 sync 2-0 105.45 us/op 96.859 us/op 1.09
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 145.83 us/op 138.79 us/op 1.05
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 237.02 us/op 238.70 us/op 0.99
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 498.76 us/op 386.88 us/op 1.29
prioritizePeers score 0:0 att 64-1 sync 4-1 530.97 us/op 459.03 us/op 1.16
RateTracker 1000000 limit, 1 obj count per request 209.08 ns/op 191.81 ns/op 1.09
RateTracker 1000000 limit, 2 obj count per request 155.13 ns/op 146.75 ns/op 1.06
RateTracker 1000000 limit, 4 obj count per request 136.08 ns/op 122.97 ns/op 1.11
RateTracker 1000000 limit, 8 obj count per request 115.18 ns/op 111.84 ns/op 1.03
RateTracker with prune 4.6700 us/op 5.1930 us/op 0.90
array of 16000 items push then shift 3.6895 us/op 3.1973 us/op 1.15
LinkedList of 16000 items push then shift 18.936 ns/op 17.722 ns/op 1.07
array of 16000 items push then pop 252.62 ns/op 236.51 ns/op 1.07
LinkedList of 16000 items push then pop 19.216 ns/op 16.249 ns/op 1.18
array of 24000 items push then shift 5.1979 us/op 4.5641 us/op 1.14
LinkedList of 24000 items push then shift 21.582 ns/op 20.979 ns/op 1.03
array of 24000 items push then pop 230.09 ns/op 213.93 ns/op 1.08
LinkedList of 24000 items push then pop 19.932 ns/op 17.734 ns/op 1.12
intersect bitArray bitLen 8 14.122 ns/op 11.721 ns/op 1.20
intersect array and set length 8 180.41 ns/op 177.64 ns/op 1.02
intersect bitArray bitLen 128 83.023 ns/op 61.933 ns/op 1.34
intersect array and set length 128 2.4312 us/op 2.3211 us/op 1.05
Buffer.concat 32 items 2.5360 ns/op 1.9020 ns/op 1.33
pass gossip attestations to forkchoice per slot 4.7651 ms/op 4.1237 ms/op 1.16
computeDeltas 7.2317 ms/op 5.5028 ms/op 1.31
computeProposerBoostScoreFromBalances 1.0406 ms/op 921.61 us/op 1.13
altair processAttestation - 250000 vs - 7PWei normalcase 3.9932 ms/op 4.1480 ms/op 0.96
altair processAttestation - 250000 vs - 7PWei worstcase 5.9802 ms/op 6.3325 ms/op 0.94
altair processAttestation - setStatus - 1/6 committees join 245.42 us/op 208.04 us/op 1.18
altair processAttestation - setStatus - 1/3 committees join 478.43 us/op 409.69 us/op 1.17
altair processAttestation - setStatus - 1/2 committees join 672.55 us/op 560.22 us/op 1.20
altair processAttestation - setStatus - 2/3 committees join 874.39 us/op 722.47 us/op 1.21
altair processAttestation - setStatus - 4/5 committees join 1.1770 ms/op 993.73 us/op 1.18
altair processAttestation - setStatus - 100% committees join 1.4081 ms/op 1.1740 ms/op 1.20
altair processBlock - 250000 vs - 7PWei normalcase 28.560 ms/op 32.186 ms/op 0.89
altair processBlock - 250000 vs - 7PWei normalcase hashState 40.834 ms/op 37.455 ms/op 1.09
altair processBlock - 250000 vs - 7PWei worstcase 102.71 ms/op 82.138 ms/op 1.25
altair processBlock - 250000 vs - 7PWei worstcase hashState 106.87 ms/op 108.71 ms/op 0.98
phase0 processBlock - 250000 vs - 7PWei normalcase 3.6735 ms/op 3.7360 ms/op 0.98
phase0 processBlock - 250000 vs - 7PWei worstcase 50.906 ms/op 46.985 ms/op 1.08
altair processEth1Data - 250000 vs - 7PWei normalcase 888.13 us/op 897.09 us/op 0.99
Tree 40 250000 create 845.47 ms/op 967.96 ms/op 0.87
Tree 40 250000 get(125000) 326.29 ns/op 296.38 ns/op 1.10
Tree 40 250000 set(125000) 2.6413 us/op 3.3972 us/op 0.78
Tree 40 250000 toArray() 36.527 ms/op 33.741 ms/op 1.08
Tree 40 250000 iterate all - toArray() + loop 37.128 ms/op 33.772 ms/op 1.10
Tree 40 250000 iterate all - get(i) 129.14 ms/op 115.30 ms/op 1.12
MutableVector 250000 create 17.319 ms/op 18.521 ms/op 0.94
MutableVector 250000 get(125000) 17.614 ns/op 14.745 ns/op 1.19
MutableVector 250000 set(125000) 686.24 ns/op 678.63 ns/op 1.01
MutableVector 250000 toArray() 8.4447 ms/op 7.6320 ms/op 1.11
MutableVector 250000 iterate all - toArray() + loop 8.8043 ms/op 7.9620 ms/op 1.11
MutableVector 250000 iterate all - get(i) 4.1024 ms/op 3.2800 ms/op 1.25
Array 250000 create 7.4257 ms/op 7.2757 ms/op 1.02
Array 250000 clone - spread 4.0792 ms/op 4.0943 ms/op 1.00
Array 250000 get(125000) 1.7390 ns/op 1.6490 ns/op 1.05
Array 250000 set(125000) 1.7240 ns/op 1.6490 ns/op 1.05
Array 250000 iterate all - loop 198.67 us/op 167.90 us/op 1.18
effectiveBalanceIncrements clone Uint8Array 300000 87.710 us/op 103.76 us/op 0.85
effectiveBalanceIncrements clone MutableVector 300000 1.2750 us/op 1.2560 us/op 1.02
effectiveBalanceIncrements rw all Uint8Array 300000 294.82 us/op 252.90 us/op 1.17
effectiveBalanceIncrements rw all MutableVector 300000 224.93 ms/op 242.90 ms/op 0.93
phase0 afterProcessEpoch - 250000 vs - 7PWei 219.88 ms/op 184.67 ms/op 1.19
phase0 beforeProcessEpoch - 250000 vs - 7PWei 73.886 ms/op 101.18 ms/op 0.73
altair processEpoch - mainnet_e81889 651.02 ms/op 583.00 ms/op 1.12
mainnet_e81889 - altair beforeProcessEpoch 162.39 ms/op 165.58 ms/op 0.98
mainnet_e81889 - altair processJustificationAndFinalization 35.372 us/op 22.898 us/op 1.54
mainnet_e81889 - altair processInactivityUpdates 12.034 ms/op 10.956 ms/op 1.10
mainnet_e81889 - altair processRewardsAndPenalties 98.901 ms/op 91.899 ms/op 1.08
mainnet_e81889 - altair processRegistryUpdates 9.5950 us/op 3.2960 us/op 2.91
mainnet_e81889 - altair processSlashings 2.5310 us/op 704.00 ns/op 3.60
mainnet_e81889 - altair processEth1DataReset 2.2030 us/op 763.00 ns/op 2.89
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.9107 ms/op 2.4549 ms/op 1.19
mainnet_e81889 - altair processSlashingsReset 18.574 us/op 6.1580 us/op 3.02
mainnet_e81889 - altair processRandaoMixesReset 19.038 us/op 6.6380 us/op 2.87
mainnet_e81889 - altair processHistoricalRootsUpdate 2.4500 us/op 784.00 ns/op 3.13
mainnet_e81889 - altair processParticipationFlagUpdates 10.477 us/op 2.6660 us/op 3.93
mainnet_e81889 - altair processSyncCommitteeUpdates 1.9800 us/op 730.00 ns/op 2.71
mainnet_e81889 - altair afterProcessEpoch 224.62 ms/op 192.80 ms/op 1.17
phase0 processEpoch - mainnet_e58758 599.20 ms/op 526.25 ms/op 1.14
mainnet_e58758 - phase0 beforeProcessEpoch 270.89 ms/op 234.06 ms/op 1.16
mainnet_e58758 - phase0 processJustificationAndFinalization 43.955 us/op 18.647 us/op 2.36
mainnet_e58758 - phase0 processRewardsAndPenalties 86.119 ms/op 128.18 ms/op 0.67
mainnet_e58758 - phase0 processRegistryUpdates 25.716 us/op 9.8500 us/op 2.61
mainnet_e58758 - phase0 processSlashings 2.3570 us/op 710.00 ns/op 3.32
mainnet_e58758 - phase0 processEth1DataReset 2.2670 us/op 655.00 ns/op 3.46
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.3291 ms/op 2.9852 ms/op 0.78
mainnet_e58758 - phase0 processSlashingsReset 10.204 us/op 4.9690 us/op 2.05
mainnet_e58758 - phase0 processRandaoMixesReset 16.386 us/op 6.0430 us/op 2.71
mainnet_e58758 - phase0 processHistoricalRootsUpdate 2.4490 us/op 840.00 ns/op 2.92
mainnet_e58758 - phase0 processParticipationRecordUpdates 15.726 us/op 4.4620 us/op 3.52
mainnet_e58758 - phase0 afterProcessEpoch 183.04 ms/op 157.40 ms/op 1.16
phase0 processEffectiveBalanceUpdates - 250000 normalcase 3.1426 ms/op 2.5687 ms/op 1.22
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 4.3858 ms/op 3.5286 ms/op 1.24
altair processInactivityUpdates - 250000 normalcase 46.755 ms/op 43.172 ms/op 1.08
altair processInactivityUpdates - 250000 worstcase 46.581 ms/op 43.395 ms/op 1.07
phase0 processRegistryUpdates - 250000 normalcase 19.519 us/op 8.3140 us/op 2.35
phase0 processRegistryUpdates - 250000 badcase_full_deposits 653.71 us/op 421.12 us/op 1.55
phase0 processRegistryUpdates - 250000 worstcase 0.5 250.08 ms/op 218.59 ms/op 1.14
altair processRewardsAndPenalties - 250000 normalcase 92.544 ms/op 90.310 ms/op 1.02
altair processRewardsAndPenalties - 250000 worstcase 94.052 ms/op 82.376 ms/op 1.14
phase0 getAttestationDeltas - 250000 normalcase 14.529 ms/op 14.841 ms/op 0.98
phase0 getAttestationDeltas - 250000 worstcase 14.582 ms/op 14.801 ms/op 0.99
phase0 processSlashings - 250000 worstcase 6.4113 ms/op 5.5528 ms/op 1.15
altair processSyncCommitteeUpdates - 250000 304.19 ms/op 286.33 ms/op 1.06
BeaconState.hashTreeRoot - No change 561.00 ns/op 488.00 ns/op 1.15
BeaconState.hashTreeRoot - 1 full validator 69.957 us/op 64.826 us/op 1.08
BeaconState.hashTreeRoot - 32 full validator 632.25 us/op 545.18 us/op 1.16
BeaconState.hashTreeRoot - 512 full validator 6.6192 ms/op 7.6100 ms/op 0.87
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 88.290 us/op 78.167 us/op 1.13
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.2747 ms/op 1.1692 ms/op 1.09
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 30.548 ms/op 15.945 ms/op 1.92
BeaconState.hashTreeRoot - 1 balances 66.395 us/op 59.399 us/op 1.12
BeaconState.hashTreeRoot - 32 balances 637.30 us/op 604.01 us/op 1.06
BeaconState.hashTreeRoot - 512 balances 6.2634 ms/op 5.9761 ms/op 1.05
BeaconState.hashTreeRoot - 250000 balances 100.23 ms/op 93.446 ms/op 1.07
aggregationBits - 2048 els - zipIndexesInBitList 32.777 us/op 33.199 us/op 0.99
regular array get 100000 times 77.589 us/op 67.435 us/op 1.15
wrappedArray get 100000 times 76.928 us/op 67.467 us/op 1.14
arrayWithProxy get 100000 times 34.373 ms/op 29.011 ms/op 1.18
ssz.Root.equals 504.00 ns/op 513.00 ns/op 0.98
byteArrayEquals 515.00 ns/op 499.00 ns/op 1.03
shuffle list - 16384 els 12.487 ms/op 11.029 ms/op 1.13
shuffle list - 250000 els 184.60 ms/op 162.59 ms/op 1.14
processSlot - 1 slots 13.045 us/op 12.523 us/op 1.04
processSlot - 32 slots 1.9355 ms/op 1.7988 ms/op 1.08
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 435.15 us/op 404.11 us/op 1.08
getCommitteeAssignments - req 1 vs - 250000 vc 5.9983 ms/op 5.3536 ms/op 1.12
getCommitteeAssignments - req 100 vs - 250000 vc 8.2033 ms/op 7.3313 ms/op 1.12
getCommitteeAssignments - req 1000 vs - 250000 vc 8.7086 ms/op 7.7999 ms/op 1.12
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 11.380 ns/op 9.9800 ns/op 1.14
state getBlockRootAtSlot - 250000 vs - 7PWei 1.1985 us/op 1.2718 us/op 0.94
computeProposers - vc 250000 18.049 ms/op 17.018 ms/op 1.06
computeEpochShuffling - vc 250000 191.99 ms/op 166.02 ms/op 1.16
getNextSyncCommittee - vc 250000 298.55 ms/op 281.41 ms/op 1.06

by benchmarkbot/action

@g11tech g11tech merged commit 8b75932 into unstable Oct 19, 2022
@g11tech g11tech deleted the dapplion/update-lodestar-agent-detection branch October 19, 2022 08:33
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.

None yet

2 participants