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

fix: handle uncaught exceptions when getting proposer duties #6073

Merged
merged 1 commit into from
Oct 31, 2023

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Oct 30, 2023

Motivation

pollBeaconProposersNextEpoch might throw an error, e.g. due to node syncing or offline which is currently not handled.

Oct-29 21:49:10.003[]                error: uncaughtException: Error on getProposerDuties - Service Unavailable: Node is syncing - waiting for peers
Error: Error on getProposerDuties - Service Unavailable: Node is syncing - waiting for peers
    at Function.assert (file:///usr/app/packages/api/src/utils/client/httpClient.ts:44:13)
    at BlockDutiesService.pollBeaconProposers (file:///usr/app/packages/validator/src/services/blockDuties.ts:185:14)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at BlockDutiesService.pollBeaconProposersNextEpoch (file:///usr/app/packages/validator/src/services/blockDuties.ts:175:5) Error on getProposerDuties - Service Unavailable: Node is syncing - waiting for peers

Usually, an error like this due to node syncing should only be a one liner (without stacktrace) and logged as warn.

Description

Handle uncaught exceptions when getting proposer duties

@nflaig nflaig requested a review from a team as a code owner October 30, 2023 08:16
@nflaig nflaig force-pushed the nflaig/handle-uncaught-exception branch from f045e45 to ddb703d Compare October 30, 2023 08:41
@codecov
Copy link

codecov bot commented Oct 30, 2023

We're currently processing your upload. This comment will be updated when the results are available.

@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 822d66e Previous: 2b5935a Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 555.98 us/op 796.24 us/op 0.70
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 89.167 us/op 47.995 us/op 1.86
BLS verify - blst-native 1.3575 ms/op 1.0721 ms/op 1.27
BLS verifyMultipleSignatures 3 - blst-native 2.8306 ms/op 2.2878 ms/op 1.24
BLS verifyMultipleSignatures 8 - blst-native 6.2263 ms/op 5.0705 ms/op 1.23
BLS verifyMultipleSignatures 32 - blst-native 22.878 ms/op 18.628 ms/op 1.23
BLS verifyMultipleSignatures 64 - blst-native 44.809 ms/op 36.661 ms/op 1.22
BLS verifyMultipleSignatures 128 - blst-native 89.288 ms/op 73.533 ms/op 1.21
BLS deserializing 10000 signatures 911.46 ms/op 761.13 ms/op 1.20
BLS deserializing 100000 signatures 9.0710 s/op 7.6443 s/op 1.19
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.4340 ms/op 1.1701 ms/op 1.23
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.5349 ms/op 1.2694 ms/op 1.21
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.3275 ms/op 1.9999 ms/op 1.16
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.8017 ms/op 2.9730 ms/op 1.28
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.7017 ms/op 4.9050 ms/op 1.16
BLS aggregatePubkeys 32 - blst-native 26.312 us/op 22.258 us/op 1.18
BLS aggregatePubkeys 128 - blst-native 100.27 us/op 87.332 us/op 1.15
getAttestationsForBlock 38.577 ms/op 27.307 ms/op 1.41
isKnown best case - 1 super set check 343.00 ns/op 299.00 ns/op 1.15
isKnown normal case - 2 super set checks 322.00 ns/op 302.00 ns/op 1.07
isKnown worse case - 16 super set checks 325.00 ns/op 301.00 ns/op 1.08
CheckpointStateCache - add get delete 5.3900 us/op 3.4550 us/op 1.56
validate api signedAggregateAndProof - struct 2.8186 ms/op 2.4074 ms/op 1.17
validate gossip signedAggregateAndProof - struct 2.8771 ms/op 2.3522 ms/op 1.22
validate gossip attestation - vc 640000 1.4155 ms/op 1.1280 ms/op 1.25
batch validate gossip attestation - vc 640000 - chunk 32 171.10 us/op 135.47 us/op 1.26
batch validate gossip attestation - vc 640000 - chunk 64 154.66 us/op 120.70 us/op 1.28
batch validate gossip attestation - vc 640000 - chunk 128 146.33 us/op 109.81 us/op 1.33
batch validate gossip attestation - vc 640000 - chunk 256 140.91 us/op 106.85 us/op 1.32
pickEth1Vote - no votes 1.3909 ms/op 871.51 us/op 1.60
pickEth1Vote - max votes 12.352 ms/op 10.367 ms/op 1.19
pickEth1Vote - Eth1Data hashTreeRoot value x2048 18.194 ms/op 18.709 ms/op 0.97
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 31.713 ms/op 24.615 ms/op 1.29
pickEth1Vote - Eth1Data fastSerialize value x2048 632.72 us/op 366.67 us/op 1.73
pickEth1Vote - Eth1Data fastSerialize tree x2048 6.8075 ms/op 5.1396 ms/op 1.32
bytes32 toHexString 571.00 ns/op 391.00 ns/op 1.46
bytes32 Buffer.toString(hex) 302.00 ns/op 275.00 ns/op 1.10
bytes32 Buffer.toString(hex) from Uint8Array 488.00 ns/op 378.00 ns/op 1.29
bytes32 Buffer.toString(hex) + 0x 293.00 ns/op 277.00 ns/op 1.06
Object access 1 prop 0.19000 ns/op 0.18100 ns/op 1.05
Map access 1 prop 0.15700 ns/op 0.17800 ns/op 0.88
Object get x1000 7.5360 ns/op 4.8040 ns/op 1.57
Map get x1000 0.66900 ns/op 0.48800 ns/op 1.37
Object set x1000 59.674 ns/op 22.926 ns/op 2.60
Map set x1000 46.024 ns/op 16.235 ns/op 2.83
Return object 10000 times 0.26170 ns/op 0.21350 ns/op 1.23
Throw Error 10000 times 4.0860 us/op 2.6166 us/op 1.56
fastMsgIdFn sha256 / 200 bytes 3.4850 us/op 1.8840 us/op 1.85
fastMsgIdFn h32 xxhash / 200 bytes 314.00 ns/op 281.00 ns/op 1.12
fastMsgIdFn h64 xxhash / 200 bytes 383.00 ns/op 331.00 ns/op 1.16
fastMsgIdFn sha256 / 1000 bytes 12.112 us/op 5.8950 us/op 2.05
fastMsgIdFn h32 xxhash / 1000 bytes 453.00 ns/op 391.00 ns/op 1.16
fastMsgIdFn h64 xxhash / 1000 bytes 453.00 ns/op 387.00 ns/op 1.17
fastMsgIdFn sha256 / 10000 bytes 108.73 us/op 51.040 us/op 2.13
fastMsgIdFn h32 xxhash / 10000 bytes 2.0560 us/op 1.7250 us/op 1.19
fastMsgIdFn h64 xxhash / 10000 bytes 1.4330 us/op 1.1830 us/op 1.21
send data - 1000 256B messages 21.414 ms/op 11.017 ms/op 1.94
send data - 1000 512B messages 29.745 ms/op 14.457 ms/op 2.06
send data - 1000 1024B messages 45.432 ms/op 21.755 ms/op 2.09
send data - 1000 1200B messages 28.731 ms/op 20.456 ms/op 1.40
send data - 1000 2048B messages 35.584 ms/op 22.924 ms/op 1.55
send data - 1000 4096B messages 42.989 ms/op 23.586 ms/op 1.82
send data - 1000 16384B messages 97.564 ms/op 56.992 ms/op 1.71
send data - 1000 65536B messages 340.17 ms/op 228.16 ms/op 1.49
enrSubnets - fastDeserialize 64 bits 1.5300 us/op 859.00 ns/op 1.78
enrSubnets - ssz BitVector 64 bits 502.00 ns/op 397.00 ns/op 1.26
enrSubnets - fastDeserialize 4 bits 202.00 ns/op 185.00 ns/op 1.09
enrSubnets - ssz BitVector 4 bits 496.00 ns/op 391.00 ns/op 1.27
prioritizePeers score -10:0 att 32-0.1 sync 2-0 116.99 us/op 62.735 us/op 1.86
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 139.24 us/op 74.079 us/op 1.88
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 187.69 us/op 105.66 us/op 1.78
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 319.67 us/op 177.99 us/op 1.80
prioritizePeers score 0:0 att 64-1 sync 4-1 376.50 us/op 197.47 us/op 1.91
array of 16000 items push then shift 1.7626 us/op 1.1970 us/op 1.47
LinkedList of 16000 items push then shift 9.5870 ns/op 6.5390 ns/op 1.47
array of 16000 items push then pop 105.05 ns/op 59.456 ns/op 1.77
LinkedList of 16000 items push then pop 9.5390 ns/op 5.5730 ns/op 1.71
array of 24000 items push then shift 2.5936 us/op 1.7747 us/op 1.46
LinkedList of 24000 items push then shift 10.166 ns/op 6.2550 ns/op 1.63
array of 24000 items push then pop 149.77 ns/op 77.599 ns/op 1.93
LinkedList of 24000 items push then pop 11.482 ns/op 5.5830 ns/op 2.06
intersect bitArray bitLen 8 8.1260 ns/op 5.2120 ns/op 1.56
intersect array and set length 8 70.764 ns/op 39.104 ns/op 1.81
intersect bitArray bitLen 128 34.910 ns/op 24.742 ns/op 1.41
intersect array and set length 128 903.09 ns/op 548.66 ns/op 1.65
bitArray.getTrueBitIndexes() bitLen 128 1.9390 us/op 1.1640 us/op 1.67
bitArray.getTrueBitIndexes() bitLen 248 3.2730 us/op 1.8790 us/op 1.74
bitArray.getTrueBitIndexes() bitLen 512 5.9870 us/op 3.3860 us/op 1.77
Buffer.concat 32 items 1.0970 us/op 841.00 ns/op 1.30
Uint8Array.set 32 items 2.1600 us/op 1.7780 us/op 1.21
Set add up to 64 items then delete first 4.8171 us/op 1.6944 us/op 2.84
OrderedSet add up to 64 items then delete first 6.5117 us/op 2.5875 us/op 2.52
Set add up to 64 items then delete last 5.2270 us/op 1.9366 us/op 2.70
OrderedSet add up to 64 items then delete last 6.7689 us/op 2.8678 us/op 2.36
Set add up to 64 items then delete middle 5.1972 us/op 1.9352 us/op 2.69
OrderedSet add up to 64 items then delete middle 8.3818 us/op 4.1304 us/op 2.03
Set add up to 128 items then delete first 10.715 us/op 3.8383 us/op 2.79
OrderedSet add up to 128 items then delete first 14.793 us/op 5.9986 us/op 2.47
Set add up to 128 items then delete last 10.542 us/op 3.6751 us/op 2.87
OrderedSet add up to 128 items then delete last 13.556 us/op 5.6744 us/op 2.39
Set add up to 128 items then delete middle 10.252 us/op 3.8124 us/op 2.69
OrderedSet add up to 128 items then delete middle 19.165 us/op 10.538 us/op 1.82
Set add up to 256 items then delete first 21.583 us/op 7.4845 us/op 2.88
OrderedSet add up to 256 items then delete first 28.934 us/op 11.857 us/op 2.44
Set add up to 256 items then delete last 20.446 us/op 7.2076 us/op 2.84
OrderedSet add up to 256 items then delete last 26.825 us/op 10.956 us/op 2.45
Set add up to 256 items then delete middle 20.557 us/op 7.1477 us/op 2.88
OrderedSet add up to 256 items then delete middle 50.597 us/op 29.953 us/op 1.69
transfer serialized Status (84 B) 2.2220 us/op 1.3980 us/op 1.59
copy serialized Status (84 B) 1.7410 us/op 1.2440 us/op 1.40
transfer serialized SignedVoluntaryExit (112 B) 2.1050 us/op 1.4640 us/op 1.44
copy serialized SignedVoluntaryExit (112 B) 1.8680 us/op 1.3250 us/op 1.41
transfer serialized ProposerSlashing (416 B) 2.5290 us/op 2.3130 us/op 1.09
copy serialized ProposerSlashing (416 B) 2.3660 us/op 2.3160 us/op 1.02
transfer serialized Attestation (485 B) 2.3630 us/op 2.4300 us/op 0.97
copy serialized Attestation (485 B) 2.2970 us/op 2.2810 us/op 1.01
transfer serialized AttesterSlashing (33232 B) 2.2830 us/op 2.3780 us/op 0.96
copy serialized AttesterSlashing (33232 B) 7.2060 us/op 5.0060 us/op 1.44
transfer serialized Small SignedBeaconBlock (128000 B) 2.7110 us/op 2.3340 us/op 1.16
copy serialized Small SignedBeaconBlock (128000 B) 19.932 us/op 11.074 us/op 1.80
transfer serialized Avg SignedBeaconBlock (200000 B) 3.2120 us/op 2.4080 us/op 1.33
copy serialized Avg SignedBeaconBlock (200000 B) 79.911 us/op 18.528 us/op 4.31
transfer serialized BlobsSidecar (524380 B) 4.6310 us/op 2.5510 us/op 1.82
copy serialized BlobsSidecar (524380 B) 125.19 us/op 71.011 us/op 1.76
transfer serialized Big SignedBeaconBlock (1000000 B) 4.6750 us/op 2.5540 us/op 1.83
copy serialized Big SignedBeaconBlock (1000000 B) 229.77 us/op 139.87 us/op 1.64
pass gossip attestations to forkchoice per slot 4.0116 ms/op 2.6015 ms/op 1.54
forkChoice updateHead vc 100000 bc 64 eq 0 689.59 us/op 431.50 us/op 1.60
forkChoice updateHead vc 600000 bc 64 eq 0 5.2917 ms/op 2.9483 ms/op 1.79
forkChoice updateHead vc 1000000 bc 64 eq 0 7.7771 ms/op 4.5480 ms/op 1.71
forkChoice updateHead vc 600000 bc 320 eq 0 4.6687 ms/op 2.6198 ms/op 1.78
forkChoice updateHead vc 600000 bc 1200 eq 0 4.7028 ms/op 2.9296 ms/op 1.61
forkChoice updateHead vc 600000 bc 7200 eq 0 5.9511 ms/op 3.4147 ms/op 1.74
forkChoice updateHead vc 600000 bc 64 eq 1000 11.821 ms/op 9.8509 ms/op 1.20
forkChoice updateHead vc 600000 bc 64 eq 10000 12.848 ms/op 9.9270 ms/op 1.29
forkChoice updateHead vc 600000 bc 64 eq 300000 22.649 ms/op 12.361 ms/op 1.83
computeDeltas 500000 validators 300 proto nodes 6.6610 ms/op 2.8485 ms/op 2.34
computeDeltas 500000 validators 1200 proto nodes 6.6495 ms/op 2.8871 ms/op 2.30
computeDeltas 500000 validators 7200 proto nodes 6.6374 ms/op 2.8293 ms/op 2.35
computeDeltas 750000 validators 300 proto nodes 9.8658 ms/op 4.3903 ms/op 2.25
computeDeltas 750000 validators 1200 proto nodes 9.6278 ms/op 4.2857 ms/op 2.25
computeDeltas 750000 validators 7200 proto nodes 9.5724 ms/op 4.2634 ms/op 2.25
computeDeltas 1400000 validators 300 proto nodes 17.974 ms/op 8.2065 ms/op 2.19
computeDeltas 1400000 validators 1200 proto nodes 18.119 ms/op 8.2389 ms/op 2.20
computeDeltas 1400000 validators 7200 proto nodes 17.934 ms/op 8.2451 ms/op 2.18
computeDeltas 2100000 validators 300 proto nodes 27.085 ms/op 12.618 ms/op 2.15
computeDeltas 2100000 validators 1200 proto nodes 28.389 ms/op 12.617 ms/op 2.25
computeDeltas 2100000 validators 7200 proto nodes 27.146 ms/op 12.940 ms/op 2.10
computeProposerBoostScoreFromBalances 500000 validators 3.2797 ms/op 2.7660 ms/op 1.19
computeProposerBoostScoreFromBalances 750000 validators 3.2860 ms/op 2.7606 ms/op 1.19
computeProposerBoostScoreFromBalances 1400000 validators 3.3158 ms/op 2.8303 ms/op 1.17
computeProposerBoostScoreFromBalances 2100000 validators 3.3494 ms/op 2.8487 ms/op 1.18
altair processAttestation - 250000 vs - 7PWei normalcase 3.4637 ms/op 1.5454 ms/op 2.24
altair processAttestation - 250000 vs - 7PWei worstcase 4.0309 ms/op 2.8214 ms/op 1.43
altair processAttestation - setStatus - 1/6 committees join 189.75 us/op 121.41 us/op 1.56
altair processAttestation - setStatus - 1/3 committees join 362.27 us/op 210.46 us/op 1.72
altair processAttestation - setStatus - 1/2 committees join 477.47 us/op 311.58 us/op 1.53
altair processAttestation - setStatus - 2/3 committees join 596.60 us/op 419.26 us/op 1.42
altair processAttestation - setStatus - 4/5 committees join 807.95 us/op 528.25 us/op 1.53
altair processAttestation - setStatus - 100% committees join 936.81 us/op 673.94 us/op 1.39
altair processBlock - 250000 vs - 7PWei normalcase 9.8623 ms/op 8.9014 ms/op 1.11
altair processBlock - 250000 vs - 7PWei normalcase hashState 29.945 ms/op 25.617 ms/op 1.17
altair processBlock - 250000 vs - 7PWei worstcase 40.234 ms/op 30.510 ms/op 1.32
altair processBlock - 250000 vs - 7PWei worstcase hashState 86.354 ms/op 76.640 ms/op 1.13
phase0 processBlock - 250000 vs - 7PWei normalcase 2.4114 ms/op 2.4757 ms/op 0.97
phase0 processBlock - 250000 vs - 7PWei worstcase 31.438 ms/op 28.806 ms/op 1.09
altair processEth1Data - 250000 vs - 7PWei normalcase 527.36 us/op 307.60 us/op 1.71
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 8.8690 us/op 7.7620 us/op 1.14
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 64.755 us/op 41.841 us/op 1.55
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 22.688 us/op 8.2060 us/op 2.76
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 9.7870 us/op 11.508 us/op 0.85
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 156.60 us/op 129.05 us/op 1.21
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.4021 ms/op 678.69 us/op 2.07
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.5250 ms/op 913.40 us/op 1.67
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.5636 ms/op 1.0932 ms/op 1.43
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.9424 ms/op 2.7804 ms/op 1.06
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.5080 ms/op 1.8019 ms/op 1.39
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.4495 ms/op 4.8357 ms/op 1.13
Tree 40 250000 create 337.69 ms/op 252.45 ms/op 1.34
Tree 40 250000 get(125000) 198.82 ns/op 117.30 ns/op 1.69
Tree 40 250000 set(125000) 846.05 ns/op 796.94 ns/op 1.06
Tree 40 250000 toArray() 17.066 ms/op 21.021 ms/op 0.81
Tree 40 250000 iterate all - toArray() + loop 17.115 ms/op 21.574 ms/op 0.79
Tree 40 250000 iterate all - get(i) 66.159 ms/op 52.900 ms/op 1.25
MutableVector 250000 create 10.110 ms/op 10.444 ms/op 0.97
MutableVector 250000 get(125000) 6.5340 ns/op 5.9100 ns/op 1.11
MutableVector 250000 set(125000) 260.66 ns/op 216.86 ns/op 1.20
MutableVector 250000 toArray() 3.1286 ms/op 3.1824 ms/op 0.98
MutableVector 250000 iterate all - toArray() + loop 3.2813 ms/op 3.3455 ms/op 0.98
MutableVector 250000 iterate all - get(i) 1.5352 ms/op 1.3468 ms/op 1.14
Array 250000 create 2.5311 ms/op 2.7194 ms/op 0.93
Array 250000 clone - spread 1.2032 ms/op 987.27 us/op 1.22
Array 250000 get(125000) 0.59000 ns/op 0.58100 ns/op 1.02
Array 250000 set(125000) 0.66900 ns/op 0.61600 ns/op 1.09
Array 250000 iterate all - loop 82.912 us/op 78.219 us/op 1.06
effectiveBalanceIncrements clone Uint8Array 300000 26.158 us/op 11.511 us/op 2.27
effectiveBalanceIncrements clone MutableVector 300000 360.00 ns/op 318.00 ns/op 1.13
effectiveBalanceIncrements rw all Uint8Array 300000 178.71 us/op 173.07 us/op 1.03
effectiveBalanceIncrements rw all MutableVector 300000 83.279 ms/op 61.339 ms/op 1.36
phase0 afterProcessEpoch - 250000 vs - 7PWei 121.11 ms/op 78.789 ms/op 1.54
phase0 beforeProcessEpoch - 250000 vs - 7PWei 30.897 ms/op 32.440 ms/op 0.95
altair processEpoch - mainnet_e81889 463.17 ms/op 363.30 ms/op 1.27
mainnet_e81889 - altair beforeProcessEpoch 59.828 ms/op 46.725 ms/op 1.28
mainnet_e81889 - altair processJustificationAndFinalization 14.672 us/op 8.7960 us/op 1.67
mainnet_e81889 - altair processInactivityUpdates 5.8985 ms/op 5.0674 ms/op 1.16
mainnet_e81889 - altair processRewardsAndPenalties 65.928 ms/op 48.836 ms/op 1.35
mainnet_e81889 - altair processRegistryUpdates 2.6270 us/op 1.2150 us/op 2.16
mainnet_e81889 - altair processSlashings 496.00 ns/op 313.00 ns/op 1.58
mainnet_e81889 - altair processEth1DataReset 515.00 ns/op 310.00 ns/op 1.66
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2187 ms/op 902.29 us/op 1.35
mainnet_e81889 - altair processSlashingsReset 3.9000 us/op 2.0690 us/op 1.88
mainnet_e81889 - altair processRandaoMixesReset 4.4100 us/op 3.1120 us/op 1.42
mainnet_e81889 - altair processHistoricalRootsUpdate 691.00 ns/op 451.00 ns/op 1.53
mainnet_e81889 - altair processParticipationFlagUpdates 1.8020 us/op 1.2020 us/op 1.50
mainnet_e81889 - altair processSyncCommitteeUpdates 705.00 ns/op 394.00 ns/op 1.79
mainnet_e81889 - altair afterProcessEpoch 129.74 ms/op 85.684 ms/op 1.51
capella processEpoch - mainnet_e217614 1.9051 s/op 1.2378 s/op 1.54
mainnet_e217614 - capella beforeProcessEpoch 322.34 ms/op 198.75 ms/op 1.62
mainnet_e217614 - capella processJustificationAndFinalization 22.926 us/op 7.1530 us/op 3.21
mainnet_e217614 - capella processInactivityUpdates 19.873 ms/op 13.391 ms/op 1.48
mainnet_e217614 - capella processRewardsAndPenalties 322.85 ms/op 238.55 ms/op 1.35
mainnet_e217614 - capella processRegistryUpdates 36.346 us/op 12.678 us/op 2.87
mainnet_e217614 - capella processSlashings 1.2210 us/op 342.00 ns/op 3.57
mainnet_e217614 - capella processEth1DataReset 836.00 ns/op 505.00 ns/op 1.66
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.7137 ms/op 3.1561 ms/op 1.49
mainnet_e217614 - capella processSlashingsReset 6.0040 us/op 1.4570 us/op 4.12
mainnet_e217614 - capella processRandaoMixesReset 9.9360 us/op 2.8830 us/op 3.45
mainnet_e217614 - capella processHistoricalRootsUpdate 2.0840 us/op 444.00 ns/op 4.69
mainnet_e217614 - capella processParticipationFlagUpdates 3.3670 us/op 883.00 ns/op 3.81
mainnet_e217614 - capella afterProcessEpoch 339.99 ms/op 198.49 ms/op 1.71
phase0 processEpoch - mainnet_e58758 567.00 ms/op 346.99 ms/op 1.63
mainnet_e58758 - phase0 beforeProcessEpoch 181.38 ms/op 95.395 ms/op 1.90
mainnet_e58758 - phase0 processJustificationAndFinalization 27.725 us/op 9.6680 us/op 2.87
mainnet_e58758 - phase0 processRewardsAndPenalties 64.898 ms/op 47.363 ms/op 1.37
mainnet_e58758 - phase0 processRegistryUpdates 18.130 us/op 4.8730 us/op 3.72
mainnet_e58758 - phase0 processSlashings 574.00 ns/op 292.00 ns/op 1.97
mainnet_e58758 - phase0 processEth1DataReset 573.00 ns/op 289.00 ns/op 1.98
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.0952 ms/op 725.29 us/op 1.51
mainnet_e58758 - phase0 processSlashingsReset 3.6270 us/op 1.4060 us/op 2.58
mainnet_e58758 - phase0 processRandaoMixesReset 7.5560 us/op 1.6370 us/op 4.62
mainnet_e58758 - phase0 processHistoricalRootsUpdate 808.00 ns/op 284.00 ns/op 2.85
mainnet_e58758 - phase0 processParticipationRecordUpdates 5.4760 us/op 2.4030 us/op 2.28
mainnet_e58758 - phase0 afterProcessEpoch 104.83 ms/op 67.389 ms/op 1.56
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.2742 ms/op 887.51 us/op 1.44
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.4708 ms/op 1.1074 ms/op 1.33
altair processInactivityUpdates - 250000 normalcase 18.042 ms/op 15.463 ms/op 1.17
altair processInactivityUpdates - 250000 worstcase 20.221 ms/op 14.796 ms/op 1.37
phase0 processRegistryUpdates - 250000 normalcase 12.512 us/op 3.4560 us/op 3.62
phase0 processRegistryUpdates - 250000 badcase_full_deposits 342.79 us/op 246.78 us/op 1.39
phase0 processRegistryUpdates - 250000 worstcase 0.5 118.20 ms/op 104.27 ms/op 1.13
altair processRewardsAndPenalties - 250000 normalcase 55.816 ms/op 50.910 ms/op 1.10
altair processRewardsAndPenalties - 250000 worstcase 53.632 ms/op 53.187 ms/op 1.01
phase0 getAttestationDeltas - 250000 normalcase 8.1180 ms/op 5.0912 ms/op 1.59
phase0 getAttestationDeltas - 250000 worstcase 8.0844 ms/op 4.9587 ms/op 1.63
phase0 processSlashings - 250000 worstcase 2.3744 ms/op 1.5576 ms/op 1.52
altair processSyncCommitteeUpdates - 250000 149.74 ms/op 104.16 ms/op 1.44
BeaconState.hashTreeRoot - No change 263.00 ns/op 288.00 ns/op 0.91
BeaconState.hashTreeRoot - 1 full validator 111.05 us/op 104.33 us/op 1.06
BeaconState.hashTreeRoot - 32 full validator 1.0927 ms/op 1.3449 ms/op 0.81
BeaconState.hashTreeRoot - 512 full validator 10.836 ms/op 13.384 ms/op 0.81
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 124.44 us/op 143.56 us/op 0.87
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.7169 ms/op 1.9368 ms/op 0.89
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 21.641 ms/op 25.543 ms/op 0.85
BeaconState.hashTreeRoot - 1 balances 103.46 us/op 129.02 us/op 0.80
BeaconState.hashTreeRoot - 32 balances 914.19 us/op 867.73 us/op 1.05
BeaconState.hashTreeRoot - 512 balances 8.7429 ms/op 10.921 ms/op 0.80
BeaconState.hashTreeRoot - 250000 balances 154.74 ms/op 168.14 ms/op 0.92
aggregationBits - 2048 els - zipIndexesInBitList 14.801 us/op 9.3830 us/op 1.58
regular array get 100000 times 32.860 us/op 30.568 us/op 1.07
wrappedArray get 100000 times 32.839 us/op 30.557 us/op 1.07
arrayWithProxy get 100000 times 13.952 ms/op 10.008 ms/op 1.39
ssz.Root.equals 215.00 ns/op 235.00 ns/op 0.91
byteArrayEquals 213.00 ns/op 225.00 ns/op 0.95
shuffle list - 16384 els 7.0180 ms/op 4.3707 ms/op 1.61
shuffle list - 250000 els 103.59 ms/op 64.246 ms/op 1.61
processSlot - 1 slots 14.368 us/op 13.379 us/op 1.07
processSlot - 32 slots 2.7896 ms/op 2.5688 ms/op 1.09
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 49.222 ms/op 40.429 ms/op 1.22
getCommitteeAssignments - req 1 vs - 250000 vc 2.5551 ms/op 2.3571 ms/op 1.08
getCommitteeAssignments - req 100 vs - 250000 vc 3.7454 ms/op 3.7899 ms/op 0.99
getCommitteeAssignments - req 1000 vs - 250000 vc 4.0964 ms/op 4.2685 ms/op 0.96
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.2900 ns/op 6.5600 ns/op 0.81
state getBlockRootAtSlot - 250000 vs - 7PWei 573.65 ns/op 1.2790 us/op 0.45
computeProposers - vc 250000 9.1600 ms/op 8.1641 ms/op 1.12
computeEpochShuffling - vc 250000 107.22 ms/op 75.813 ms/op 1.41
getNextSyncCommittee - vc 250000 160.59 ms/op 137.36 ms/op 1.17
computeSigningRoot for AttestationData 23.471 us/op 24.369 us/op 0.96
hash AttestationData serialized data then Buffer.toString(base64) 2.4187 us/op 1.2953 us/op 1.87
toHexString serialized data 1.1212 us/op 834.04 ns/op 1.34
Buffer.toString(base64) 216.04 ns/op 158.43 ns/op 1.36

by benchmarkbot/action

@nflaig nflaig added this to the v1.12.0 milestone Oct 30, 2023
@nflaig nflaig merged commit 618895c into unstable Oct 31, 2023
15 checks passed
@nflaig nflaig deleted the nflaig/handle-uncaught-exception branch October 31, 2023 13:03
@wemeetagain
Copy link
Member

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