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: add new panels to validator client dashboard #6415

Merged
merged 7 commits into from Feb 10, 2024

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Feb 9, 2024

Motivation

Description

  • Adds baseUrl label to http client metrics
  • New panels in validator client dashboard

Connected beacon nodes

A list of beacon nodes the validator client is connected to, with their last known health status. For fallback nodes, this status might be inaccurate as it is only updated if primary node is unhealthy.

The health of nodes is determined by their URL score, 10 is considered healthy, and 0 unhealthy. Any other value (1-9) is considered degraded performance / status.

image

image

image

Requests to fallback nodes (rate / min)

image

REST API request errors (rate / min)

image

Closes #5061
Partially closes #5663

@nflaig nflaig requested a review from a team as a code owner February 9, 2024 16:45
Copy link
Contributor

github-actions bot commented Feb 9, 2024

Performance Report

✔️ no performance regression detected

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: c26ea4d Previous: b1848ec Ratio
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 3.7220 us/op 13.164 us/op 0.28
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 5.8490 us/op 23.699 us/op 0.25
Full benchmark results
Benchmark suite Current: c26ea4d Previous: b1848ec Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 585.15 us/op 541.95 us/op 1.08
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 52.954 us/op 85.032 us/op 0.62
BLS verify - blst-native 1.1068 ms/op 1.3226 ms/op 0.84
BLS verifyMultipleSignatures 3 - blst-native 2.3431 ms/op 2.7794 ms/op 0.84
BLS verifyMultipleSignatures 8 - blst-native 5.1529 ms/op 6.1048 ms/op 0.84
BLS verifyMultipleSignatures 32 - blst-native 18.767 ms/op 22.327 ms/op 0.84
BLS verifyMultipleSignatures 64 - blst-native 37.451 ms/op 43.933 ms/op 0.85
BLS verifyMultipleSignatures 128 - blst-native 74.393 ms/op 87.039 ms/op 0.85
BLS deserializing 10000 signatures 797.23 ms/op 943.42 ms/op 0.85
BLS deserializing 100000 signatures 8.0775 s/op 9.4191 s/op 0.86
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.0659 ms/op 1.3614 ms/op 0.78
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.2405 ms/op 1.6675 ms/op 0.74
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.3220 ms/op 2.9292 ms/op 0.79
BLS verifyMultipleSignatures - same message - 64 - blst-native 2.9708 ms/op 4.7534 ms/op 0.62
BLS verifyMultipleSignatures - same message - 128 - blst-native 4.9131 ms/op 5.7169 ms/op 0.86
BLS aggregatePubkeys 32 - blst-native 22.468 us/op 26.249 us/op 0.86
BLS aggregatePubkeys 128 - blst-native 88.294 us/op 102.72 us/op 0.86
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 44.796 ms/op 52.745 ms/op 0.85
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 42.586 ms/op 53.536 ms/op 0.80
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 23.549 ms/op 34.065 ms/op 0.69
getSlashingsAndExits - default max 165.50 us/op 180.79 us/op 0.92
getSlashingsAndExits - 2k 418.04 us/op 490.28 us/op 0.85
proposeBlockBody type=full, size=empty 4.1268 ms/op 5.7875 ms/op 0.71
isKnown best case - 1 super set check 329.00 ns/op 417.00 ns/op 0.79
isKnown normal case - 2 super set checks 320.00 ns/op 430.00 ns/op 0.74
isKnown worse case - 16 super set checks 313.00 ns/op 513.00 ns/op 0.61
CheckpointStateCache - add get delete 3.9680 us/op 5.9710 us/op 0.66
validate api signedAggregateAndProof - struct 2.3572 ms/op 2.8659 ms/op 0.82
validate gossip signedAggregateAndProof - struct 2.3660 ms/op 2.8661 ms/op 0.83
validate gossip attestation - vc 640000 1.1198 ms/op 1.4958 ms/op 0.75
batch validate gossip attestation - vc 640000 - chunk 32 137.71 us/op 186.52 us/op 0.74
batch validate gossip attestation - vc 640000 - chunk 64 122.13 us/op 155.01 us/op 0.79
batch validate gossip attestation - vc 640000 - chunk 128 111.66 us/op 148.52 us/op 0.75
batch validate gossip attestation - vc 640000 - chunk 256 109.30 us/op 142.48 us/op 0.77
pickEth1Vote - no votes 890.16 us/op 1.4415 ms/op 0.62
pickEth1Vote - max votes 9.7583 ms/op 10.580 ms/op 0.92
pickEth1Vote - Eth1Data hashTreeRoot value x2048 20.182 ms/op 22.275 ms/op 0.91
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 27.893 ms/op 32.121 ms/op 0.87
pickEth1Vote - Eth1Data fastSerialize value x2048 426.87 us/op 752.91 us/op 0.57
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.8570 ms/op 5.6169 ms/op 1.04
bytes32 toHexString 413.00 ns/op 653.00 ns/op 0.63
bytes32 Buffer.toString(hex) 295.00 ns/op 308.00 ns/op 0.96
bytes32 Buffer.toString(hex) from Uint8Array 407.00 ns/op 545.00 ns/op 0.75
bytes32 Buffer.toString(hex) + 0x 296.00 ns/op 321.00 ns/op 0.92
Object access 1 prop 0.18500 ns/op 0.20500 ns/op 0.90
Map access 1 prop 0.18600 ns/op 0.16600 ns/op 1.12
Object get x1000 4.7530 ns/op 7.6630 ns/op 0.62
Map get x1000 0.68800 ns/op 0.90200 ns/op 0.76
Object set x1000 24.751 ns/op 65.228 ns/op 0.38
Map set x1000 16.817 ns/op 45.145 ns/op 0.37
Return object 10000 times 0.21250 ns/op 0.26250 ns/op 0.81
Throw Error 10000 times 2.5691 us/op 4.3443 us/op 0.59
fastMsgIdFn sha256 / 200 bytes 1.8810 us/op 3.6500 us/op 0.52
fastMsgIdFn h32 xxhash / 200 bytes 281.00 ns/op 331.00 ns/op 0.85
fastMsgIdFn h64 xxhash / 200 bytes 331.00 ns/op 428.00 ns/op 0.77
fastMsgIdFn sha256 / 1000 bytes 5.8220 us/op 11.938 us/op 0.49
fastMsgIdFn h32 xxhash / 1000 bytes 396.00 ns/op 508.00 ns/op 0.78
fastMsgIdFn h64 xxhash / 1000 bytes 393.00 ns/op 500.00 ns/op 0.79
fastMsgIdFn sha256 / 10000 bytes 49.698 us/op 106.94 us/op 0.46
fastMsgIdFn h32 xxhash / 10000 bytes 1.7180 us/op 2.1590 us/op 0.80
fastMsgIdFn h64 xxhash / 10000 bytes 1.1800 us/op 1.4490 us/op 0.81
send data - 1000 256B messages 11.291 ms/op 18.921 ms/op 0.60
send data - 1000 512B messages 14.946 ms/op 31.889 ms/op 0.47
send data - 1000 1024B messages 25.574 ms/op 46.783 ms/op 0.55
send data - 1000 1200B messages 28.816 ms/op 43.968 ms/op 0.66
send data - 1000 2048B messages 37.716 ms/op 53.732 ms/op 0.70
send data - 1000 4096B messages 32.310 ms/op 47.287 ms/op 0.68
send data - 1000 16384B messages 92.197 ms/op 125.59 ms/op 0.73
send data - 1000 65536B messages 389.45 ms/op 504.95 ms/op 0.77
enrSubnets - fastDeserialize 64 bits 914.00 ns/op 1.5630 us/op 0.58
enrSubnets - ssz BitVector 64 bits 419.00 ns/op 559.00 ns/op 0.75
enrSubnets - fastDeserialize 4 bits 196.00 ns/op 240.00 ns/op 0.82
enrSubnets - ssz BitVector 4 bits 410.00 ns/op 609.00 ns/op 0.67
prioritizePeers score -10:0 att 32-0.1 sync 2-0 64.703 us/op 135.99 us/op 0.48
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 78.423 us/op 185.04 us/op 0.42
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 106.88 us/op 229.28 us/op 0.47
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 176.10 us/op 516.27 us/op 0.34
prioritizePeers score 0:0 att 64-1 sync 4-1 198.45 us/op 458.44 us/op 0.43
array of 16000 items push then shift 1.2143 us/op 2.0583 us/op 0.59
LinkedList of 16000 items push then shift 6.7120 ns/op 14.273 ns/op 0.47
array of 16000 items push then pop 52.514 ns/op 147.29 ns/op 0.36
LinkedList of 16000 items push then pop 5.6110 ns/op 12.101 ns/op 0.46
array of 24000 items push then shift 1.8764 us/op 3.8012 us/op 0.49
LinkedList of 24000 items push then shift 5.8010 ns/op 13.065 ns/op 0.44
array of 24000 items push then pop 85.548 ns/op 222.01 ns/op 0.39
LinkedList of 24000 items push then pop 5.7630 ns/op 10.530 ns/op 0.55
intersect bitArray bitLen 8 4.8050 ns/op 8.7720 ns/op 0.55
intersect array and set length 8 49.922 ns/op 121.91 ns/op 0.41
intersect bitArray bitLen 128 29.397 ns/op 48.542 ns/op 0.61
intersect array and set length 128 693.05 ns/op 1.2751 us/op 0.54
bitArray.getTrueBitIndexes() bitLen 128 1.0340 us/op 2.0140 us/op 0.51
bitArray.getTrueBitIndexes() bitLen 248 1.8730 us/op 3.4510 us/op 0.54
bitArray.getTrueBitIndexes() bitLen 512 3.4810 us/op 7.3220 us/op 0.48
Buffer.concat 32 items 813.00 ns/op 1.1710 us/op 0.69
Uint8Array.set 32 items 1.2390 us/op 2.9500 us/op 0.42
Set add up to 64 items then delete first 1.7615 us/op 5.2608 us/op 0.33
OrderedSet add up to 64 items then delete first 2.6886 us/op 6.8725 us/op 0.39
Set add up to 64 items then delete last 2.0005 us/op 5.4879 us/op 0.36
OrderedSet add up to 64 items then delete last 2.9762 us/op 7.0699 us/op 0.42
Set add up to 64 items then delete middle 1.9830 us/op 5.4073 us/op 0.37
OrderedSet add up to 64 items then delete middle 4.1986 us/op 8.4216 us/op 0.50
Set add up to 128 items then delete first 3.9293 us/op 11.236 us/op 0.35
OrderedSet add up to 128 items then delete first 6.1885 us/op 14.923 us/op 0.41
Set add up to 128 items then delete last 3.7866 us/op 10.790 us/op 0.35
OrderedSet add up to 128 items then delete last 5.8524 us/op 13.592 us/op 0.43
Set add up to 128 items then delete middle 3.7961 us/op 10.932 us/op 0.35
OrderedSet add up to 128 items then delete middle 10.746 us/op 22.205 us/op 0.48
Set add up to 256 items then delete first 7.7610 us/op 22.535 us/op 0.34
OrderedSet add up to 256 items then delete first 12.311 us/op 30.517 us/op 0.40
Set add up to 256 items then delete last 7.6369 us/op 21.471 us/op 0.36
OrderedSet add up to 256 items then delete last 11.667 us/op 29.009 us/op 0.40
Set add up to 256 items then delete middle 7.4900 us/op 21.400 us/op 0.35
OrderedSet add up to 256 items then delete middle 30.905 us/op 52.384 us/op 0.59
transfer serialized Status (84 B) 1.3030 us/op 1.9720 us/op 0.66
copy serialized Status (84 B) 1.0180 us/op 1.5220 us/op 0.67
transfer serialized SignedVoluntaryExit (112 B) 1.8540 us/op 2.1260 us/op 0.87
copy serialized SignedVoluntaryExit (112 B) 1.4530 us/op 1.6230 us/op 0.90
transfer serialized ProposerSlashing (416 B) 2.7590 us/op 2.4740 us/op 1.12
copy serialized ProposerSlashing (416 B) 2.8070 us/op 2.0490 us/op 1.37
transfer serialized Attestation (485 B) 2.7800 us/op 2.4280 us/op 1.14
copy serialized Attestation (485 B) 2.8060 us/op 2.3750 us/op 1.18
transfer serialized AttesterSlashing (33232 B) 2.7220 us/op 3.3640 us/op 0.81
copy serialized AttesterSlashing (33232 B) 7.1840 us/op 9.5800 us/op 0.75
transfer serialized Small SignedBeaconBlock (128000 B) 3.5310 us/op 3.6360 us/op 0.97
copy serialized Small SignedBeaconBlock (128000 B) 15.131 us/op 22.375 us/op 0.68
transfer serialized Avg SignedBeaconBlock (200000 B) 3.7230 us/op 4.3440 us/op 0.86
copy serialized Avg SignedBeaconBlock (200000 B) 22.042 us/op 33.121 us/op 0.67
transfer serialized BlobsSidecar (524380 B) 3.5140 us/op 4.3320 us/op 0.81
copy serialized BlobsSidecar (524380 B) 71.876 us/op 100.64 us/op 0.71
transfer serialized Big SignedBeaconBlock (1000000 B) 2.9020 us/op 4.9430 us/op 0.59
copy serialized Big SignedBeaconBlock (1000000 B) 190.28 us/op 191.45 us/op 0.99
pass gossip attestations to forkchoice per slot 2.6746 ms/op 4.5465 ms/op 0.59
forkChoice updateHead vc 100000 bc 64 eq 0 450.24 us/op 764.00 us/op 0.59
forkChoice updateHead vc 600000 bc 64 eq 0 2.7516 ms/op 4.4443 ms/op 0.62
forkChoice updateHead vc 1000000 bc 64 eq 0 4.2557 ms/op 7.3053 ms/op 0.58
forkChoice updateHead vc 600000 bc 320 eq 0 2.5728 ms/op 4.4215 ms/op 0.58
forkChoice updateHead vc 600000 bc 1200 eq 0 2.7046 ms/op 4.4237 ms/op 0.61
forkChoice updateHead vc 600000 bc 7200 eq 0 3.3421 ms/op 5.5383 ms/op 0.60
forkChoice updateHead vc 600000 bc 64 eq 1000 9.8095 ms/op 11.559 ms/op 0.85
forkChoice updateHead vc 600000 bc 64 eq 10000 9.6660 ms/op 12.466 ms/op 0.78
forkChoice updateHead vc 600000 bc 64 eq 300000 12.935 ms/op 19.468 ms/op 0.66
computeDeltas 500000 validators 300 proto nodes 3.0744 ms/op 6.8878 ms/op 0.45
computeDeltas 500000 validators 1200 proto nodes 2.8982 ms/op 6.7077 ms/op 0.43
computeDeltas 500000 validators 7200 proto nodes 2.9698 ms/op 6.8454 ms/op 0.43
computeDeltas 750000 validators 300 proto nodes 4.5066 ms/op 10.409 ms/op 0.43
computeDeltas 750000 validators 1200 proto nodes 4.4776 ms/op 10.437 ms/op 0.43
computeDeltas 750000 validators 7200 proto nodes 4.5112 ms/op 10.095 ms/op 0.45
computeDeltas 1400000 validators 300 proto nodes 8.7192 ms/op 19.699 ms/op 0.44
computeDeltas 1400000 validators 1200 proto nodes 8.9144 ms/op 19.832 ms/op 0.45
computeDeltas 1400000 validators 7200 proto nodes 8.7950 ms/op 19.502 ms/op 0.45
computeDeltas 2100000 validators 300 proto nodes 12.997 ms/op 29.491 ms/op 0.44
computeDeltas 2100000 validators 1200 proto nodes 13.386 ms/op 29.492 ms/op 0.45
computeDeltas 2100000 validators 7200 proto nodes 13.212 ms/op 30.215 ms/op 0.44
altair processAttestation - 250000 vs - 7PWei normalcase 1.7301 ms/op 2.3168 ms/op 0.75
altair processAttestation - 250000 vs - 7PWei worstcase 2.3438 ms/op 3.3351 ms/op 0.70
altair processAttestation - setStatus - 1/6 committees join 102.16 us/op 152.16 us/op 0.67
altair processAttestation - setStatus - 1/3 committees join 198.96 us/op 293.54 us/op 0.68
altair processAttestation - setStatus - 1/2 committees join 286.96 us/op 395.07 us/op 0.73
altair processAttestation - setStatus - 2/3 committees join 384.86 us/op 508.69 us/op 0.76
altair processAttestation - setStatus - 4/5 committees join 496.24 us/op 721.10 us/op 0.69
altair processAttestation - setStatus - 100% committees join 600.93 us/op 829.50 us/op 0.72
altair processBlock - 250000 vs - 7PWei normalcase 7.0640 ms/op 10.606 ms/op 0.67
altair processBlock - 250000 vs - 7PWei normalcase hashState 29.666 ms/op 36.353 ms/op 0.82
altair processBlock - 250000 vs - 7PWei worstcase 30.722 ms/op 43.462 ms/op 0.71
altair processBlock - 250000 vs - 7PWei worstcase hashState 88.024 ms/op 95.936 ms/op 0.92
phase0 processBlock - 250000 vs - 7PWei normalcase 2.3203 ms/op 2.6284 ms/op 0.88
phase0 processBlock - 250000 vs - 7PWei worstcase 23.322 ms/op 30.878 ms/op 0.76
altair processEth1Data - 250000 vs - 7PWei normalcase 428.87 us/op 667.10 us/op 0.64
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 3.7220 us/op 13.164 us/op 0.28
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 55.344 us/op 79.606 us/op 0.70
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 15.526 us/op 43.141 us/op 0.36
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 5.8490 us/op 23.699 us/op 0.25
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 143.11 us/op 262.33 us/op 0.55
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.1514 ms/op 1.8348 ms/op 0.63
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.7717 ms/op 2.4664 ms/op 0.72
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.3904 ms/op 2.4369 ms/op 0.57
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.9530 ms/op 4.4120 ms/op 0.67
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.9361 ms/op 3.5815 ms/op 0.54
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.9714 ms/op 8.0062 ms/op 0.50
Tree 40 250000 create 244.70 ms/op 507.73 ms/op 0.48
Tree 40 250000 get(125000) 110.28 ns/op 250.57 ns/op 0.44
Tree 40 250000 set(125000) 751.84 ns/op 1.4079 us/op 0.53
Tree 40 250000 toArray() 17.811 ms/op 25.804 ms/op 0.69
Tree 40 250000 iterate all - toArray() + loop 17.210 ms/op 23.181 ms/op 0.74
Tree 40 250000 iterate all - get(i) 43.752 ms/op 81.800 ms/op 0.53
MutableVector 250000 create 9.5558 ms/op 16.099 ms/op 0.59
MutableVector 250000 get(125000) 5.7710 ns/op 6.7800 ns/op 0.85
MutableVector 250000 set(125000) 213.29 ns/op 297.85 ns/op 0.72
MutableVector 250000 toArray() 3.0720 ms/op 3.8996 ms/op 0.79
MutableVector 250000 iterate all - toArray() + loop 2.5340 ms/op 3.9172 ms/op 0.65
MutableVector 250000 iterate all - get(i) 1.3344 ms/op 1.6922 ms/op 0.79
Array 250000 create 2.1858 ms/op 3.5759 ms/op 0.61
Array 250000 clone - spread 1.2447 ms/op 1.4814 ms/op 0.84
Array 250000 get(125000) 1.0560 ns/op 1.1970 ns/op 0.88
Array 250000 set(125000) 1.2590 ns/op 4.4460 ns/op 0.28
Array 250000 iterate all - loop 148.74 us/op 172.51 us/op 0.86
effectiveBalanceIncrements clone Uint8Array 300000 27.714 us/op 46.497 us/op 0.60
effectiveBalanceIncrements clone MutableVector 300000 424.00 ns/op 422.00 ns/op 1.00
effectiveBalanceIncrements rw all Uint8Array 300000 180.95 us/op 211.97 us/op 0.85
effectiveBalanceIncrements rw all MutableVector 300000 71.973 ms/op 100.93 ms/op 0.71
phase0 afterProcessEpoch - 250000 vs - 7PWei 74.264 ms/op 117.34 ms/op 0.63
phase0 beforeProcessEpoch - 250000 vs - 7PWei 44.486 ms/op 55.708 ms/op 0.80
altair processEpoch - mainnet_e81889 398.00 ms/op 704.99 ms/op 0.56
mainnet_e81889 - altair beforeProcessEpoch 73.812 ms/op 119.62 ms/op 0.62
mainnet_e81889 - altair processJustificationAndFinalization 11.073 us/op 28.345 us/op 0.39
mainnet_e81889 - altair processInactivityUpdates 3.8755 ms/op 12.880 ms/op 0.30
mainnet_e81889 - altair processRewardsAndPenalties 64.035 ms/op 70.615 ms/op 0.91
mainnet_e81889 - altair processRegistryUpdates 1.1570 us/op 3.3340 us/op 0.35
mainnet_e81889 - altair processSlashings 347.00 ns/op 460.00 ns/op 0.75
mainnet_e81889 - altair processEth1DataReset 563.00 ns/op 613.00 ns/op 0.92
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.8568 ms/op 1.4888 ms/op 1.25
mainnet_e81889 - altair processSlashingsReset 2.2670 us/op 5.3490 us/op 0.42
mainnet_e81889 - altair processRandaoMixesReset 4.2280 us/op 12.186 us/op 0.35
mainnet_e81889 - altair processHistoricalRootsUpdate 621.00 ns/op 1.2280 us/op 0.51
mainnet_e81889 - altair processParticipationFlagUpdates 1.5070 us/op 4.8510 us/op 0.31
mainnet_e81889 - altair processSyncCommitteeUpdates 609.00 ns/op 1.5630 us/op 0.39
mainnet_e81889 - altair afterProcessEpoch 78.052 ms/op 126.45 ms/op 0.62
capella processEpoch - mainnet_e217614 1.6756 s/op 2.2858 s/op 0.73
mainnet_e217614 - capella beforeProcessEpoch 441.10 ms/op 503.25 ms/op 0.88
mainnet_e217614 - capella processJustificationAndFinalization 12.411 us/op 32.151 us/op 0.39
mainnet_e217614 - capella processInactivityUpdates 19.851 ms/op 24.408 ms/op 0.81
mainnet_e217614 - capella processRewardsAndPenalties 400.34 ms/op 454.49 ms/op 0.88
mainnet_e217614 - capella processRegistryUpdates 15.356 us/op 36.671 us/op 0.42
mainnet_e217614 - capella processSlashings 548.00 ns/op 1.0610 us/op 0.52
mainnet_e217614 - capella processEth1DataReset 503.00 ns/op 1.0200 us/op 0.49
mainnet_e217614 - capella processEffectiveBalanceUpdates 3.6897 ms/op 6.2844 ms/op 0.59
mainnet_e217614 - capella processSlashingsReset 1.8750 us/op 5.5030 us/op 0.34
mainnet_e217614 - capella processRandaoMixesReset 2.8290 us/op 6.0300 us/op 0.47
mainnet_e217614 - capella processHistoricalRootsUpdate 554.00 ns/op 1.1030 us/op 0.50
mainnet_e217614 - capella processParticipationFlagUpdates 1.6050 us/op 3.2110 us/op 0.50
mainnet_e217614 - capella afterProcessEpoch 202.81 ms/op 358.95 ms/op 0.57
phase0 processEpoch - mainnet_e58758 352.06 ms/op 474.88 ms/op 0.74
mainnet_e58758 - phase0 beforeProcessEpoch 113.10 ms/op 144.17 ms/op 0.78
mainnet_e58758 - phase0 processJustificationAndFinalization 12.361 us/op 19.775 us/op 0.63
mainnet_e58758 - phase0 processRewardsAndPenalties 51.688 ms/op 56.209 ms/op 0.92
mainnet_e58758 - phase0 processRegistryUpdates 6.7900 us/op 16.292 us/op 0.42
mainnet_e58758 - phase0 processSlashings 570.00 ns/op 802.00 ns/op 0.71
mainnet_e58758 - phase0 processEth1DataReset 502.00 ns/op 548.00 ns/op 0.92
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.4187 ms/op 1.2565 ms/op 1.13
mainnet_e58758 - phase0 processSlashingsReset 3.0500 us/op 3.0590 us/op 1.00
mainnet_e58758 - phase0 processRandaoMixesReset 2.4710 us/op 5.8250 us/op 0.42
mainnet_e58758 - phase0 processHistoricalRootsUpdate 475.00 ns/op 727.00 ns/op 0.65
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.2450 us/op 4.2930 us/op 0.76
mainnet_e58758 - phase0 afterProcessEpoch 63.185 ms/op 98.394 ms/op 0.64
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.6782 ms/op 1.4174 ms/op 1.18
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.1407 ms/op 1.6438 ms/op 0.69
altair processInactivityUpdates - 250000 normalcase 23.529 ms/op 27.073 ms/op 0.87
altair processInactivityUpdates - 250000 worstcase 24.157 ms/op 28.683 ms/op 0.84
phase0 processRegistryUpdates - 250000 normalcase 5.6240 us/op 15.149 us/op 0.37
phase0 processRegistryUpdates - 250000 badcase_full_deposits 257.45 us/op 498.36 us/op 0.52
phase0 processRegistryUpdates - 250000 worstcase 0.5 125.23 ms/op 158.74 ms/op 0.79
altair processRewardsAndPenalties - 250000 normalcase 52.949 ms/op 63.141 ms/op 0.84
altair processRewardsAndPenalties - 250000 worstcase 60.113 ms/op 57.665 ms/op 1.04
phase0 getAttestationDeltas - 250000 normalcase 5.8088 ms/op 9.6665 ms/op 0.60
phase0 getAttestationDeltas - 250000 worstcase 5.8333 ms/op 9.2293 ms/op 0.63
phase0 processSlashings - 250000 worstcase 85.875 us/op 106.55 us/op 0.81
altair processSyncCommitteeUpdates - 250000 118.82 ms/op 158.96 ms/op 0.75
BeaconState.hashTreeRoot - No change 410.00 ns/op 383.00 ns/op 1.07
BeaconState.hashTreeRoot - 1 full validator 137.57 us/op 118.97 us/op 1.16
BeaconState.hashTreeRoot - 32 full validator 1.1787 ms/op 1.1771 ms/op 1.00
BeaconState.hashTreeRoot - 512 full validator 15.134 ms/op 12.608 ms/op 1.20
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 134.86 us/op 141.66 us/op 0.95
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.7477 ms/op 2.1331 ms/op 0.82
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 20.737 ms/op 27.679 ms/op 0.75
BeaconState.hashTreeRoot - 1 balances 84.830 us/op 135.25 us/op 0.63
BeaconState.hashTreeRoot - 32 balances 767.95 us/op 1.2521 ms/op 0.61
BeaconState.hashTreeRoot - 512 balances 10.228 ms/op 11.962 ms/op 0.86
BeaconState.hashTreeRoot - 250000 balances 203.46 ms/op 224.59 ms/op 0.91
aggregationBits - 2048 els - zipIndexesInBitList 14.003 us/op 23.304 us/op 0.60
byteArrayEquals 32 61.536 ns/op 78.254 ns/op 0.79
Buffer.compare 32 34.934 ns/op 57.851 ns/op 0.60
byteArrayEquals 1024 1.6466 us/op 2.1132 us/op 0.78
Buffer.compare 1024 43.146 ns/op 74.609 ns/op 0.58
byteArrayEquals 16384 26.638 us/op 33.785 us/op 0.79
Buffer.compare 16384 230.76 ns/op 260.11 ns/op 0.89
byteArrayEquals 123687377 201.25 ms/op 257.07 ms/op 0.78
Buffer.compare 123687377 5.8352 ms/op 8.5651 ms/op 0.68
byteArrayEquals 32 - diff last byte 59.408 ns/op 79.483 ns/op 0.75
Buffer.compare 32 - diff last byte 36.690 ns/op 60.279 ns/op 0.61
byteArrayEquals 1024 - diff last byte 1.6330 us/op 2.2675 us/op 0.72
Buffer.compare 1024 - diff last byte 43.362 ns/op 78.521 ns/op 0.55
byteArrayEquals 16384 - diff last byte 26.656 us/op 34.276 us/op 0.78
Buffer.compare 16384 - diff last byte 229.03 ns/op 284.02 ns/op 0.81
byteArrayEquals 123687377 - diff last byte 205.83 ms/op 256.26 ms/op 0.80
Buffer.compare 123687377 - diff last byte 4.0261 ms/op 8.1069 ms/op 0.50
byteArrayEquals 32 - random bytes 4.6180 ns/op 6.1040 ns/op 0.76
Buffer.compare 32 - random bytes 38.504 ns/op 63.397 ns/op 0.61
byteArrayEquals 1024 - random bytes 4.4460 ns/op 6.2630 ns/op 0.71
Buffer.compare 1024 - random bytes 36.442 ns/op 65.080 ns/op 0.56
byteArrayEquals 16384 - random bytes 4.4500 ns/op 6.5350 ns/op 0.68
Buffer.compare 16384 - random bytes 36.573 ns/op 65.098 ns/op 0.56
byteArrayEquals 123687377 - random bytes 8.0200 ns/op 9.2200 ns/op 0.87
Buffer.compare 123687377 - random bytes 41.050 ns/op 76.820 ns/op 0.53
regular array get 100000 times 40.900 us/op 47.274 us/op 0.87
wrappedArray get 100000 times 40.893 us/op 46.486 us/op 0.88
arrayWithProxy get 100000 times 9.6986 ms/op 14.968 ms/op 0.65
ssz.Root.equals 53.176 ns/op 56.543 ns/op 0.94
byteArrayEquals 53.076 ns/op 55.178 ns/op 0.96
Buffer.compare 9.4170 ns/op 12.390 ns/op 0.76
shuffle list - 16384 els 4.5231 ms/op 7.1854 ms/op 0.63
shuffle list - 250000 els 67.545 ms/op 105.83 ms/op 0.64
processSlot - 1 slots 15.953 us/op 17.890 us/op 0.89
processSlot - 32 slots 2.8620 ms/op 3.0792 ms/op 0.93
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 50.318 ms/op 63.571 ms/op 0.79
getCommitteeAssignments - req 1 vs - 250000 vc 2.2685 ms/op 2.5849 ms/op 0.88
getCommitteeAssignments - req 100 vs - 250000 vc 3.3863 ms/op 3.8397 ms/op 0.88
getCommitteeAssignments - req 1000 vs - 250000 vc 3.6626 ms/op 4.3497 ms/op 0.84
findModifiedValidators - 10000 modified validators 403.34 ms/op 554.05 ms/op 0.73
findModifiedValidators - 1000 modified validators 297.73 ms/op 462.96 ms/op 0.64
findModifiedValidators - 100 modified validators 302.11 ms/op 439.06 ms/op 0.69
findModifiedValidators - 10 modified validators 335.16 ms/op 522.46 ms/op 0.64
findModifiedValidators - 1 modified validators 290.06 ms/op 485.82 ms/op 0.60
findModifiedValidators - no difference 312.50 ms/op 435.29 ms/op 0.72
compare ViewDUs 3.9450 s/op 4.9753 s/op 0.79
compare each validator Uint8Array 1.6481 s/op 1.5808 s/op 1.04
compare ViewDU to Uint8Array 906.38 ms/op 1.3566 s/op 0.67
migrate state 1000000 validators, 24 modified, 0 new 676.31 ms/op 869.04 ms/op 0.78
migrate state 1000000 validators, 1700 modified, 1000 new 938.28 ms/op 1.2549 s/op 0.75
migrate state 1000000 validators, 3400 modified, 2000 new 1.1379 s/op 1.6822 s/op 0.68
migrate state 1500000 validators, 24 modified, 0 new 652.98 ms/op 929.73 ms/op 0.70
migrate state 1500000 validators, 1700 modified, 1000 new 899.80 ms/op 1.2524 s/op 0.72
migrate state 1500000 validators, 3400 modified, 2000 new 1.0142 s/op 1.6436 s/op 0.62
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.4600 ns/op 5.3500 ns/op 0.83
state getBlockRootAtSlot - 250000 vs - 7PWei 395.69 ns/op 801.97 ns/op 0.49
computeProposers - vc 250000 5.8707 ms/op 10.728 ms/op 0.55
computeEpochShuffling - vc 250000 69.162 ms/op 110.86 ms/op 0.62
getNextSyncCommittee - vc 250000 102.44 ms/op 168.15 ms/op 0.61
computeSigningRoot for AttestationData 19.304 us/op 34.528 us/op 0.56
hash AttestationData serialized data then Buffer.toString(base64) 1.2208 us/op 2.5824 us/op 0.47
toHexString serialized data 791.27 ns/op 1.9614 us/op 0.40
Buffer.toString(base64) 155.26 ns/op 271.63 ns/op 0.57

by benchmarkbot/action

@wemeetagain wemeetagain merged commit 5c25185 into unstable Feb 10, 2024
12 of 15 checks passed
@wemeetagain wemeetagain deleted the nflaig/connected-bn-metric branch February 10, 2024 04:16
@nflaig nflaig mentioned this pull request Feb 10, 2024
5 tasks
@wemeetagain
Copy link
Member

🎉 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
2 participants