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: return 404 error if no sync committee contribution is available #6649

Draft
wants to merge 2 commits into
base: unstable
Choose a base branch
from

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Apr 7, 2024

Motivation

Similar to #6648 we should be return a 404 error instead of 500 internal server error.

Description

Return 404 error if sync committee contribution is not available for slot / subnet / block root.

Note: This is not yet defined in the spec, see ethereum/beacon-APIs#440

@nflaig nflaig requested a review from a team as a code owner April 7, 2024 16:13
Copy link

codecov bot commented Apr 7, 2024

Codecov Report

Merging #6649 (ea5d763) into unstable (f2ec0d4) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6649   +/-   ##
=========================================
  Coverage     61.69%   61.69%           
=========================================
  Files           556      556           
  Lines         58820    58820           
  Branches       1887     1887           
=========================================
  Hits          36287    36287           
  Misses        22492    22492           
  Partials         41       41           

Copy link
Contributor

github-actions bot commented Apr 7, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 79c97e7 Previous: f2ec0d4 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 926.03 us/op 839.47 us/op 1.10
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 77.505 us/op 157.37 us/op 0.49
BLS verify - blst-native 1.2378 ms/op 1.3840 ms/op 0.89
BLS verifyMultipleSignatures 3 - blst-native 2.5962 ms/op 2.8584 ms/op 0.91
BLS verifyMultipleSignatures 8 - blst-native 5.6998 ms/op 6.4171 ms/op 0.89
BLS verifyMultipleSignatures 32 - blst-native 21.029 ms/op 23.014 ms/op 0.91
BLS verifyMultipleSignatures 64 - blst-native 40.974 ms/op 46.244 ms/op 0.89
BLS verifyMultipleSignatures 128 - blst-native 84.367 ms/op 96.080 ms/op 0.88
BLS deserializing 10000 signatures 885.48 ms/op 979.90 ms/op 0.90
BLS deserializing 100000 signatures 9.2684 s/op 9.9667 s/op 0.93
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.3182 ms/op 1.6826 ms/op 0.78
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.4860 ms/op 2.0471 ms/op 0.73
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.8333 ms/op 3.4702 ms/op 0.82
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.5121 ms/op 4.2924 ms/op 0.82
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.6835 ms/op 9.5265 ms/op 0.60
BLS aggregatePubkeys 32 - blst-native 25.650 us/op 28.338 us/op 0.91
BLS aggregatePubkeys 128 - blst-native 101.05 us/op 108.53 us/op 0.93
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 58.845 ms/op 70.089 ms/op 0.84
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 58.623 ms/op 66.507 ms/op 0.88
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 38.350 ms/op 36.750 ms/op 1.04
getSlashingsAndExits - default max 145.98 us/op 189.62 us/op 0.77
getSlashingsAndExits - 2k 362.42 us/op 439.38 us/op 0.82
proposeBlockBody type=full, size=empty 5.3756 ms/op 5.9458 ms/op 0.90
isKnown best case - 1 super set check 318.00 ns/op 359.00 ns/op 0.89
isKnown normal case - 2 super set checks 300.00 ns/op 360.00 ns/op 0.83
isKnown worse case - 16 super set checks 313.00 ns/op 335.00 ns/op 0.93
InMemoryCheckpointStateCache - add get delete 5.7130 us/op 6.2180 us/op 0.92
validate api signedAggregateAndProof - struct 2.6269 ms/op 2.9645 ms/op 0.89
validate gossip signedAggregateAndProof - struct 2.6721 ms/op 2.9202 ms/op 0.92
validate gossip attestation - vc 640000 1.3350 ms/op 1.3979 ms/op 0.96
batch validate gossip attestation - vc 640000 - chunk 32 159.39 us/op 169.99 us/op 0.94
batch validate gossip attestation - vc 640000 - chunk 64 141.61 us/op 150.53 us/op 0.94
batch validate gossip attestation - vc 640000 - chunk 128 134.46 us/op 145.15 us/op 0.93
batch validate gossip attestation - vc 640000 - chunk 256 127.14 us/op 132.49 us/op 0.96
pickEth1Vote - no votes 1.2031 ms/op 1.3921 ms/op 0.86
pickEth1Vote - max votes 7.2148 ms/op 11.553 ms/op 0.62
pickEth1Vote - Eth1Data hashTreeRoot value x2048 22.379 ms/op 21.563 ms/op 1.04
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 31.205 ms/op 32.754 ms/op 0.95
pickEth1Vote - Eth1Data fastSerialize value x2048 601.02 us/op 710.54 us/op 0.85
pickEth1Vote - Eth1Data fastSerialize tree x2048 6.6121 ms/op 5.7697 ms/op 1.15
bytes32 toHexString 498.00 ns/op 742.00 ns/op 0.67
bytes32 Buffer.toString(hex) 286.00 ns/op 329.00 ns/op 0.87
bytes32 Buffer.toString(hex) from Uint8Array 408.00 ns/op 585.00 ns/op 0.70
bytes32 Buffer.toString(hex) + 0x 288.00 ns/op 359.00 ns/op 0.80
Object access 1 prop 0.15600 ns/op 0.23300 ns/op 0.67
Map access 1 prop 0.14500 ns/op 0.17100 ns/op 0.85
Object get x1000 7.2190 ns/op 8.9650 ns/op 0.81
Map get x1000 0.71200 ns/op 0.88700 ns/op 0.80
Object set x1000 47.703 ns/op 68.735 ns/op 0.69
Map set x1000 37.876 ns/op 53.710 ns/op 0.71
Return object 10000 times 0.22770 ns/op 0.27020 ns/op 0.84
Throw Error 10000 times 3.6978 us/op 3.9638 us/op 0.93
fastMsgIdFn sha256 / 200 bytes 3.1040 us/op 3.4640 us/op 0.90
fastMsgIdFn h32 xxhash / 200 bytes 260.00 ns/op 366.00 ns/op 0.71
fastMsgIdFn h64 xxhash / 200 bytes 339.00 ns/op 403.00 ns/op 0.84
fastMsgIdFn sha256 / 1000 bytes 10.720 us/op 12.123 us/op 0.88
fastMsgIdFn h32 xxhash / 1000 bytes 380.00 ns/op 484.00 ns/op 0.79
fastMsgIdFn h64 xxhash / 1000 bytes 407.00 ns/op 471.00 ns/op 0.86
fastMsgIdFn sha256 / 10000 bytes 98.402 us/op 109.86 us/op 0.90
fastMsgIdFn h32 xxhash / 10000 bytes 1.8090 us/op 2.0550 us/op 0.88
fastMsgIdFn h64 xxhash / 10000 bytes 1.2340 us/op 1.4050 us/op 0.88
send data - 1000 256B messages 17.703 ms/op 20.178 ms/op 0.88
send data - 1000 512B messages 24.150 ms/op 29.876 ms/op 0.81
send data - 1000 1024B messages 40.177 ms/op 39.869 ms/op 1.01
send data - 1000 1200B messages 39.604 ms/op 43.239 ms/op 0.92
send data - 1000 2048B messages 48.738 ms/op 52.761 ms/op 0.92
send data - 1000 4096B messages 29.026 ms/op 30.843 ms/op 0.94
send data - 1000 16384B messages 117.63 ms/op 126.27 ms/op 0.93
send data - 1000 65536B messages 460.07 ms/op 505.27 ms/op 0.91
enrSubnets - fastDeserialize 64 bits 1.2680 us/op 1.5480 us/op 0.82
enrSubnets - ssz BitVector 64 bits 418.00 ns/op 564.00 ns/op 0.74
enrSubnets - fastDeserialize 4 bits 181.00 ns/op 232.00 ns/op 0.78
enrSubnets - ssz BitVector 4 bits 421.00 ns/op 514.00 ns/op 0.82
prioritizePeers score -10:0 att 32-0.1 sync 2-0 96.273 us/op 113.59 us/op 0.85
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 121.14 us/op 145.14 us/op 0.83
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 162.57 us/op 216.78 us/op 0.75
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 282.18 us/op 339.50 us/op 0.83
prioritizePeers score 0:0 att 64-1 sync 4-1 330.72 us/op 412.02 us/op 0.80
array of 16000 items push then shift 1.5981 us/op 1.7803 us/op 0.90
LinkedList of 16000 items push then shift 8.8220 ns/op 9.6350 ns/op 0.92
array of 16000 items push then pop 75.534 ns/op 105.03 ns/op 0.72
LinkedList of 16000 items push then pop 8.6910 ns/op 8.7720 ns/op 0.99
array of 24000 items push then shift 2.4844 us/op 2.5638 us/op 0.97
LinkedList of 24000 items push then shift 8.8250 ns/op 9.3580 ns/op 0.94
array of 24000 items push then pop 105.10 ns/op 140.64 ns/op 0.75
LinkedList of 24000 items push then pop 8.6080 ns/op 8.8100 ns/op 0.98
intersect bitArray bitLen 8 5.7080 ns/op 5.9340 ns/op 0.96
intersect array and set length 8 59.665 ns/op 72.278 ns/op 0.83
intersect bitArray bitLen 128 33.743 ns/op 37.705 ns/op 0.89
intersect array and set length 128 809.14 ns/op 976.02 ns/op 0.83
bitArray.getTrueBitIndexes() bitLen 128 1.4670 us/op 2.1380 us/op 0.69
bitArray.getTrueBitIndexes() bitLen 248 2.3930 us/op 3.2750 us/op 0.73
bitArray.getTrueBitIndexes() bitLen 512 4.7880 us/op 6.5310 us/op 0.73
Buffer.concat 32 items 948.00 ns/op 1.2290 us/op 0.77
Uint8Array.set 32 items 2.4920 us/op 2.2350 us/op 1.11
Set add up to 64 items then delete first 4.3038 us/op 5.3774 us/op 0.80
OrderedSet add up to 64 items then delete first 5.1770 us/op 7.0148 us/op 0.74
Set add up to 64 items then delete last 4.5999 us/op 5.7952 us/op 0.79
OrderedSet add up to 64 items then delete last 5.9822 us/op 6.9846 us/op 0.86
Set add up to 64 items then delete middle 4.6982 us/op 5.4493 us/op 0.86
OrderedSet add up to 64 items then delete middle 7.2509 us/op 8.6302 us/op 0.84
Set add up to 128 items then delete first 9.5053 us/op 11.739 us/op 0.81
OrderedSet add up to 128 items then delete first 12.639 us/op 14.892 us/op 0.85
Set add up to 128 items then delete last 9.0018 us/op 11.001 us/op 0.82
OrderedSet add up to 128 items then delete last 11.193 us/op 14.816 us/op 0.76
Set add up to 128 items then delete middle 8.8247 us/op 10.885 us/op 0.81
OrderedSet add up to 128 items then delete middle 17.355 us/op 21.124 us/op 0.82
Set add up to 256 items then delete first 19.671 us/op 22.407 us/op 0.88
OrderedSet add up to 256 items then delete first 25.268 us/op 31.602 us/op 0.80
Set add up to 256 items then delete last 18.333 us/op 21.545 us/op 0.85
OrderedSet add up to 256 items then delete last 23.353 us/op 27.147 us/op 0.86
Set add up to 256 items then delete middle 18.158 us/op 21.785 us/op 0.83
OrderedSet add up to 256 items then delete middle 45.181 us/op 51.986 us/op 0.87
transfer serialized Status (84 B) 1.6730 us/op 2.0750 us/op 0.81
copy serialized Status (84 B) 1.2420 us/op 1.4980 us/op 0.83
transfer serialized SignedVoluntaryExit (112 B) 1.8430 us/op 2.2420 us/op 0.82
copy serialized SignedVoluntaryExit (112 B) 1.4590 us/op 1.5950 us/op 0.91
transfer serialized ProposerSlashing (416 B) 3.0460 us/op 3.3890 us/op 0.90
copy serialized ProposerSlashing (416 B) 1.8920 us/op 3.2010 us/op 0.59
transfer serialized Attestation (485 B) 2.0480 us/op 3.8750 us/op 0.53
copy serialized Attestation (485 B) 1.7120 us/op 3.2300 us/op 0.53
transfer serialized AttesterSlashing (33232 B) 3.2450 us/op 2.9380 us/op 1.10
copy serialized AttesterSlashing (33232 B) 7.6910 us/op 6.8700 us/op 1.12
transfer serialized Small SignedBeaconBlock (128000 B) 3.4720 us/op 3.5820 us/op 0.97
copy serialized Small SignedBeaconBlock (128000 B) 16.400 us/op 22.009 us/op 0.75
transfer serialized Avg SignedBeaconBlock (200000 B) 3.0930 us/op 3.7790 us/op 0.82
copy serialized Avg SignedBeaconBlock (200000 B) 21.659 us/op 25.832 us/op 0.84
transfer serialized BlobsSidecar (524380 B) 3.2910 us/op 4.1310 us/op 0.80
copy serialized BlobsSidecar (524380 B) 196.36 us/op 151.12 us/op 1.30
transfer serialized Big SignedBeaconBlock (1000000 B) 3.0540 us/op 3.7370 us/op 0.82
copy serialized Big SignedBeaconBlock (1000000 B) 165.24 us/op 171.88 us/op 0.96
pass gossip attestations to forkchoice per slot 3.7855 ms/op 4.9037 ms/op 0.77
forkChoice updateHead vc 100000 bc 64 eq 0 689.82 us/op 727.56 us/op 0.95
forkChoice updateHead vc 600000 bc 64 eq 0 4.4884 ms/op 5.3574 ms/op 0.84
forkChoice updateHead vc 1000000 bc 64 eq 0 7.2776 ms/op 7.0819 ms/op 1.03
forkChoice updateHead vc 600000 bc 320 eq 0 4.1833 ms/op 4.2588 ms/op 0.98
forkChoice updateHead vc 600000 bc 1200 eq 0 4.4185 ms/op 4.3877 ms/op 1.01
forkChoice updateHead vc 600000 bc 7200 eq 0 5.8701 ms/op 5.9320 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 1000 11.718 ms/op 11.347 ms/op 1.03
forkChoice updateHead vc 600000 bc 64 eq 10000 12.055 ms/op 12.079 ms/op 1.00
forkChoice updateHead vc 600000 bc 64 eq 300000 16.262 ms/op 16.338 ms/op 1.00
computeDeltas 500000 validators 300 proto nodes 6.6960 ms/op 6.9595 ms/op 0.96
computeDeltas 500000 validators 1200 proto nodes 6.5035 ms/op 7.0278 ms/op 0.93
computeDeltas 500000 validators 7200 proto nodes 6.2436 ms/op 6.9576 ms/op 0.90
computeDeltas 750000 validators 300 proto nodes 9.3625 ms/op 10.723 ms/op 0.87
computeDeltas 750000 validators 1200 proto nodes 9.9053 ms/op 10.753 ms/op 0.92
computeDeltas 750000 validators 7200 proto nodes 9.6966 ms/op 10.465 ms/op 0.93
computeDeltas 1400000 validators 300 proto nodes 18.417 ms/op 20.136 ms/op 0.91
computeDeltas 1400000 validators 1200 proto nodes 18.646 ms/op 20.061 ms/op 0.93
computeDeltas 1400000 validators 7200 proto nodes 18.347 ms/op 22.112 ms/op 0.83
computeDeltas 2100000 validators 300 proto nodes 27.266 ms/op 33.238 ms/op 0.82
computeDeltas 2100000 validators 1200 proto nodes 26.386 ms/op 31.109 ms/op 0.85
computeDeltas 2100000 validators 7200 proto nodes 26.819 ms/op 30.151 ms/op 0.89
altair processAttestation - 250000 vs - 7PWei normalcase 2.1126 ms/op 3.4027 ms/op 0.62
altair processAttestation - 250000 vs - 7PWei worstcase 3.2333 ms/op 5.5082 ms/op 0.59
altair processAttestation - setStatus - 1/6 committees join 148.42 us/op 266.78 us/op 0.56
altair processAttestation - setStatus - 1/3 committees join 293.53 us/op 441.46 us/op 0.66
altair processAttestation - setStatus - 1/2 committees join 407.20 us/op 579.97 us/op 0.70
altair processAttestation - setStatus - 2/3 committees join 486.47 us/op 711.79 us/op 0.68
altair processAttestation - setStatus - 4/5 committees join 680.10 us/op 991.91 us/op 0.69
altair processAttestation - setStatus - 100% committees join 802.59 us/op 1.0112 ms/op 0.79
altair processBlock - 250000 vs - 7PWei normalcase 9.7849 ms/op 8.8556 ms/op 1.10
altair processBlock - 250000 vs - 7PWei normalcase hashState 35.487 ms/op 38.524 ms/op 0.92
altair processBlock - 250000 vs - 7PWei worstcase 45.074 ms/op 43.424 ms/op 1.04
altair processBlock - 250000 vs - 7PWei worstcase hashState 93.470 ms/op 102.35 ms/op 0.91
phase0 processBlock - 250000 vs - 7PWei normalcase 2.7524 ms/op 3.2085 ms/op 0.86
phase0 processBlock - 250000 vs - 7PWei worstcase 29.177 ms/op 32.847 ms/op 0.89
altair processEth1Data - 250000 vs - 7PWei normalcase 467.23 us/op 458.88 us/op 1.02
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 11.870 us/op 11.160 us/op 1.06
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 52.168 us/op 65.961 us/op 0.79
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 26.030 us/op 16.483 us/op 1.58
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 19.166 us/op 19.243 us/op 1.00
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 267.20 us/op 158.68 us/op 1.68
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.6726 ms/op 1.5788 ms/op 1.06
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.1200 ms/op 1.7160 ms/op 1.24
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.0651 ms/op 1.8112 ms/op 1.14
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.5801 ms/op 4.0120 ms/op 0.89
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.8799 ms/op 2.7177 ms/op 1.06
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.8536 ms/op 5.9066 ms/op 0.82
Tree 40 250000 create 359.93 ms/op 402.08 ms/op 0.90
Tree 40 250000 get(125000) 207.68 ns/op 211.60 ns/op 0.98
Tree 40 250000 set(125000) 1.0441 us/op 1.2628 us/op 0.83
Tree 40 250000 toArray() 24.090 ms/op 23.904 ms/op 1.01
Tree 40 250000 iterate all - toArray() + loop 22.590 ms/op 24.795 ms/op 0.91
Tree 40 250000 iterate all - get(i) 72.954 ms/op 78.390 ms/op 0.93
MutableVector 250000 create 19.324 ms/op 14.414 ms/op 1.34
MutableVector 250000 get(125000) 6.6890 ns/op 7.5000 ns/op 0.89
MutableVector 250000 set(125000) 262.34 ns/op 302.08 ns/op 0.87
MutableVector 250000 toArray() 3.9949 ms/op 3.6971 ms/op 1.08
MutableVector 250000 iterate all - toArray() + loop 4.0755 ms/op 3.7769 ms/op 1.08
MutableVector 250000 iterate all - get(i) 1.5007 ms/op 1.5994 ms/op 0.94
Array 250000 create 3.2186 ms/op 3.4846 ms/op 0.92
Array 250000 clone - spread 1.2950 ms/op 1.4255 ms/op 0.91
Array 250000 get(125000) 1.1090 ns/op 1.2040 ns/op 0.92
Array 250000 set(125000) 4.2460 ns/op 4.5710 ns/op 0.93
Array 250000 iterate all - loop 167.04 us/op 181.21 us/op 0.92
effectiveBalanceIncrements clone Uint8Array 300000 35.204 us/op 43.226 us/op 0.81
effectiveBalanceIncrements clone MutableVector 300000 411.00 ns/op 451.00 ns/op 0.91
effectiveBalanceIncrements rw all Uint8Array 300000 201.01 us/op 217.07 us/op 0.93
effectiveBalanceIncrements rw all MutableVector 300000 88.072 ms/op 103.42 ms/op 0.85
phase0 afterProcessEpoch - 250000 vs - 7PWei 114.57 ms/op 122.12 ms/op 0.94
phase0 beforeProcessEpoch - 250000 vs - 7PWei 58.045 ms/op 54.827 ms/op 1.06
altair processEpoch - mainnet_e81889 490.55 ms/op 481.28 ms/op 1.02
mainnet_e81889 - altair beforeProcessEpoch 88.379 ms/op 83.478 ms/op 1.06
mainnet_e81889 - altair processJustificationAndFinalization 17.337 us/op 14.740 us/op 1.18
mainnet_e81889 - altair processInactivityUpdates 7.0416 ms/op 6.7491 ms/op 1.04
mainnet_e81889 - altair processRewardsAndPenalties 88.983 ms/op 59.639 ms/op 1.49
mainnet_e81889 - altair processRegistryUpdates 3.9550 us/op 2.0800 us/op 1.90
mainnet_e81889 - altair processSlashings 697.00 ns/op 411.00 ns/op 1.70
mainnet_e81889 - altair processEth1DataReset 684.00 ns/op 815.00 ns/op 0.84
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.1255 ms/op 1.4288 ms/op 1.49
mainnet_e81889 - altair processSlashingsReset 4.1320 us/op 3.6040 us/op 1.15
mainnet_e81889 - altair processRandaoMixesReset 6.8880 us/op 6.6300 us/op 1.04
mainnet_e81889 - altair processHistoricalRootsUpdate 1.2210 us/op 563.00 ns/op 2.17
mainnet_e81889 - altair processParticipationFlagUpdates 1.9410 us/op 2.5900 us/op 0.75
mainnet_e81889 - altair processSyncCommitteeUpdates 830.00 ns/op 734.00 ns/op 1.13
mainnet_e81889 - altair afterProcessEpoch 121.53 ms/op 138.14 ms/op 0.88
capella processEpoch - mainnet_e217614 2.0626 s/op 2.2131 s/op 0.93
mainnet_e217614 - capella beforeProcessEpoch 480.79 ms/op 526.32 ms/op 0.91
mainnet_e217614 - capella processJustificationAndFinalization 22.762 us/op 23.090 us/op 0.99
mainnet_e217614 - capella processInactivityUpdates 19.652 ms/op 27.008 ms/op 0.73
mainnet_e217614 - capella processRewardsAndPenalties 573.15 ms/op 633.66 ms/op 0.90
mainnet_e217614 - capella processRegistryUpdates 29.144 us/op 27.980 us/op 1.04
mainnet_e217614 - capella processSlashings 997.00 ns/op 488.00 ns/op 2.04
mainnet_e217614 - capella processEth1DataReset 804.00 ns/op 737.00 ns/op 1.09
mainnet_e217614 - capella processEffectiveBalanceUpdates 10.592 ms/op 5.2362 ms/op 2.02
mainnet_e217614 - capella processSlashingsReset 4.7980 us/op 7.1330 us/op 0.67
mainnet_e217614 - capella processRandaoMixesReset 7.2610 us/op 14.076 us/op 0.52
mainnet_e217614 - capella processHistoricalRootsUpdate 803.00 ns/op 3.6630 us/op 0.22
mainnet_e217614 - capella processParticipationFlagUpdates 3.1970 us/op 6.0290 us/op 0.53
mainnet_e217614 - capella afterProcessEpoch 362.16 ms/op 453.90 ms/op 0.80
phase0 processEpoch - mainnet_e58758 568.52 ms/op 551.19 ms/op 1.03
mainnet_e58758 - phase0 beforeProcessEpoch 168.87 ms/op 190.68 ms/op 0.89
mainnet_e58758 - phase0 processJustificationAndFinalization 24.374 us/op 24.571 us/op 0.99
mainnet_e58758 - phase0 processRewardsAndPenalties 78.200 ms/op 75.055 ms/op 1.04
mainnet_e58758 - phase0 processRegistryUpdates 15.832 us/op 20.643 us/op 0.77
mainnet_e58758 - phase0 processSlashings 1.0300 us/op 1.3540 us/op 0.76
mainnet_e58758 - phase0 processEth1DataReset 857.00 ns/op 1.1220 us/op 0.76
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.0907 ms/op 1.6185 ms/op 1.29
mainnet_e58758 - phase0 processSlashingsReset 4.7700 us/op 7.4970 us/op 0.64
mainnet_e58758 - phase0 processRandaoMixesReset 7.9620 us/op 10.650 us/op 0.75
mainnet_e58758 - phase0 processHistoricalRootsUpdate 796.00 ns/op 1.2200 us/op 0.65
mainnet_e58758 - phase0 processParticipationRecordUpdates 5.6120 us/op 7.9620 us/op 0.70
mainnet_e58758 - phase0 afterProcessEpoch 100.20 ms/op 125.14 ms/op 0.80
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.4959 ms/op 1.7601 ms/op 1.42
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.3472 ms/op 1.9572 ms/op 0.69
altair processInactivityUpdates - 250000 normalcase 38.295 ms/op 36.797 ms/op 1.04
altair processInactivityUpdates - 250000 worstcase 34.609 ms/op 45.567 ms/op 0.76
phase0 processRegistryUpdates - 250000 normalcase 15.292 us/op 12.931 us/op 1.18
phase0 processRegistryUpdates - 250000 badcase_full_deposits 743.40 us/op 519.40 us/op 1.43
phase0 processRegistryUpdates - 250000 worstcase 0.5 147.64 ms/op 190.24 ms/op 0.78
altair processRewardsAndPenalties - 250000 normalcase 86.557 ms/op 76.465 ms/op 1.13
altair processRewardsAndPenalties - 250000 worstcase 90.587 ms/op 74.612 ms/op 1.21
phase0 getAttestationDeltas - 250000 normalcase 8.7364 ms/op 11.393 ms/op 0.77
phase0 getAttestationDeltas - 250000 worstcase 8.7740 ms/op 10.102 ms/op 0.87
phase0 processSlashings - 250000 worstcase 137.05 us/op 96.048 us/op 1.43
altair processSyncCommitteeUpdates - 250000 157.85 ms/op 184.10 ms/op 0.86
BeaconState.hashTreeRoot - No change 415.00 ns/op 721.00 ns/op 0.58
BeaconState.hashTreeRoot - 1 full validator 148.40 us/op 146.23 us/op 1.01
BeaconState.hashTreeRoot - 32 full validator 1.5505 ms/op 1.4735 ms/op 1.05
BeaconState.hashTreeRoot - 512 full validator 17.411 ms/op 18.027 ms/op 0.97
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 192.00 us/op 184.00 us/op 1.04
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.4246 ms/op 2.4053 ms/op 1.01
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 34.625 ms/op 31.049 ms/op 1.12
BeaconState.hashTreeRoot - 1 balances 151.17 us/op 131.38 us/op 1.15
BeaconState.hashTreeRoot - 32 balances 1.3490 ms/op 1.2344 ms/op 1.09
BeaconState.hashTreeRoot - 512 balances 10.415 ms/op 13.823 ms/op 0.75
BeaconState.hashTreeRoot - 250000 balances 220.89 ms/op 210.06 ms/op 1.05
aggregationBits - 2048 els - zipIndexesInBitList 27.858 us/op 39.948 us/op 0.70
byteArrayEquals 32 75.870 ns/op 84.662 ns/op 0.90
Buffer.compare 32 56.032 ns/op 61.470 ns/op 0.91
byteArrayEquals 1024 2.0519 us/op 2.3873 us/op 0.86
Buffer.compare 1024 72.228 ns/op 81.432 ns/op 0.89
byteArrayEquals 16384 32.794 us/op 37.217 us/op 0.88
Buffer.compare 16384 273.46 ns/op 289.57 ns/op 0.94
byteArrayEquals 123687377 242.78 ms/op 269.44 ms/op 0.90
Buffer.compare 123687377 6.5223 ms/op 8.3763 ms/op 0.78
byteArrayEquals 32 - diff last byte 71.303 ns/op 77.513 ns/op 0.92
Buffer.compare 32 - diff last byte 56.752 ns/op 60.995 ns/op 0.93
byteArrayEquals 1024 - diff last byte 2.0561 us/op 2.1493 us/op 0.96
Buffer.compare 1024 - diff last byte 71.015 ns/op 74.296 ns/op 0.96
byteArrayEquals 16384 - diff last byte 32.544 us/op 33.576 us/op 0.97
Buffer.compare 16384 - diff last byte 267.10 ns/op 278.58 ns/op 0.96
byteArrayEquals 123687377 - diff last byte 245.99 ms/op 261.10 ms/op 0.94
Buffer.compare 123687377 - diff last byte 6.6296 ms/op 7.8111 ms/op 0.85
byteArrayEquals 32 - random bytes 5.2410 ns/op 5.5490 ns/op 0.94
Buffer.compare 32 - random bytes 60.158 ns/op 70.033 ns/op 0.86
byteArrayEquals 1024 - random bytes 5.1670 ns/op 5.7890 ns/op 0.89
Buffer.compare 1024 - random bytes 59.320 ns/op 63.902 ns/op 0.93
byteArrayEquals 16384 - random bytes 5.2130 ns/op 5.7400 ns/op 0.91
Buffer.compare 16384 - random bytes 58.996 ns/op 63.938 ns/op 0.92
byteArrayEquals 123687377 - random bytes 8.5600 ns/op 9.6200 ns/op 0.89
Buffer.compare 123687377 - random bytes 63.000 ns/op 74.010 ns/op 0.85
regular array get 100000 times 43.615 us/op 49.637 us/op 0.88
wrappedArray get 100000 times 43.893 us/op 50.982 us/op 0.86
arrayWithProxy get 100000 times 14.702 ms/op 16.404 ms/op 0.90
ssz.Root.equals 53.241 ns/op 62.031 ns/op 0.86
byteArrayEquals 52.616 ns/op 57.267 ns/op 0.92
Buffer.compare 10.686 ns/op 12.651 ns/op 0.84
shuffle list - 16384 els 8.3323 ms/op 8.9699 ms/op 0.93
shuffle list - 250000 els 124.03 ms/op 133.06 ms/op 0.93
processSlot - 1 slots 16.889 us/op 16.678 us/op 1.01
processSlot - 32 slots 2.8814 ms/op 3.1542 ms/op 0.91
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 62.591 ms/op 62.660 ms/op 1.00
getCommitteeAssignments - req 1 vs - 250000 vc 2.6574 ms/op 2.7073 ms/op 0.98
getCommitteeAssignments - req 100 vs - 250000 vc 3.8680 ms/op 3.9165 ms/op 0.99
getCommitteeAssignments - req 1000 vs - 250000 vc 4.2097 ms/op 4.2026 ms/op 1.00
findModifiedValidators - 10000 modified validators 373.75 ms/op 417.15 ms/op 0.90
findModifiedValidators - 1000 modified validators 213.97 ms/op 235.66 ms/op 0.91
findModifiedValidators - 100 modified validators 176.18 ms/op 199.46 ms/op 0.88
findModifiedValidators - 10 modified validators 202.70 ms/op 205.08 ms/op 0.99
findModifiedValidators - 1 modified validators 174.06 ms/op 200.91 ms/op 0.87
findModifiedValidators - no difference 208.21 ms/op 224.08 ms/op 0.93
compare ViewDUs 4.7961 s/op 5.0112 s/op 0.96
compare each validator Uint8Array 1.7215 s/op 1.6131 s/op 1.07
compare ViewDU to Uint8Array 1.1877 s/op 1.5750 s/op 0.75
migrate state 1000000 validators, 24 modified, 0 new 811.17 ms/op 867.69 ms/op 0.93
migrate state 1000000 validators, 1700 modified, 1000 new 1.0423 s/op 1.1242 s/op 0.93
migrate state 1000000 validators, 3400 modified, 2000 new 1.3717 s/op 1.3942 s/op 0.98
migrate state 1500000 validators, 24 modified, 0 new 884.31 ms/op 912.38 ms/op 0.97
migrate state 1500000 validators, 1700 modified, 1000 new 1.1754 s/op 1.3541 s/op 0.87
migrate state 1500000 validators, 3400 modified, 2000 new 1.4308 s/op 1.4647 s/op 0.98
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.3900 ns/op 5.2500 ns/op 0.84
state getBlockRootAtSlot - 250000 vs - 7PWei 817.65 ns/op 744.36 ns/op 1.10
computeProposers - vc 250000 9.3382 ms/op 11.006 ms/op 0.85
computeEpochShuffling - vc 250000 124.92 ms/op 150.48 ms/op 0.83
getNextSyncCommittee - vc 250000 150.04 ms/op 165.32 ms/op 0.91
computeSigningRoot for AttestationData 29.624 us/op 23.829 us/op 1.24
hash AttestationData serialized data then Buffer.toString(base64) 2.2933 us/op 2.4996 us/op 0.92
toHexString serialized data 1.0484 us/op 1.1611 us/op 0.90
Buffer.toString(base64) 235.48 ns/op 220.67 ns/op 1.07

by benchmarkbot/action

@nflaig nflaig marked this pull request as draft April 7, 2024 23:27
@nflaig
Copy link
Member Author

nflaig commented Apr 7, 2024

Keeping as draft until behavior is clarified in spec

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

1 participant