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: ignore empty array when filtering validator rewards #6882

Merged
merged 1 commit into from
Jun 13, 2024

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Jun 13, 2024

Motivation

Fix all remaining routes to properly handle empty [] filter

Description

Ignore empty array when filtering validator rewards

These two request will result in return data for all validators, without filtering

with empty array body

curl -X POST http://localhost:9596/eth/v1/beacon/rewards/attestations/290253 -H "content-type: application/json" -d "[]"

and without body (depends on #6881)

curl -X POST http://localhost:9596/eth/v1/beacon/rewards/attestations/290253

@nflaig nflaig requested a review from a team as a code owner June 13, 2024 12:54
Copy link

codecov bot commented Jun 13, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 62.76%. Comparing base (f4460cd) to head (444029d).

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6882   +/-   ##
=========================================
  Coverage     62.76%   62.76%           
=========================================
  Files           578      578           
  Lines         61273    61273           
  Branches       2112     2112           
=========================================
  Hits          38455    38455           
  Misses        22780    22780           
  Partials         38       38           

@wemeetagain wemeetagain merged commit 79a008f into unstable Jun 13, 2024
26 of 27 checks passed
@wemeetagain wemeetagain deleted the nflaig/fix-rewards-empty-array branch June 13, 2024 13:28
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 23d99ef Previous: f4460cd Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 546.18 us/op 615.97 us/op 0.89
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 65.610 us/op 40.460 us/op 1.62
BLS verify - blst-native 1.3486 ms/op 1.1166 ms/op 1.21
BLS verifyMultipleSignatures 3 - blst-native 2.8013 ms/op 2.3757 ms/op 1.18
BLS verifyMultipleSignatures 8 - blst-native 6.2351 ms/op 5.2628 ms/op 1.18
BLS verifyMultipleSignatures 32 - blst-native 22.208 ms/op 19.308 ms/op 1.15
BLS verifyMultipleSignatures 64 - blst-native 44.039 ms/op 38.049 ms/op 1.16
BLS verifyMultipleSignatures 128 - blst-native 87.135 ms/op 75.511 ms/op 1.15
BLS deserializing 10000 signatures 911.62 ms/op 780.94 ms/op 1.17
BLS deserializing 100000 signatures 9.5857 s/op 7.7465 s/op 1.24
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.3794 ms/op 1.1855 ms/op 1.16
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.6373 ms/op 1.2850 ms/op 1.27
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.3535 ms/op 2.0227 ms/op 1.16
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.6952 ms/op 3.0008 ms/op 1.23
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.8867 ms/op 6.0556 ms/op 0.97
BLS aggregatePubkeys 32 - blst-native 26.948 us/op 23.406 us/op 1.15
BLS aggregatePubkeys 128 - blst-native 105.08 us/op 89.315 us/op 1.18
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 84.553 ms/op 60.641 ms/op 1.39
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 80.980 ms/op 44.324 ms/op 1.83
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 38.255 ms/op 28.379 ms/op 1.35
getSlashingsAndExits - default max 125.27 us/op 67.307 us/op 1.86
getSlashingsAndExits - 2k 406.39 us/op 223.49 us/op 1.82
proposeBlockBody type=full, size=empty 6.3227 ms/op 4.8199 ms/op 1.31
isKnown best case - 1 super set check 620.00 ns/op 455.00 ns/op 1.36
isKnown normal case - 2 super set checks 561.00 ns/op 440.00 ns/op 1.27
isKnown worse case - 16 super set checks 577.00 ns/op 442.00 ns/op 1.31
InMemoryCheckpointStateCache - add get delete 6.3830 us/op 3.7680 us/op 1.69
validate api signedAggregateAndProof - struct 2.7926 ms/op 2.2655 ms/op 1.23
validate gossip signedAggregateAndProof - struct 2.8776 ms/op 2.3683 ms/op 1.22
validate gossip attestation - vc 640000 1.3461 ms/op 1.1336 ms/op 1.19
batch validate gossip attestation - vc 640000 - chunk 32 167.64 us/op 139.61 us/op 1.20
batch validate gossip attestation - vc 640000 - chunk 64 153.31 us/op 122.89 us/op 1.25
batch validate gossip attestation - vc 640000 - chunk 128 140.47 us/op 115.92 us/op 1.21
batch validate gossip attestation - vc 640000 - chunk 256 133.54 us/op 106.13 us/op 1.26
pickEth1Vote - no votes 1.1413 ms/op 830.53 us/op 1.37
pickEth1Vote - max votes 10.107 ms/op 7.5803 ms/op 1.33
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.349 ms/op 11.987 ms/op 1.20
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 21.788 ms/op 18.773 ms/op 1.16
pickEth1Vote - Eth1Data fastSerialize value x2048 542.35 us/op 353.21 us/op 1.54
pickEth1Vote - Eth1Data fastSerialize tree x2048 4.9314 ms/op 4.2056 ms/op 1.17
bytes32 toHexString 511.00 ns/op 557.00 ns/op 0.92
bytes32 Buffer.toString(hex) 271.00 ns/op 429.00 ns/op 0.63
bytes32 Buffer.toString(hex) from Uint8Array 408.00 ns/op 528.00 ns/op 0.77
bytes32 Buffer.toString(hex) + 0x 264.00 ns/op 436.00 ns/op 0.61
Object access 1 prop 0.15400 ns/op 0.34900 ns/op 0.44
Map access 1 prop 0.13500 ns/op 0.32100 ns/op 0.42
Object get x1000 6.1890 ns/op 5.1570 ns/op 1.20
Map get x1000 6.6280 ns/op 5.8560 ns/op 1.13
Object set x1000 47.520 ns/op 28.176 ns/op 1.69
Map set x1000 27.657 ns/op 19.713 ns/op 1.40
Return object 10000 times 0.31190 ns/op 0.29570 ns/op 1.05
Throw Error 10000 times 3.5897 us/op 2.7479 us/op 1.31
fastMsgIdFn sha256 / 200 bytes 2.3820 us/op 2.0700 us/op 1.15
fastMsgIdFn h32 xxhash / 200 bytes 299.00 ns/op 413.00 ns/op 0.72
fastMsgIdFn h64 xxhash / 200 bytes 283.00 ns/op 460.00 ns/op 0.62
fastMsgIdFn sha256 / 1000 bytes 7.8490 us/op 6.1190 us/op 1.28
fastMsgIdFn h32 xxhash / 1000 bytes 442.00 ns/op 582.00 ns/op 0.76
fastMsgIdFn h64 xxhash / 1000 bytes 377.00 ns/op 521.00 ns/op 0.72
fastMsgIdFn sha256 / 10000 bytes 67.622 us/op 50.689 us/op 1.33
fastMsgIdFn h32 xxhash / 10000 bytes 1.9870 us/op 1.9550 us/op 1.02
fastMsgIdFn h64 xxhash / 10000 bytes 1.2720 us/op 1.3200 us/op 0.96
send data - 1000 256B messages 14.330 ms/op 10.705 ms/op 1.34
send data - 1000 512B messages 18.925 ms/op 13.161 ms/op 1.44
send data - 1000 1024B messages 26.279 ms/op 22.902 ms/op 1.15
send data - 1000 1200B messages 25.319 ms/op 22.011 ms/op 1.15
send data - 1000 2048B messages 33.226 ms/op 26.837 ms/op 1.24
send data - 1000 4096B messages 34.707 ms/op 25.836 ms/op 1.34
send data - 1000 16384B messages 73.430 ms/op 66.712 ms/op 1.10
send data - 1000 65536B messages 237.07 ms/op 251.94 ms/op 0.94
enrSubnets - fastDeserialize 64 bits 1.3430 us/op 1.1500 us/op 1.17
enrSubnets - ssz BitVector 64 bits 405.00 ns/op 526.00 ns/op 0.77
enrSubnets - fastDeserialize 4 bits 175.00 ns/op 333.00 ns/op 0.53
enrSubnets - ssz BitVector 4 bits 448.00 ns/op 525.00 ns/op 0.85
prioritizePeers score -10:0 att 32-0.1 sync 2-0 216.81 us/op 131.57 us/op 1.65
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 198.56 us/op 145.64 us/op 1.36
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 372.07 us/op 244.40 us/op 1.52
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 541.88 us/op 395.98 us/op 1.37
prioritizePeers score 0:0 att 64-1 sync 4-1 984.70 us/op 455.64 us/op 2.16
array of 16000 items push then shift 1.6834 us/op 1.3415 us/op 1.25
LinkedList of 16000 items push then shift 7.8060 ns/op 6.5150 ns/op 1.20
array of 16000 items push then pop 150.52 ns/op 78.599 ns/op 1.92
LinkedList of 16000 items push then pop 8.1330 ns/op 6.4140 ns/op 1.27
array of 24000 items push then shift 2.6319 us/op 1.9304 us/op 1.36
LinkedList of 24000 items push then shift 9.5230 ns/op 6.4300 ns/op 1.48
array of 24000 items push then pop 207.01 ns/op 109.27 ns/op 1.89
LinkedList of 24000 items push then pop 8.2840 ns/op 6.6040 ns/op 1.25
intersect bitArray bitLen 8 7.3590 ns/op 5.6710 ns/op 1.30
intersect array and set length 8 83.748 ns/op 39.551 ns/op 2.12
intersect bitArray bitLen 128 33.247 ns/op 27.108 ns/op 1.23
intersect array and set length 128 1.0261 us/op 583.29 ns/op 1.76
bitArray.getTrueBitIndexes() bitLen 128 2.7740 us/op 1.5770 us/op 1.76
bitArray.getTrueBitIndexes() bitLen 248 4.2100 us/op 3.2940 us/op 1.28
bitArray.getTrueBitIndexes() bitLen 512 9.0710 us/op 5.9170 us/op 1.53
Buffer.concat 32 items 1.0630 us/op 979.00 ns/op 1.09
Uint8Array.set 32 items 2.1800 us/op 1.3150 us/op 1.66
Buffer.copy 2.1570 us/op 1.4170 us/op 1.52
Uint8Array.set - with subarray 3.2720 us/op 1.9010 us/op 1.72
Uint8Array.set - without subarray 2.1060 us/op 1.2230 us/op 1.72
Set add up to 64 items then delete first 3.1942 us/op 1.8080 us/op 1.77
OrderedSet add up to 64 items then delete first 5.0093 us/op 3.3041 us/op 1.52
Set add up to 64 items then delete last 3.5016 us/op 2.3039 us/op 1.52
OrderedSet add up to 64 items then delete last 5.3254 us/op 3.1445 us/op 1.69
Set add up to 64 items then delete middle 3.5282 us/op 2.0927 us/op 1.69
OrderedSet add up to 64 items then delete middle 7.1521 us/op 4.5479 us/op 1.57
Set add up to 128 items then delete first 7.7590 us/op 4.0777 us/op 1.90
OrderedSet add up to 128 items then delete first 12.154 us/op 6.3964 us/op 1.90
Set add up to 128 items then delete last 7.4227 us/op 3.9750 us/op 1.87
OrderedSet add up to 128 items then delete last 11.311 us/op 6.0760 us/op 1.86
Set add up to 128 items then delete middle 7.2610 us/op 4.0576 us/op 1.79
OrderedSet add up to 128 items then delete middle 18.613 us/op 12.013 us/op 1.55
Set add up to 256 items then delete first 15.755 us/op 7.9733 us/op 1.98
OrderedSet add up to 256 items then delete first 25.368 us/op 12.608 us/op 2.01
Set add up to 256 items then delete last 16.411 us/op 7.5312 us/op 2.18
OrderedSet add up to 256 items then delete last 21.503 us/op 11.982 us/op 1.79
Set add up to 256 items then delete middle 13.962 us/op 7.4456 us/op 1.88
OrderedSet add up to 256 items then delete middle 50.438 us/op 37.207 us/op 1.36
transfer serialized Status (84 B) 1.5810 us/op 1.5720 us/op 1.01
copy serialized Status (84 B) 1.3740 us/op 1.4470 us/op 0.95
transfer serialized SignedVoluntaryExit (112 B) 1.6200 us/op 1.7180 us/op 0.94
copy serialized SignedVoluntaryExit (112 B) 1.4590 us/op 1.5130 us/op 0.96
transfer serialized ProposerSlashing (416 B) 2.3250 us/op 2.5500 us/op 0.91
copy serialized ProposerSlashing (416 B) 2.1240 us/op 1.5660 us/op 1.36
transfer serialized Attestation (485 B) 2.3700 us/op 1.5730 us/op 1.51
copy serialized Attestation (485 B) 2.3410 us/op 1.5580 us/op 1.50
transfer serialized AttesterSlashing (33232 B) 3.3200 us/op 2.2180 us/op 1.50
copy serialized AttesterSlashing (33232 B) 10.179 us/op 4.3950 us/op 2.32
transfer serialized Small SignedBeaconBlock (128000 B) 3.0180 us/op 3.3650 us/op 0.90
copy serialized Small SignedBeaconBlock (128000 B) 16.168 us/op 11.450 us/op 1.41
transfer serialized Avg SignedBeaconBlock (200000 B) 3.5980 us/op 3.6620 us/op 0.98
copy serialized Avg SignedBeaconBlock (200000 B) 23.291 us/op 16.119 us/op 1.44
transfer serialized BlobsSidecar (524380 B) 3.2010 us/op 3.9290 us/op 0.81
copy serialized BlobsSidecar (524380 B) 121.93 us/op 82.602 us/op 1.48
transfer serialized Big SignedBeaconBlock (1000000 B) 3.5650 us/op 4.2180 us/op 0.85
copy serialized Big SignedBeaconBlock (1000000 B) 146.79 us/op 246.75 us/op 0.59
pass gossip attestations to forkchoice per slot 3.2784 ms/op 2.7618 ms/op 1.19
forkChoice updateHead vc 100000 bc 64 eq 0 509.10 us/op 502.70 us/op 1.01
forkChoice updateHead vc 600000 bc 64 eq 0 3.2597 ms/op 2.5829 ms/op 1.26
forkChoice updateHead vc 1000000 bc 64 eq 0 5.8341 ms/op 4.2168 ms/op 1.38
forkChoice updateHead vc 600000 bc 320 eq 0 3.3356 ms/op 2.8014 ms/op 1.19
forkChoice updateHead vc 600000 bc 1200 eq 0 3.2774 ms/op 4.5539 ms/op 0.72
forkChoice updateHead vc 600000 bc 7200 eq 0 3.8390 ms/op 3.0773 ms/op 1.25
forkChoice updateHead vc 600000 bc 64 eq 1000 11.138 ms/op 9.8132 ms/op 1.14
forkChoice updateHead vc 600000 bc 64 eq 10000 11.124 ms/op 9.7575 ms/op 1.14
forkChoice updateHead vc 600000 bc 64 eq 300000 15.890 ms/op 12.702 ms/op 1.25
computeDeltas 500000 validators 300 proto nodes 3.7701 ms/op 3.0632 ms/op 1.23
computeDeltas 500000 validators 1200 proto nodes 3.6655 ms/op 3.1379 ms/op 1.17
computeDeltas 500000 validators 7200 proto nodes 3.7596 ms/op 3.1522 ms/op 1.19
computeDeltas 750000 validators 300 proto nodes 5.4047 ms/op 4.7050 ms/op 1.15
computeDeltas 750000 validators 1200 proto nodes 5.5090 ms/op 4.4695 ms/op 1.23
computeDeltas 750000 validators 7200 proto nodes 5.5351 ms/op 4.5211 ms/op 1.22
computeDeltas 1400000 validators 300 proto nodes 10.915 ms/op 8.7023 ms/op 1.25
computeDeltas 1400000 validators 1200 proto nodes 11.552 ms/op 8.4303 ms/op 1.37
computeDeltas 1400000 validators 7200 proto nodes 11.975 ms/op 8.5217 ms/op 1.41
computeDeltas 2100000 validators 300 proto nodes 16.474 ms/op 12.778 ms/op 1.29
computeDeltas 2100000 validators 1200 proto nodes 16.830 ms/op 12.778 ms/op 1.32
computeDeltas 2100000 validators 7200 proto nodes 16.189 ms/op 12.654 ms/op 1.28
altair processAttestation - 250000 vs - 7PWei normalcase 1.7541 ms/op 1.4722 ms/op 1.19
altair processAttestation - 250000 vs - 7PWei worstcase 2.7117 ms/op 2.1226 ms/op 1.28
altair processAttestation - setStatus - 1/6 committees join 95.717 us/op 66.557 us/op 1.44
altair processAttestation - setStatus - 1/3 committees join 194.18 us/op 129.78 us/op 1.50
altair processAttestation - setStatus - 1/2 committees join 265.49 us/op 195.56 us/op 1.36
altair processAttestation - setStatus - 2/3 committees join 365.74 us/op 258.00 us/op 1.42
altair processAttestation - setStatus - 4/5 committees join 479.28 us/op 398.52 us/op 1.20
altair processAttestation - setStatus - 100% committees join 582.02 us/op 474.22 us/op 1.23
altair processBlock - 250000 vs - 7PWei normalcase 5.0786 ms/op 3.9165 ms/op 1.30
altair processBlock - 250000 vs - 7PWei normalcase hashState 29.474 ms/op 18.478 ms/op 1.60
altair processBlock - 250000 vs - 7PWei worstcase 45.987 ms/op 41.222 ms/op 1.12
altair processBlock - 250000 vs - 7PWei worstcase hashState 87.178 ms/op 61.077 ms/op 1.43
phase0 processBlock - 250000 vs - 7PWei normalcase 2.5606 ms/op 1.3207 ms/op 1.94
phase0 processBlock - 250000 vs - 7PWei worstcase 30.049 ms/op 23.486 ms/op 1.28
altair processEth1Data - 250000 vs - 7PWei normalcase 394.05 us/op 241.09 us/op 1.63
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 7.6040 us/op 5.0390 us/op 1.51
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 25.407 us/op 19.097 us/op 1.33
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 9.4550 us/op 7.6970 us/op 1.23
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.3450 us/op 4.8230 us/op 1.32
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 112.28 us/op 80.311 us/op 1.40
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.2456 ms/op 758.43 us/op 1.64
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.0772 ms/op 1.0173 ms/op 1.06
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.1136 ms/op 693.88 us/op 1.60
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.8001 ms/op 2.0948 ms/op 1.34
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.6322 ms/op 1.2118 ms/op 1.35
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.1064 ms/op 3.0744 ms/op 1.34
Tree 40 250000 create 668.62 ms/op 205.08 ms/op 3.26
Tree 40 250000 get(125000) 210.07 ns/op 119.69 ns/op 1.76
Tree 40 250000 set(125000) 2.3128 us/op 532.33 ns/op 4.34
Tree 40 250000 toArray() 30.404 ms/op 9.7598 ms/op 3.12
Tree 40 250000 iterate all - toArray() + loop 31.912 ms/op 9.9720 ms/op 3.20
Tree 40 250000 iterate all - get(i) 76.844 ms/op 41.536 ms/op 1.85
MutableVector 250000 create 15.648 ms/op 7.7975 ms/op 2.01
MutableVector 250000 get(125000) 8.7670 ns/op 5.9410 ns/op 1.48
MutableVector 250000 set(125000) 797.58 ns/op 182.45 ns/op 4.37
MutableVector 250000 toArray() 8.2698 ms/op 2.7463 ms/op 3.01
MutableVector 250000 iterate all - toArray() + loop 8.0025 ms/op 2.8133 ms/op 2.84
MutableVector 250000 iterate all - get(i) 2.1448 ms/op 1.5183 ms/op 1.41
Array 250000 create 6.1710 ms/op 2.5474 ms/op 2.42
Array 250000 clone - spread 6.8746 ms/op 1.4006 ms/op 4.91
Array 250000 get(125000) 0.58200 ns/op 0.59000 ns/op 0.99
Array 250000 set(125000) 0.63200 ns/op 0.59900 ns/op 1.06
Array 250000 iterate all - loop 98.413 us/op 78.780 us/op 1.25
effectiveBalanceIncrements clone Uint8Array 300000 67.752 us/op 15.728 us/op 4.31
effectiveBalanceIncrements clone MutableVector 300000 134.00 ns/op 317.00 ns/op 0.42
effectiveBalanceIncrements rw all Uint8Array 300000 205.60 us/op 170.81 us/op 1.20
effectiveBalanceIncrements rw all MutableVector 300000 87.219 ms/op 59.755 ms/op 1.46
phase0 afterProcessEpoch - 250000 vs - 7PWei 89.035 ms/op 77.309 ms/op 1.15
phase0 beforeProcessEpoch - 250000 vs - 7PWei 36.779 ms/op 37.608 ms/op 0.98
altair processEpoch - mainnet_e81889 417.99 ms/op 336.70 ms/op 1.24
mainnet_e81889 - altair beforeProcessEpoch 71.162 ms/op 61.776 ms/op 1.15
mainnet_e81889 - altair processJustificationAndFinalization 20.339 us/op 10.446 us/op 1.95
mainnet_e81889 - altair processInactivityUpdates 6.0713 ms/op 6.2344 ms/op 0.97
mainnet_e81889 - altair processRewardsAndPenalties 58.201 ms/op 49.223 ms/op 1.18
mainnet_e81889 - altair processRegistryUpdates 2.9220 us/op 1.9810 us/op 1.48
mainnet_e81889 - altair processSlashings 569.00 ns/op 841.00 ns/op 0.68
mainnet_e81889 - altair processEth1DataReset 839.00 ns/op 696.00 ns/op 1.21
mainnet_e81889 - altair processEffectiveBalanceUpdates 3.0373 ms/op 1.3284 ms/op 2.29
mainnet_e81889 - altair processSlashingsReset 8.8250 us/op 2.6880 us/op 3.28
mainnet_e81889 - altair processRandaoMixesReset 6.4620 us/op 3.4490 us/op 1.87
mainnet_e81889 - altair processHistoricalRootsUpdate 621.00 ns/op 697.00 ns/op 0.89
mainnet_e81889 - altair processParticipationFlagUpdates 2.8960 us/op 3.5210 us/op 0.82
mainnet_e81889 - altair processSyncCommitteeUpdates 702.00 ns/op 701.00 ns/op 1.00
mainnet_e81889 - altair afterProcessEpoch 91.972 ms/op 87.425 ms/op 1.05
capella processEpoch - mainnet_e217614 1.3028 s/op 1.1887 s/op 1.10
mainnet_e217614 - capella beforeProcessEpoch 263.86 ms/op 240.60 ms/op 1.10
mainnet_e217614 - capella processJustificationAndFinalization 19.626 us/op 10.469 us/op 1.87
mainnet_e217614 - capella processInactivityUpdates 18.064 ms/op 17.157 ms/op 1.05
mainnet_e217614 - capella processRewardsAndPenalties 279.77 ms/op 250.23 ms/op 1.12
mainnet_e217614 - capella processRegistryUpdates 18.665 us/op 11.650 us/op 1.60
mainnet_e217614 - capella processSlashings 681.00 ns/op 777.00 ns/op 0.88
mainnet_e217614 - capella processEth1DataReset 1.5370 us/op 678.00 ns/op 2.27
mainnet_e217614 - capella processEffectiveBalanceUpdates 5.2976 ms/op 5.0672 ms/op 1.05
mainnet_e217614 - capella processSlashingsReset 8.5950 us/op 2.2630 us/op 3.80
mainnet_e217614 - capella processRandaoMixesReset 6.7590 us/op 3.3460 us/op 2.02
mainnet_e217614 - capella processHistoricalRootsUpdate 1.0110 us/op 774.00 ns/op 1.31
mainnet_e217614 - capella processParticipationFlagUpdates 2.7470 us/op 2.9140 us/op 0.94
mainnet_e217614 - capella afterProcessEpoch 282.57 ms/op 245.93 ms/op 1.15
phase0 processEpoch - mainnet_e58758 392.22 ms/op 355.56 ms/op 1.10
mainnet_e58758 - phase0 beforeProcessEpoch 107.38 ms/op 101.88 ms/op 1.05
mainnet_e58758 - phase0 processJustificationAndFinalization 18.664 us/op 13.204 us/op 1.41
mainnet_e58758 - phase0 processRewardsAndPenalties 32.634 ms/op 25.305 ms/op 1.29
mainnet_e58758 - phase0 processRegistryUpdates 11.584 us/op 6.2620 us/op 1.85
mainnet_e58758 - phase0 processSlashings 553.00 ns/op 738.00 ns/op 0.75
mainnet_e58758 - phase0 processEth1DataReset 670.00 ns/op 678.00 ns/op 0.99
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.0326 ms/op 1.1171 ms/op 0.92
mainnet_e58758 - phase0 processSlashingsReset 4.2730 us/op 2.9000 us/op 1.47
mainnet_e58758 - phase0 processRandaoMixesReset 8.4340 us/op 6.4420 us/op 1.31
mainnet_e58758 - phase0 processHistoricalRootsUpdate 854.00 ns/op 924.00 ns/op 0.92
mainnet_e58758 - phase0 processParticipationRecordUpdates 5.1200 us/op 2.5340 us/op 2.02
mainnet_e58758 - phase0 afterProcessEpoch 80.167 ms/op 68.132 ms/op 1.18
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.4761 ms/op 788.87 us/op 1.87
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.0874 ms/op 1.5093 ms/op 1.38
altair processInactivityUpdates - 250000 normalcase 21.483 ms/op 17.602 ms/op 1.22
altair processInactivityUpdates - 250000 worstcase 22.309 ms/op 18.054 ms/op 1.24
phase0 processRegistryUpdates - 250000 normalcase 9.5040 us/op 4.8610 us/op 1.96
phase0 processRegistryUpdates - 250000 badcase_full_deposits 405.40 us/op 296.29 us/op 1.37
phase0 processRegistryUpdates - 250000 worstcase 0.5 127.51 ms/op 113.50 ms/op 1.12
altair processRewardsAndPenalties - 250000 normalcase 51.945 ms/op 49.072 ms/op 1.06
altair processRewardsAndPenalties - 250000 worstcase 41.344 ms/op 34.329 ms/op 1.20
phase0 getAttestationDeltas - 250000 normalcase 7.6404 ms/op 6.1339 ms/op 1.25
phase0 getAttestationDeltas - 250000 worstcase 7.8594 ms/op 6.0396 ms/op 1.30
phase0 processSlashings - 250000 worstcase 125.44 us/op 83.497 us/op 1.50
altair processSyncCommitteeUpdates - 250000 127.63 ms/op 91.312 ms/op 1.40
BeaconState.hashTreeRoot - No change 291.00 ns/op 472.00 ns/op 0.62
BeaconState.hashTreeRoot - 1 full validator 114.46 us/op 69.502 us/op 1.65
BeaconState.hashTreeRoot - 32 full validator 1.4943 ms/op 705.02 us/op 2.12
BeaconState.hashTreeRoot - 512 full validator 13.200 ms/op 7.2376 ms/op 1.82
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 148.61 us/op 82.942 us/op 1.79
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.5808 ms/op 1.1359 ms/op 2.27
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 30.940 ms/op 15.311 ms/op 2.02
BeaconState.hashTreeRoot - 1 balances 118.35 us/op 64.555 us/op 1.83
BeaconState.hashTreeRoot - 32 balances 1.5652 ms/op 611.32 us/op 2.56
BeaconState.hashTreeRoot - 512 balances 9.4011 ms/op 5.6422 ms/op 1.67
BeaconState.hashTreeRoot - 250000 balances 195.77 ms/op 130.34 ms/op 1.50
aggregationBits - 2048 els - zipIndexesInBitList 28.193 us/op 19.163 us/op 1.47
byteArrayEquals 32 54.323 ns/op 48.004 ns/op 1.13
Buffer.compare 32 47.479 ns/op 40.007 ns/op 1.19
byteArrayEquals 1024 1.6030 us/op 1.2624 us/op 1.27
Buffer.compare 1024 55.298 ns/op 48.432 ns/op 1.14
byteArrayEquals 16384 26.073 us/op 20.090 us/op 1.30
Buffer.compare 16384 247.83 ns/op 209.28 ns/op 1.18
byteArrayEquals 123687377 192.47 ms/op 151.24 ms/op 1.27
Buffer.compare 123687377 6.5400 ms/op 4.1529 ms/op 1.57
byteArrayEquals 32 - diff last byte 54.551 ns/op 47.485 ns/op 1.15
Buffer.compare 32 - diff last byte 48.726 ns/op 39.405 ns/op 1.24
byteArrayEquals 1024 - diff last byte 1.6523 us/op 1.2717 us/op 1.30
Buffer.compare 1024 - diff last byte 57.976 ns/op 49.151 ns/op 1.18
byteArrayEquals 16384 - diff last byte 26.130 us/op 20.167 us/op 1.30
Buffer.compare 16384 - diff last byte 250.58 ns/op 228.17 ns/op 1.10
byteArrayEquals 123687377 - diff last byte 194.46 ms/op 152.19 ms/op 1.28
Buffer.compare 123687377 - diff last byte 7.6780 ms/op 4.0694 ms/op 1.89
byteArrayEquals 32 - random bytes 5.3730 ns/op 5.2010 ns/op 1.03
Buffer.compare 32 - random bytes 49.091 ns/op 42.820 ns/op 1.15
byteArrayEquals 1024 - random bytes 5.3440 ns/op 4.9040 ns/op 1.09
Buffer.compare 1024 - random bytes 47.142 ns/op 41.712 ns/op 1.13
byteArrayEquals 16384 - random bytes 5.3610 ns/op 4.8960 ns/op 1.09
Buffer.compare 16384 - random bytes 47.686 ns/op 39.491 ns/op 1.21
byteArrayEquals 123687377 - random bytes 6.6400 ns/op 7.7300 ns/op 0.86
Buffer.compare 123687377 - random bytes 49.980 ns/op 44.790 ns/op 1.12
regular array get 100000 times 34.268 us/op 31.070 us/op 1.10
wrappedArray get 100000 times 37.203 us/op 31.037 us/op 1.20
arrayWithProxy get 100000 times 13.478 ms/op 9.3302 ms/op 1.44
ssz.Root.equals 47.473 ns/op 39.580 ns/op 1.20
byteArrayEquals 46.715 ns/op 39.027 ns/op 1.20
Buffer.compare 10.805 ns/op 9.4230 ns/op 1.15
shuffle list - 16384 els 6.5359 ms/op 5.5449 ms/op 1.18
shuffle list - 250000 els 95.995 ms/op 81.576 ms/op 1.18
processSlot - 1 slots 15.889 us/op 15.298 us/op 1.04
processSlot - 32 slots 2.6125 ms/op 2.2149 ms/op 1.18
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 38.166 ms/op 38.074 ms/op 1.00
getCommitteeAssignments - req 1 vs - 250000 vc 2.2349 ms/op 1.7557 ms/op 1.27
getCommitteeAssignments - req 100 vs - 250000 vc 4.3380 ms/op 3.4473 ms/op 1.26
getCommitteeAssignments - req 1000 vs - 250000 vc 4.6320 ms/op 3.6792 ms/op 1.26
findModifiedValidators - 10000 modified validators 269.47 ms/op 245.22 ms/op 1.10
findModifiedValidators - 1000 modified validators 203.81 ms/op 176.72 ms/op 1.15
findModifiedValidators - 100 modified validators 189.52 ms/op 163.04 ms/op 1.16
findModifiedValidators - 10 modified validators 182.49 ms/op 170.57 ms/op 1.07
findModifiedValidators - 1 modified validators 179.45 ms/op 150.56 ms/op 1.19
findModifiedValidators - no difference 169.09 ms/op 150.29 ms/op 1.13
compare ViewDUs 3.1735 s/op 2.9634 s/op 1.07
compare each validator Uint8Array 1.2320 s/op 968.44 ms/op 1.27
compare ViewDU to Uint8Array 1.1881 s/op 724.69 ms/op 1.64
migrate state 1000000 validators, 24 modified, 0 new 564.46 ms/op 587.98 ms/op 0.96
migrate state 1000000 validators, 1700 modified, 1000 new 780.03 ms/op 884.65 ms/op 0.88
migrate state 1000000 validators, 3400 modified, 2000 new 1.0583 s/op 1.1180 s/op 0.95
migrate state 1500000 validators, 24 modified, 0 new 557.29 ms/op 490.72 ms/op 1.14
migrate state 1500000 validators, 1700 modified, 1000 new 810.03 ms/op 813.71 ms/op 1.00
migrate state 1500000 validators, 3400 modified, 2000 new 1.0426 s/op 1.0107 s/op 1.03
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.8500 ns/op 6.6100 ns/op 0.73
state getBlockRootAtSlot - 250000 vs - 7PWei 575.20 ns/op 944.55 ns/op 0.61
computeProposers - vc 250000 7.7186 ms/op 5.6522 ms/op 1.37
computeEpochShuffling - vc 250000 96.631 ms/op 80.733 ms/op 1.20
getNextSyncCommittee - vc 250000 132.93 ms/op 96.353 ms/op 1.38
computeSigningRoot for AttestationData 19.410 us/op 17.533 us/op 1.11
hash AttestationData serialized data then Buffer.toString(base64) 1.5700 us/op 1.1041 us/op 1.42
toHexString serialized data 946.64 ns/op 717.76 ns/op 1.32
Buffer.toString(base64) 190.60 ns/op 128.59 ns/op 1.48

by benchmarkbot/action

@wemeetagain
Copy link
Member

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

2 participants