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

Add validator client dashboard #3954

Merged
merged 2 commits into from
Apr 26, 2022
Merged

Conversation

dapplion
Copy link
Contributor

Motivation

Add a new separate dashboard with an initial curation of charts

Description

Screenshot from 2022-04-26 19-04-22
Screenshot from 2022-04-26 19-04-32
Screenshot from 2022-04-26 19-04-44

@dapplion dapplion requested a review from a team as a code owner April 26, 2022 17:09
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.

looks awesome! ❤️ 🚀

@codecov
Copy link

codecov bot commented Apr 26, 2022

Codecov Report

Merging #3954 (22ccb0c) into master (c754818) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #3954   +/-   ##
=======================================
  Coverage   36.26%   36.26%           
=======================================
  Files         324      324           
  Lines        9099     9099           
  Branches     1465     1465           
=======================================
  Hits         3300     3300           
  Misses       5626     5626           
  Partials      173      173           

@github-actions
Copy link
Contributor

github-actions bot commented Apr 26, 2022

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 4cd067d Previous: c754818 Ratio
BeaconState.hashTreeRoot - No change 530.00 ns/op 426.00 ns/op 1.24
BeaconState.hashTreeRoot - 1 full validator 79.022 us/op 56.264 us/op 1.40
BeaconState.hashTreeRoot - 32 full validator 795.73 us/op 541.13 us/op 1.47
BeaconState.hashTreeRoot - 512 full validator 8.7661 ms/op 6.0793 ms/op 1.44
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 99.600 us/op 69.606 us/op 1.43
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.3519 ms/op 956.19 us/op 1.41
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 18.434 ms/op 12.384 ms/op 1.49
BeaconState.hashTreeRoot - 1 balances 74.645 us/op 46.709 us/op 1.60
BeaconState.hashTreeRoot - 32 balances 669.98 us/op 408.99 us/op 1.64
BeaconState.hashTreeRoot - 512 balances 6.5019 ms/op 4.0810 ms/op 1.59
BeaconState.hashTreeRoot - 250000 balances 132.34 ms/op 93.550 ms/op 1.41
processSlot - 1 slots 14.320 us/op 8.5680 us/op 1.67
processSlot - 32 slots 2.2523 ms/op 1.4167 ms/op 1.59
getCommitteeAssignments - req 1 vs - 250000 vc 5.9399 ms/op 4.6619 ms/op 1.27
getCommitteeAssignments - req 100 vs - 250000 vc 8.8390 ms/op 6.4662 ms/op 1.37
getCommitteeAssignments - req 1000 vs - 250000 vc 8.9261 ms/op 6.9347 ms/op 1.29
computeProposers - vc 250000 21.289 ms/op 14.993 ms/op 1.42
computeEpochShuffling - vc 250000 170.10 ms/op 141.35 ms/op 1.20
getNextSyncCommittee - vc 250000 353.09 ms/op 248.33 ms/op 1.42
altair processAttestation - 250000 vs - 7PWei normalcase 5.4830 ms/op 3.6153 ms/op 1.52
altair processAttestation - 250000 vs - 7PWei worstcase 7.3375 ms/op 5.4589 ms/op 1.34
altair processAttestation - setStatus - 1/6 committees join 239.11 us/op 190.50 us/op 1.26
altair processAttestation - setStatus - 1/3 committees join 435.62 us/op 329.19 us/op 1.32
altair processAttestation - setStatus - 1/2 committees join 604.14 us/op 513.95 us/op 1.18
altair processAttestation - setStatus - 2/3 committees join 771.25 us/op 589.48 us/op 1.31
altair processAttestation - setStatus - 4/5 committees join 1.1519 ms/op 825.15 us/op 1.40
altair processAttestation - setStatus - 100% committees join 1.3203 ms/op 962.80 us/op 1.37
altair processBlock - 250000 vs - 7PWei normalcase 28.678 ms/op 25.297 ms/op 1.13
altair processBlock - 250000 vs - 7PWei normalcase hashState 42.440 ms/op 33.674 ms/op 1.26
altair processBlock - 250000 vs - 7PWei worstcase 102.98 ms/op 68.419 ms/op 1.51
altair processBlock - 250000 vs - 7PWei worstcase hashState 128.98 ms/op 102.95 ms/op 1.25
altair processEth1Data - 250000 vs - 7PWei normalcase 885.06 us/op 756.06 us/op 1.17
altair processEpoch - mainnet_e81889 635.18 ms/op 530.20 ms/op 1.20
mainnet_e81889 - altair beforeProcessEpoch 172.25 ms/op 141.46 ms/op 1.22
mainnet_e81889 - altair processJustificationAndFinalization 77.210 us/op 28.535 us/op 2.71
mainnet_e81889 - altair processInactivityUpdates 12.854 ms/op 12.395 ms/op 1.04
mainnet_e81889 - altair processRewardsAndPenalties 146.46 ms/op 81.833 ms/op 1.79
mainnet_e81889 - altair processRegistryUpdates 16.179 us/op 5.3030 us/op 3.05
mainnet_e81889 - altair processSlashings 7.9030 us/op 1.8060 us/op 4.38
mainnet_e81889 - altair processEth1DataReset 5.7620 us/op 2.0800 us/op 2.77
mainnet_e81889 - altair processEffectiveBalanceUpdates 9.3399 ms/op 6.0741 ms/op 1.54
mainnet_e81889 - altair processSlashingsReset 20.296 us/op 7.7290 us/op 2.63
mainnet_e81889 - altair processRandaoMixesReset 25.125 us/op 8.9730 us/op 2.80
mainnet_e81889 - altair processHistoricalRootsUpdate 13.146 us/op 2.2130 us/op 5.94
mainnet_e81889 - altair processParticipationFlagUpdates 14.189 us/op 4.4220 us/op 3.21
mainnet_e81889 - altair processSyncCommitteeUpdates 5.0340 us/op 3.7190 us/op 1.35
mainnet_e81889 - altair afterProcessEpoch 212.52 ms/op 196.45 ms/op 1.08
altair processInactivityUpdates - 250000 normalcase 41.043 ms/op 34.590 ms/op 1.19
altair processInactivityUpdates - 250000 worstcase 38.638 ms/op 26.212 ms/op 1.47
altair processRewardsAndPenalties - 250000 normalcase 135.87 ms/op 114.81 ms/op 1.18
altair processRewardsAndPenalties - 250000 worstcase 86.442 ms/op 105.40 ms/op 0.82
altair processSyncCommitteeUpdates - 250000 349.78 ms/op 263.75 ms/op 1.33
Tree 40 250000 create 952.66 ms/op 671.47 ms/op 1.42
Tree 40 250000 get(125000) 327.42 ns/op 254.05 ns/op 1.29
Tree 40 250000 set(125000) 3.4286 us/op 2.2402 us/op 1.53
Tree 40 250000 toArray() 37.601 ms/op 30.613 ms/op 1.23
Tree 40 250000 iterate all - toArray() + loop 38.793 ms/op 30.677 ms/op 1.26
Tree 40 250000 iterate all - get(i) 132.25 ms/op 101.08 ms/op 1.31
MutableVector 250000 create 16.908 ms/op 15.355 ms/op 1.10
MutableVector 250000 get(125000) 14.889 ns/op 11.562 ns/op 1.29
MutableVector 250000 set(125000) 913.37 ns/op 641.02 ns/op 1.42
MutableVector 250000 toArray() 7.4717 ms/op 6.4338 ms/op 1.16
MutableVector 250000 iterate all - toArray() + loop 7.4856 ms/op 6.6758 ms/op 1.12
MutableVector 250000 iterate all - get(i) 3.6355 ms/op 3.0339 ms/op 1.20
Array 250000 create 7.0495 ms/op 6.3256 ms/op 1.11
Array 250000 clone - spread 4.5373 ms/op 2.6076 ms/op 1.74
Array 250000 get(125000) 1.9390 ns/op 1.1440 ns/op 1.69
Array 250000 set(125000) 2.0860 ns/op 1.1620 ns/op 1.80
Array 250000 iterate all - loop 148.61 us/op 150.38 us/op 0.99
effectiveBalanceIncrements clone Uint8Array 300000 355.60 us/op 85.029 us/op 4.18
effectiveBalanceIncrements clone MutableVector 300000 1.1120 us/op 510.00 ns/op 2.18
effectiveBalanceIncrements rw all Uint8Array 300000 211.77 us/op 266.25 us/op 0.80
effectiveBalanceIncrements rw all MutableVector 300000 242.10 ms/op 160.73 ms/op 1.51
aggregationBits - 2048 els - zipIndexesInBitList 31.733 us/op 26.350 us/op 1.20
regular array get 100000 times 59.695 us/op 59.480 us/op 1.00
wrappedArray get 100000 times 58.750 us/op 59.482 us/op 0.99
arrayWithProxy get 100000 times 41.659 ms/op 33.157 ms/op 1.26
ssz.Root.equals 538.00 ns/op 393.00 ns/op 1.37
byteArrayEquals 529.00 ns/op 382.00 ns/op 1.38
phase0 processBlock - 250000 vs - 7PWei normalcase 4.2887 ms/op 3.5434 ms/op 1.21
phase0 processBlock - 250000 vs - 7PWei worstcase 67.021 ms/op 41.033 ms/op 1.63
phase0 afterProcessEpoch - 250000 vs - 7PWei 186.13 ms/op 157.84 ms/op 1.18
phase0 beforeProcessEpoch - 250000 vs - 7PWei 83.051 ms/op 74.871 ms/op 1.11
phase0 processEpoch - mainnet_e58758 617.98 ms/op 481.96 ms/op 1.28
mainnet_e58758 - phase0 beforeProcessEpoch 288.16 ms/op 227.83 ms/op 1.26
mainnet_e58758 - phase0 processJustificationAndFinalization 63.372 us/op 27.934 us/op 2.27
mainnet_e58758 - phase0 processRewardsAndPenalties 146.23 ms/op 128.66 ms/op 1.14
mainnet_e58758 - phase0 processRegistryUpdates 31.862 us/op 12.021 us/op 2.65
mainnet_e58758 - phase0 processSlashings 5.9060 us/op 2.0100 us/op 2.94
mainnet_e58758 - phase0 processEth1DataReset 5.6140 us/op 1.5170 us/op 3.70
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 6.9223 ms/op 5.8784 ms/op 1.18
mainnet_e58758 - phase0 processSlashingsReset 19.288 us/op 6.8110 us/op 2.83
mainnet_e58758 - phase0 processRandaoMixesReset 24.496 us/op 7.8370 us/op 3.13
mainnet_e58758 - phase0 processHistoricalRootsUpdate 6.7670 us/op 2.1170 us/op 3.20
mainnet_e58758 - phase0 processParticipationRecordUpdates 20.632 us/op 6.7190 us/op 3.07
mainnet_e58758 - phase0 afterProcessEpoch 163.42 ms/op 142.11 ms/op 1.15
phase0 processEffectiveBalanceUpdates - 250000 normalcase 7.4083 ms/op 5.8760 ms/op 1.26
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 7.6353 ms/op 6.2155 ms/op 1.23
phase0 processRegistryUpdates - 250000 normalcase 27.799 us/op 8.2500 us/op 3.37
phase0 processRegistryUpdates - 250000 badcase_full_deposits 507.82 us/op 372.02 us/op 1.37
phase0 processRegistryUpdates - 250000 worstcase 0.5 263.87 ms/op 207.69 ms/op 1.27
phase0 getAttestationDeltas - 250000 normalcase 19.148 ms/op 16.042 ms/op 1.19
phase0 getAttestationDeltas - 250000 worstcase 18.340 ms/op 16.588 ms/op 1.11
phase0 processSlashings - 250000 worstcase 8.8203 ms/op 5.8520 ms/op 1.51
shuffle list - 16384 els 11.551 ms/op 9.3947 ms/op 1.23
shuffle list - 250000 els 167.45 ms/op 136.27 ms/op 1.23
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 606.24 us/op 323.82 us/op 1.87
pass gossip attestations to forkchoice per slot 4.5003 ms/op 3.5855 ms/op 1.26
computeDeltas 4.0394 ms/op 4.0784 ms/op 0.99
computeProposerBoostScoreFromBalances 498.99 us/op 443.57 us/op 1.12
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.6402 ms/op 2.2945 ms/op 1.15
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 90.332 us/op 72.186 us/op 1.25
BLS verify - blst-native 2.9289 ms/op 1.6388 ms/op 1.79
BLS verifyMultipleSignatures 3 - blst-native 5.7465 ms/op 3.3602 ms/op 1.71
BLS verifyMultipleSignatures 8 - blst-native 12.213 ms/op 7.2293 ms/op 1.69
BLS verifyMultipleSignatures 32 - blst-native 43.942 ms/op 26.189 ms/op 1.68
BLS aggregatePubkeys 32 - blst-native 60.236 us/op 34.575 us/op 1.74
BLS aggregatePubkeys 128 - blst-native 235.16 us/op 134.99 us/op 1.74
getAttestationsForBlock 68.555 ms/op 58.818 ms/op 1.17
CheckpointStateCache - add get delete 13.818 us/op 9.9550 us/op 1.39
validate gossip signedAggregateAndProof - struct 6.3826 ms/op 3.7791 ms/op 1.69
validate gossip attestation - struct 3.0084 ms/op 1.7786 ms/op 1.69
pickEth1Vote - no votes 2.6488 ms/op 1.9835 ms/op 1.34
pickEth1Vote - max votes 23.323 ms/op 18.932 ms/op 1.23
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.789 ms/op 10.114 ms/op 1.46
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 26.107 ms/op 19.540 ms/op 1.34
pickEth1Vote - Eth1Data fastSerialize value x2048 2.0762 ms/op 1.5159 ms/op 1.37
pickEth1Vote - Eth1Data fastSerialize tree x2048 15.788 ms/op 12.946 ms/op 1.22
bytes32 toHexString 1.2790 us/op 909.00 ns/op 1.41
bytes32 Buffer.toString(hex) 818.00 ns/op 642.00 ns/op 1.27
bytes32 Buffer.toString(hex) from Uint8Array 1.1160 us/op 855.00 ns/op 1.31
bytes32 Buffer.toString(hex) + 0x 867.00 ns/op 659.00 ns/op 1.32
Object access 1 prop 0.43500 ns/op 0.31400 ns/op 1.39
Map access 1 prop 0.36500 ns/op 0.26000 ns/op 1.40
Object get x1000 17.622 ns/op 16.017 ns/op 1.10
Map get x1000 0.98200 ns/op 0.87100 ns/op 1.13
Object set x1000 112.99 ns/op 103.86 ns/op 1.09
Map set x1000 78.835 ns/op 63.336 ns/op 1.24
Return object 10000 times 0.43410 ns/op 0.32940 ns/op 1.32
Throw Error 10000 times 7.1367 us/op 5.1909 us/op 1.37
enrSubnets - fastDeserialize 64 bits 1.1320 us/op 893.00 ns/op 1.27
enrSubnets - ssz BitVector 64 bits 937.00 ns/op 698.00 ns/op 1.34
enrSubnets - fastDeserialize 4 bits 510.00 ns/op 380.00 ns/op 1.34
enrSubnets - ssz BitVector 4 bits 906.00 ns/op 695.00 ns/op 1.30
RateTracker 1000000 limit, 1 obj count per request 205.89 ns/op 166.83 ns/op 1.23
RateTracker 1000000 limit, 2 obj count per request 152.84 ns/op 126.46 ns/op 1.21
RateTracker 1000000 limit, 4 obj count per request 128.39 ns/op 106.22 ns/op 1.21
RateTracker 1000000 limit, 8 obj count per request 112.01 ns/op 92.675 ns/op 1.21
RateTracker with prune 5.0180 us/op 3.6640 us/op 1.37
array of 16000 items push then shift 5.5089 us/op 2.7340 us/op 2.01
LinkedList of 16000 items push then shift 19.522 ns/op 16.556 ns/op 1.18
array of 16000 items push then pop 227.83 ns/op 199.83 ns/op 1.14
LinkedList of 16000 items push then pop 19.151 ns/op 15.676 ns/op 1.22
array of 24000 items push then shift 7.8955 us/op 4.1448 us/op 1.90
LinkedList of 24000 items push then shift 19.042 ns/op 21.027 ns/op 0.91
array of 24000 items push then pop 253.97 ns/op 183.55 ns/op 1.38
LinkedList of 24000 items push then pop 18.886 ns/op 18.420 ns/op 1.03

by benchmarkbot/action

Copy link
Member

@wemeetagain wemeetagain left a comment

Choose a reason for hiding this comment

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

🚀 looks amazing

@wemeetagain wemeetagain merged commit 3a38e65 into master Apr 26, 2022
@wemeetagain wemeetagain deleted the dapplion/dashboard-validator branch April 26, 2022 19:51
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