ChainSafe / lodestar

🌟 TypeScript Implementation of Ethereum Consensus
https://lodestar.chainsafe.io
Apache License 2.0
1.1k stars 273 forks source link

chore: only log warning if media type is not supported (415) #6847

Closed nflaig closed 4 weeks ago

nflaig commented 1 month ago

Motivation

415 errors thrown by Fastify should be handled as any other ApiError and not logged as error.

Description

Only log warning if media type is not supported (415)

github-actions[bot] commented 1 month ago

Performance Report

✔️ no performance regression detected

Full benchmark results | Benchmark suite | Current: aa345ec27439fcaed0caff7ca47cee45e9ad12bc | Previous: 8b6ecc44c1892115d0e7396b2a5f0ae8fc0d9e6f | Ratio | |-|-|-|-| | getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 810.29 us/op | 938.75 us/op | 0.86 | | getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 71.405 us/op | 48.287 us/op | 1.48 | | BLS verify - blst-native | 1.3290 ms/op | 1.1825 ms/op | 1.12 | | BLS verifyMultipleSignatures 3 - blst-native | 2.7027 ms/op | 2.4792 ms/op | 1.09 | | BLS verifyMultipleSignatures 8 - blst-native | 6.0082 ms/op | 5.3882 ms/op | 1.12 | | BLS verifyMultipleSignatures 32 - blst-native | 22.939 ms/op | 19.694 ms/op | 1.16 | | BLS verifyMultipleSignatures 64 - blst-native | 43.076 ms/op | 38.632 ms/op | 1.12 | | BLS verifyMultipleSignatures 128 - blst-native | 86.632 ms/op | 75.759 ms/op | 1.14 | | BLS deserializing 10000 signatures | 979.40 ms/op | 860.86 ms/op | 1.14 | | BLS deserializing 100000 signatures | 9.9046 s/op | 8.8004 s/op | 1.13 | | BLS verifyMultipleSignatures - same message - 3 - blst-native | 1.3483 ms/op | 1.2651 ms/op | 1.07 | | BLS verifyMultipleSignatures - same message - 8 - blst-native | 1.4665 ms/op | 1.4332 ms/op | 1.02 | | BLS verifyMultipleSignatures - same message - 32 - blst-native | 2.3999 ms/op | 2.2299 ms/op | 1.08 | | BLS verifyMultipleSignatures - same message - 64 - blst-native | 3.5222 ms/op | 3.3273 ms/op | 1.06 | | BLS verifyMultipleSignatures - same message - 128 - blst-native | 5.7456 ms/op | 5.4543 ms/op | 1.05 | | BLS aggregatePubkeys 32 - blst-native | 29.310 us/op | 27.016 us/op | 1.08 | | BLS aggregatePubkeys 128 - blst-native | 120.64 us/op | 105.64 us/op | 1.14 | | notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 62.731 ms/op | 50.345 ms/op | 1.25 | | notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 83.940 ms/op | 48.830 ms/op | 1.72 | | notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 40.626 ms/op | 29.092 ms/op | 1.40 | | getSlashingsAndExits - default max | 164.75 us/op | 89.072 us/op | 1.85 | | getSlashingsAndExits - 2k | 484.77 us/op | 258.60 us/op | 1.87 | | proposeBlockBody type=full, size=empty | 6.6268 ms/op | 5.1887 ms/op | 1.28 | | isKnown best case - 1 super set check | 655.00 ns/op | 298.00 ns/op | 2.20 | | isKnown normal case - 2 super set checks | 732.00 ns/op | 288.00 ns/op | 2.54 | | isKnown worse case - 16 super set checks | 739.00 ns/op | 301.00 ns/op | 2.46 | | InMemoryCheckpointStateCache - add get delete | 7.2510 us/op | 4.3630 us/op | 1.66 | | validate api signedAggregateAndProof - struct | 2.9098 ms/op | 2.4355 ms/op | 1.19 | | validate gossip signedAggregateAndProof - struct | 3.1972 ms/op | 2.4335 ms/op | 1.31 | | validate gossip attestation - vc 640000 | 1.5006 ms/op | 1.1844 ms/op | 1.27 | | batch validate gossip attestation - vc 640000 - chunk 32 | 203.45 us/op | 152.42 us/op | 1.33 | | batch validate gossip attestation - vc 640000 - chunk 64 | 169.98 us/op | 134.15 us/op | 1.27 | | batch validate gossip attestation - vc 640000 - chunk 128 | 159.58 us/op | 135.13 us/op | 1.18 | | batch validate gossip attestation - vc 640000 - chunk 256 | 155.16 us/op | 135.43 us/op | 1.15 | | pickEth1Vote - no votes | 1.2811 ms/op | 1.1063 ms/op | 1.16 | | pickEth1Vote - max votes | 12.895 ms/op | 9.7620 ms/op | 1.32 | | pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 23.521 ms/op | 20.370 ms/op | 1.15 | | pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 27.198 ms/op | 19.802 ms/op | 1.37 | | pickEth1Vote - Eth1Data fastSerialize value x2048 | 671.80 us/op | 513.50 us/op | 1.31 | | pickEth1Vote - Eth1Data fastSerialize tree x2048 | 5.7511 ms/op | 7.5258 ms/op | 0.76 | | bytes32 toHexString | 714.00 ns/op | 533.00 ns/op | 1.34 | | bytes32 Buffer.toString(hex) | 282.00 ns/op | 249.00 ns/op | 1.13 | | bytes32 Buffer.toString(hex) from Uint8Array | 496.00 ns/op | 380.00 ns/op | 1.31 | | bytes32 Buffer.toString(hex) + 0x | 279.00 ns/op | 266.00 ns/op | 1.05 | | Object access 1 prop | 0.20400 ns/op | 0.14700 ns/op | 1.39 | | Map access 1 prop | 0.15500 ns/op | 0.13300 ns/op | 1.17 | | Object get x1000 | 6.7440 ns/op | 6.0840 ns/op | 1.11 | | Map get x1000 | 7.0370 ns/op | 7.0500 ns/op | 1.00 | | Object set x1000 | 54.694 ns/op | 35.508 ns/op | 1.54 | | Map set x1000 | 36.178 ns/op | 24.734 ns/op | 1.46 | | Return object 10000 times | 0.32460 ns/op | 0.29970 ns/op | 1.08 | | Throw Error 10000 times | 3.6209 us/op | 3.5739 us/op | 1.01 | | fastMsgIdFn sha256 / 200 bytes | 2.4680 us/op | 2.2180 us/op | 1.11 | | fastMsgIdFn h32 xxhash / 200 bytes | 297.00 ns/op | 233.00 ns/op | 1.27 | | fastMsgIdFn h64 xxhash / 200 bytes | 293.00 ns/op | 265.00 ns/op | 1.11 | | fastMsgIdFn sha256 / 1000 bytes | 8.6240 us/op | 7.6520 us/op | 1.13 | | fastMsgIdFn h32 xxhash / 1000 bytes | 468.00 ns/op | 391.00 ns/op | 1.20 | | fastMsgIdFn h64 xxhash / 1000 bytes | 405.00 ns/op | 349.00 ns/op | 1.16 | | fastMsgIdFn sha256 / 10000 bytes | 70.540 us/op | 66.804 us/op | 1.06 | | fastMsgIdFn h32 xxhash / 10000 bytes | 2.2280 us/op | 1.9370 us/op | 1.15 | | fastMsgIdFn h64 xxhash / 10000 bytes | 1.4580 us/op | 1.2560 us/op | 1.16 | | send data - 1000 256B messages | 16.963 ms/op | 13.367 ms/op | 1.27 | | send data - 1000 512B messages | 24.022 ms/op | 19.066 ms/op | 1.26 | | send data - 1000 1024B messages | 31.867 ms/op | 27.968 ms/op | 1.14 | | send data - 1000 1200B messages | 27.008 ms/op | 28.272 ms/op | 0.96 | | send data - 1000 2048B messages | 43.726 ms/op | 32.347 ms/op | 1.35 | | send data - 1000 4096B messages | 35.173 ms/op | 33.821 ms/op | 1.04 | | send data - 1000 16384B messages | 88.336 ms/op | 78.672 ms/op | 1.12 | | send data - 1000 65536B messages | 271.09 ms/op | 221.38 ms/op | 1.22 | | enrSubnets - fastDeserialize 64 bits | 1.6920 us/op | 1.1220 us/op | 1.51 | | enrSubnets - ssz BitVector 64 bits | 535.00 ns/op | 351.00 ns/op | 1.52 | | enrSubnets - fastDeserialize 4 bits | 235.00 ns/op | 151.00 ns/op | 1.56 | | enrSubnets - ssz BitVector 4 bits | 526.00 ns/op | 375.00 ns/op | 1.40 | | prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 208.70 us/op | 157.00 us/op | 1.33 | | prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 237.98 us/op | 152.62 us/op | 1.56 | | prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 351.00 us/op | 271.88 us/op | 1.29 | | prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 546.33 us/op | 404.83 us/op | 1.35 | | prioritizePeers score 0:0 att 64-1 sync 4-1 | 706.72 us/op | 602.36 us/op | 1.17 | | array of 16000 items push then shift | 1.9149 us/op | 1.7163 us/op | 1.12 | | LinkedList of 16000 items push then shift | 8.8860 ns/op | 7.5930 ns/op | 1.17 | | array of 16000 items push then pop | 151.69 ns/op | 122.57 ns/op | 1.24 | | LinkedList of 16000 items push then pop | 8.9110 ns/op | 7.1560 ns/op | 1.25 | | array of 24000 items push then shift | 3.2010 us/op | 2.4802 us/op | 1.29 | | LinkedList of 24000 items push then shift | 11.235 ns/op | 7.3270 ns/op | 1.53 | | array of 24000 items push then pop | 207.24 ns/op | 137.18 ns/op | 1.51 | | LinkedList of 24000 items push then pop | 8.3320 ns/op | 7.6490 ns/op | 1.09 | | intersect bitArray bitLen 8 | 8.1020 ns/op | 6.7810 ns/op | 1.19 | | intersect array and set length 8 | 62.214 ns/op | 48.769 ns/op | 1.28 | | intersect bitArray bitLen 128 | 34.888 ns/op | 31.000 ns/op | 1.13 | | intersect array and set length 128 | 1.0026 us/op | 738.23 ns/op | 1.36 | | bitArray.getTrueBitIndexes() bitLen 128 | 1.8970 us/op | 1.9830 us/op | 0.96 | | bitArray.getTrueBitIndexes() bitLen 248 | 3.0360 us/op | 3.8110 us/op | 0.80 | | bitArray.getTrueBitIndexes() bitLen 512 | 6.4200 us/op | 7.7020 us/op | 0.83 | | Buffer.concat 32 items | 1.1420 us/op | 1.0040 us/op | 1.14 | | Uint8Array.set 32 items | 2.0230 us/op | 1.4950 us/op | 1.35 | | Buffer.copy | 2.2560 us/op | 1.6940 us/op | 1.33 | | Uint8Array.set - with subarray | 3.1710 us/op | 2.9030 us/op | 1.09 | | Uint8Array.set - without subarray | 1.7030 us/op | 1.4940 us/op | 1.14 | | Set add up to 64 items then delete first | 2.8316 us/op | 2.6886 us/op | 1.05 | | OrderedSet add up to 64 items then delete first | 4.0977 us/op | 3.8843 us/op | 1.05 | | Set add up to 64 items then delete last | 3.1251 us/op | 3.0223 us/op | 1.03 | | OrderedSet add up to 64 items then delete last | 4.7922 us/op | 3.9977 us/op | 1.20 | | Set add up to 64 items then delete middle | 3.2300 us/op | 2.5951 us/op | 1.24 | | OrderedSet add up to 64 items then delete middle | 6.4782 us/op | 5.5474 us/op | 1.17 | | Set add up to 128 items then delete first | 6.3970 us/op | 5.2599 us/op | 1.22 | | OrderedSet add up to 128 items then delete first | 10.591 us/op | 7.6838 us/op | 1.38 | | Set add up to 128 items then delete last | 5.8273 us/op | 5.1576 us/op | 1.13 | | OrderedSet add up to 128 items then delete last | 7.5776 us/op | 7.9401 us/op | 0.95 | | Set add up to 128 items then delete middle | 5.0841 us/op | 5.2871 us/op | 0.96 | | OrderedSet add up to 128 items then delete middle | 15.000 us/op | 14.662 us/op | 1.02 | | Set add up to 256 items then delete first | 11.724 us/op | 10.655 us/op | 1.10 | | OrderedSet add up to 256 items then delete first | 17.775 us/op | 16.337 us/op | 1.09 | | Set add up to 256 items then delete last | 11.558 us/op | 9.7729 us/op | 1.18 | | OrderedSet add up to 256 items then delete last | 16.874 us/op | 14.910 us/op | 1.13 | | Set add up to 256 items then delete middle | 10.325 us/op | 9.9254 us/op | 1.04 | | OrderedSet add up to 256 items then delete middle | 47.144 us/op | 42.476 us/op | 1.11 | | transfer serialized Status (84 B) | 1.5040 us/op | 1.5230 us/op | 0.99 | | copy serialized Status (84 B) | 1.2690 us/op | 1.2640 us/op | 1.00 | | transfer serialized SignedVoluntaryExit (112 B) | 1.5280 us/op | 1.6770 us/op | 0.91 | | copy serialized SignedVoluntaryExit (112 B) | 1.3230 us/op | 1.3630 us/op | 0.97 | | transfer serialized ProposerSlashing (416 B) | 2.2110 us/op | 2.3350 us/op | 0.95 | | copy serialized ProposerSlashing (416 B) | 1.9910 us/op | 2.3290 us/op | 0.85 | | transfer serialized Attestation (485 B) | 2.4960 us/op | 1.7670 us/op | 1.41 | | copy serialized Attestation (485 B) | 1.9330 us/op | 1.6200 us/op | 1.19 | | transfer serialized AttesterSlashing (33232 B) | 2.0370 us/op | 1.7960 us/op | 1.13 | | copy serialized AttesterSlashing (33232 B) | 7.0280 us/op | 5.3770 us/op | 1.31 | | transfer serialized Small SignedBeaconBlock (128000 B) | 2.8540 us/op | 2.5500 us/op | 1.12 | | copy serialized Small SignedBeaconBlock (128000 B) | 20.822 us/op | 17.098 us/op | 1.22 | | transfer serialized Avg SignedBeaconBlock (200000 B) | 3.2400 us/op | 3.1060 us/op | 1.04 | | copy serialized Avg SignedBeaconBlock (200000 B) | 26.413 us/op | 22.921 us/op | 1.15 | | transfer serialized BlobsSidecar (524380 B) | 3.7620 us/op | 3.1200 us/op | 1.21 | | copy serialized BlobsSidecar (524380 B) | 158.35 us/op | 81.207 us/op | 1.95 | | transfer serialized Big SignedBeaconBlock (1000000 B) | 4.7030 us/op | 2.8550 us/op | 1.65 | | copy serialized Big SignedBeaconBlock (1000000 B) | 314.64 us/op | 157.49 us/op | 2.00 | | pass gossip attestations to forkchoice per slot | 3.6440 ms/op | 3.1808 ms/op | 1.15 | | forkChoice updateHead vc 100000 bc 64 eq 0 | 579.21 us/op | 507.21 us/op | 1.14 | | forkChoice updateHead vc 600000 bc 64 eq 0 | 4.0546 ms/op | 3.1880 ms/op | 1.27 | | forkChoice updateHead vc 1000000 bc 64 eq 0 | 6.5947 ms/op | 5.4507 ms/op | 1.21 | | forkChoice updateHead vc 600000 bc 320 eq 0 | 3.8275 ms/op | 3.0998 ms/op | 1.23 | | forkChoice updateHead vc 600000 bc 1200 eq 0 | 4.0061 ms/op | 3.3082 ms/op | 1.21 | | forkChoice updateHead vc 600000 bc 7200 eq 0 | 5.2269 ms/op | 3.9695 ms/op | 1.32 | | forkChoice updateHead vc 600000 bc 64 eq 1000 | 12.969 ms/op | 11.389 ms/op | 1.14 | | forkChoice updateHead vc 600000 bc 64 eq 10000 | 12.284 ms/op | 11.522 ms/op | 1.07 | | forkChoice updateHead vc 600000 bc 64 eq 300000 | 28.103 ms/op | 15.355 ms/op | 1.83 | | computeDeltas 500000 validators 300 proto nodes | 4.4517 ms/op | 3.7209 ms/op | 1.20 | | computeDeltas 500000 validators 1200 proto nodes | 4.0339 ms/op | 3.8218 ms/op | 1.06 | | computeDeltas 500000 validators 7200 proto nodes | 4.0177 ms/op | 4.1058 ms/op | 0.98 | | computeDeltas 750000 validators 300 proto nodes | 5.8320 ms/op | 6.5951 ms/op | 0.88 | | computeDeltas 750000 validators 1200 proto nodes | 5.8929 ms/op | 6.1981 ms/op | 0.95 | | computeDeltas 750000 validators 7200 proto nodes | 5.4325 ms/op | 5.9281 ms/op | 0.92 | | computeDeltas 1400000 validators 300 proto nodes | 9.8532 ms/op | 10.811 ms/op | 0.91 | | computeDeltas 1400000 validators 1200 proto nodes | 9.8834 ms/op | 10.407 ms/op | 0.95 | | computeDeltas 1400000 validators 7200 proto nodes | 10.194 ms/op | 10.135 ms/op | 1.01 | | computeDeltas 2100000 validators 300 proto nodes | 16.111 ms/op | 14.836 ms/op | 1.09 | | computeDeltas 2100000 validators 1200 proto nodes | 16.600 ms/op | 14.403 ms/op | 1.15 | | computeDeltas 2100000 validators 7200 proto nodes | 17.738 ms/op | 14.908 ms/op | 1.19 | | altair processAttestation - 250000 vs - 7PWei normalcase | 3.0716 ms/op | 1.7732 ms/op | 1.73 | | altair processAttestation - 250000 vs - 7PWei worstcase | 4.6778 ms/op | 2.6951 ms/op | 1.74 | | altair processAttestation - setStatus - 1/6 committees join | 136.41 us/op | 88.826 us/op | 1.54 | | altair processAttestation - setStatus - 1/3 committees join | 275.37 us/op | 184.30 us/op | 1.49 | | altair processAttestation - setStatus - 1/2 committees join | 328.48 us/op | 246.23 us/op | 1.33 | | altair processAttestation - setStatus - 2/3 committees join | 417.54 us/op | 334.35 us/op | 1.25 | | altair processAttestation - setStatus - 4/5 committees join | 660.02 us/op | 469.32 us/op | 1.41 | | altair processAttestation - setStatus - 100% committees join | 720.59 us/op | 567.62 us/op | 1.27 | | altair processBlock - 250000 vs - 7PWei normalcase | 5.3926 ms/op | 4.3318 ms/op | 1.24 | | altair processBlock - 250000 vs - 7PWei normalcase hashState | 30.584 ms/op | 26.430 ms/op | 1.16 | | altair processBlock - 250000 vs - 7PWei worstcase | 46.037 ms/op | 39.800 ms/op | 1.16 | | altair processBlock - 250000 vs - 7PWei worstcase hashState | 93.488 ms/op | 85.064 ms/op | 1.10 | | phase0 processBlock - 250000 vs - 7PWei normalcase | 2.6367 ms/op | 2.2540 ms/op | 1.17 | | phase0 processBlock - 250000 vs - 7PWei worstcase | 31.905 ms/op | 26.556 ms/op | 1.20 | | altair processEth1Data - 250000 vs - 7PWei normalcase | 519.78 us/op | 409.92 us/op | 1.27 | | getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 7.6420 us/op | 6.5370 us/op | 1.17 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 28.038 us/op | 24.866 us/op | 1.13 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 9.6470 us/op | 9.0260 us/op | 1.07 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 8.7640 us/op | 6.1080 us/op | 1.43 | | getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 110.34 us/op | 118.29 us/op | 0.93 | | getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 827.29 us/op | 706.45 us/op | 1.17 | | getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 1.0154 ms/op | 954.76 us/op | 1.06 | | getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 993.64 us/op | 977.66 us/op | 1.02 | | getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 2.7590 ms/op | 2.2173 ms/op | 1.24 | | getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 1.9664 ms/op | 1.5585 ms/op | 1.26 | | getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 4.6686 ms/op | 3.6733 ms/op | 1.27 | | Tree 40 250000 create | 270.07 ms/op | 265.84 ms/op | 1.02 | | Tree 40 250000 get(125000) | 169.36 ns/op | 158.84 ns/op | 1.07 | | Tree 40 250000 set(125000) | 771.96 ns/op | 760.55 ns/op | 1.02 | | Tree 40 250000 toArray() | 21.675 ms/op | 21.602 ms/op | 1.00 | | Tree 40 250000 iterate all - toArray() + loop | 22.068 ms/op | 22.924 ms/op | 0.96 | | Tree 40 250000 iterate all - get(i) | 65.543 ms/op | 58.627 ms/op | 1.12 | | MutableVector 250000 create | 10.387 ms/op | 10.938 ms/op | 0.95 | | MutableVector 250000 get(125000) | 12.664 ns/op | 6.3670 ns/op | 1.99 | | MutableVector 250000 set(125000) | 255.64 ns/op | 220.73 ns/op | 1.16 | | MutableVector 250000 toArray() | 4.6427 ms/op | 3.8434 ms/op | 1.21 | | MutableVector 250000 iterate all - toArray() + loop | 4.2885 ms/op | 4.4589 ms/op | 0.96 | | MutableVector 250000 iterate all - get(i) | 1.6956 ms/op | 1.6040 ms/op | 1.06 | | Array 250000 create | 3.9274 ms/op | 3.7210 ms/op | 1.06 | | Array 250000 clone - spread | 1.4604 ms/op | 1.4920 ms/op | 0.98 | | Array 250000 get(125000) | 0.45100 ns/op | 0.43800 ns/op | 1.03 | | Array 250000 set(125000) | 0.48000 ns/op | 0.46200 ns/op | 1.04 | | Array 250000 iterate all - loop | 102.36 us/op | 95.067 us/op | 1.08 | | effectiveBalanceIncrements clone Uint8Array 300000 | 39.373 us/op | 39.069 us/op | 1.01 | | effectiveBalanceIncrements clone MutableVector 300000 | 137.00 ns/op | 132.00 ns/op | 1.04 | | effectiveBalanceIncrements rw all Uint8Array 300000 | 215.03 us/op | 200.81 us/op | 1.07 | | effectiveBalanceIncrements rw all MutableVector 300000 | 76.081 ms/op | 71.587 ms/op | 1.06 | | phase0 afterProcessEpoch - 250000 vs - 7PWei | 92.388 ms/op | 91.639 ms/op | 1.01 | | phase0 beforeProcessEpoch - 250000 vs - 7PWei | 44.257 ms/op | 44.203 ms/op | 1.00 | | altair processEpoch - mainnet_e81889 | 385.76 ms/op | 426.31 ms/op | 0.90 | | mainnet_e81889 - altair beforeProcessEpoch | 71.168 ms/op | 71.217 ms/op | 1.00 | | mainnet_e81889 - altair processJustificationAndFinalization | 15.099 us/op | 16.760 us/op | 0.90 | | mainnet_e81889 - altair processInactivityUpdates | 6.5560 ms/op | 6.7589 ms/op | 0.97 | | mainnet_e81889 - altair processRewardsAndPenalties | 39.633 ms/op | 44.483 ms/op | 0.89 | | mainnet_e81889 - altair processRegistryUpdates | 1.9280 us/op | 2.9110 us/op | 0.66 | | mainnet_e81889 - altair processSlashings | 615.00 ns/op | 472.00 ns/op | 1.30 | | mainnet_e81889 - altair processEth1DataReset | 330.00 ns/op | 484.00 ns/op | 0.68 | | mainnet_e81889 - altair processEffectiveBalanceUpdates | 1.2338 ms/op | 1.1177 ms/op | 1.10 | | mainnet_e81889 - altair processSlashingsReset | 4.1390 us/op | 3.8280 us/op | 1.08 | | mainnet_e81889 - altair processRandaoMixesReset | 5.8700 us/op | 5.7230 us/op | 1.03 | | mainnet_e81889 - altair processHistoricalRootsUpdate | 761.00 ns/op | 1.1660 us/op | 0.65 | | mainnet_e81889 - altair processParticipationFlagUpdates | 4.7290 us/op | 3.4650 us/op | 1.36 | | mainnet_e81889 - altair processSyncCommitteeUpdates | 599.00 ns/op | 770.00 ns/op | 0.78 | | mainnet_e81889 - altair afterProcessEpoch | 103.69 ms/op | 100.10 ms/op | 1.04 | | capella processEpoch - mainnet_e217614 | 1.7518 s/op | 2.0809 s/op | 0.84 | | mainnet_e217614 - capella beforeProcessEpoch | 310.86 ms/op | 337.65 ms/op | 0.92 | | mainnet_e217614 - capella processJustificationAndFinalization | 28.567 us/op | 42.337 us/op | 0.67 | | mainnet_e217614 - capella processInactivityUpdates | 22.259 ms/op | 35.901 ms/op | 0.62 | | mainnet_e217614 - capella processRewardsAndPenalties | 281.06 ms/op | 289.96 ms/op | 0.97 | | mainnet_e217614 - capella processRegistryUpdates | 17.478 us/op | 14.420 us/op | 1.21 | | mainnet_e217614 - capella processSlashings | 648.00 ns/op | 735.00 ns/op | 0.88 | | mainnet_e217614 - capella processEth1DataReset | 369.00 ns/op | 467.00 ns/op | 0.79 | | mainnet_e217614 - capella processEffectiveBalanceUpdates | 14.877 ms/op | 3.8323 ms/op | 3.88 | | mainnet_e217614 - capella processSlashingsReset | 3.1310 us/op | 5.3130 us/op | 0.59 | | mainnet_e217614 - capella processRandaoMixesReset | 7.3010 us/op | 10.147 us/op | 0.72 | | mainnet_e217614 - capella processHistoricalRootsUpdate | 1.2900 us/op | 1.3510 us/op | 0.95 | | mainnet_e217614 - capella processParticipationFlagUpdates | 3.3750 us/op | 4.7550 us/op | 0.71 | | mainnet_e217614 - capella afterProcessEpoch | 340.74 ms/op | 284.38 ms/op | 1.20 | | phase0 processEpoch - mainnet_e58758 | 613.24 ms/op | 426.22 ms/op | 1.44 | | mainnet_e58758 - phase0 beforeProcessEpoch | 158.96 ms/op | 117.85 ms/op | 1.35 | | mainnet_e58758 - phase0 processJustificationAndFinalization | 34.452 us/op | 13.725 us/op | 2.51 | | mainnet_e58758 - phase0 processRewardsAndPenalties | 41.249 ms/op | 21.140 ms/op | 1.95 | | mainnet_e58758 - phase0 processRegistryUpdates | 19.453 us/op | 7.3030 us/op | 2.66 | | mainnet_e58758 - phase0 processSlashings | 942.00 ns/op | 327.00 ns/op | 2.88 | | mainnet_e58758 - phase0 processEth1DataReset | 743.00 ns/op | 459.00 ns/op | 1.62 | | mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 1.2473 ms/op | 938.17 us/op | 1.33 | | mainnet_e58758 - phase0 processSlashingsReset | 9.4810 us/op | 3.7790 us/op | 2.51 | | mainnet_e58758 - phase0 processRandaoMixesReset | 6.8280 us/op | 5.2320 us/op | 1.31 | | mainnet_e58758 - phase0 processHistoricalRootsUpdate | 1.3070 us/op | 624.00 ns/op | 2.09 | | mainnet_e58758 - phase0 processParticipationRecordUpdates | 8.3160 us/op | 3.8340 us/op | 2.17 | | mainnet_e58758 - phase0 afterProcessEpoch | 95.278 ms/op | 84.475 ms/op | 1.13 | | phase0 processEffectiveBalanceUpdates - 250000 normalcase | 1.3893 ms/op | 1.1501 ms/op | 1.21 | | phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 2.1121 ms/op | 2.0175 ms/op | 1.05 | | altair processInactivityUpdates - 250000 normalcase | 30.888 ms/op | 17.222 ms/op | 1.79 | | altair processInactivityUpdates - 250000 worstcase | 20.888 ms/op | 17.050 ms/op | 1.23 | | phase0 processRegistryUpdates - 250000 normalcase | 7.4320 us/op | 7.4830 us/op | 0.99 | | phase0 processRegistryUpdates - 250000 badcase_full_deposits | 362.69 us/op | 293.97 us/op | 1.23 | | phase0 processRegistryUpdates - 250000 worstcase 0.5 | 153.05 ms/op | 137.08 ms/op | 1.12 | | altair processRewardsAndPenalties - 250000 normalcase | 47.806 ms/op | 37.847 ms/op | 1.26 | | altair processRewardsAndPenalties - 250000 worstcase | 56.175 ms/op | 37.862 ms/op | 1.48 | | phase0 getAttestationDeltas - 250000 normalcase | 9.2145 ms/op | 8.1059 ms/op | 1.14 | | phase0 getAttestationDeltas - 250000 worstcase | 12.230 ms/op | 10.539 ms/op | 1.16 | | phase0 processSlashings - 250000 worstcase | 109.96 us/op | 114.35 us/op | 0.96 | | altair processSyncCommitteeUpdates - 250000 | 173.08 ms/op | 145.04 ms/op | 1.19 | | BeaconState.hashTreeRoot - No change | 429.00 ns/op | 329.00 ns/op | 1.30 | | BeaconState.hashTreeRoot - 1 full validator | 131.35 us/op | 101.07 us/op | 1.30 | | BeaconState.hashTreeRoot - 32 full validator | 1.1237 ms/op | 1.0721 ms/op | 1.05 | | BeaconState.hashTreeRoot - 512 full validator | 11.951 ms/op | 14.460 ms/op | 0.83 | | BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 156.71 us/op | 161.74 us/op | 0.97 | | BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 2.5160 ms/op | 2.4683 ms/op | 1.02 | | BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 23.046 ms/op | 25.247 ms/op | 0.91 | | BeaconState.hashTreeRoot - 1 balances | 103.44 us/op | 103.76 us/op | 1.00 | | BeaconState.hashTreeRoot - 32 balances | 1.0406 ms/op | 1.4518 ms/op | 0.72 | | BeaconState.hashTreeRoot - 512 balances | 9.0647 ms/op | 9.8096 ms/op | 0.92 | | BeaconState.hashTreeRoot - 250000 balances | 185.64 ms/op | 186.78 ms/op | 0.99 | | aggregationBits - 2048 els - zipIndexesInBitList | 27.719 us/op | 31.803 us/op | 0.87 | | byteArrayEquals 32 | 62.959 ns/op | 58.200 ns/op | 1.08 | | Buffer.compare 32 | 51.200 ns/op | 52.358 ns/op | 0.98 | | byteArrayEquals 1024 | 1.7890 us/op | 1.7325 us/op | 1.03 | | Buffer.compare 1024 | 59.358 ns/op | 62.227 ns/op | 0.95 | | byteArrayEquals 16384 | 28.720 us/op | 27.618 us/op | 1.04 | | Buffer.compare 16384 | 258.39 ns/op | 252.49 ns/op | 1.02 | | byteArrayEquals 123687377 | 205.68 ms/op | 196.27 ms/op | 1.05 | | Buffer.compare 123687377 | 9.3031 ms/op | 8.0961 ms/op | 1.15 | | byteArrayEquals 32 - diff last byte | 57.990 ns/op | 53.400 ns/op | 1.09 | | Buffer.compare 32 - diff last byte | 51.495 ns/op | 47.230 ns/op | 1.09 | | byteArrayEquals 1024 - diff last byte | 1.8384 us/op | 1.6079 us/op | 1.14 | | Buffer.compare 1024 - diff last byte | 67.695 ns/op | 56.020 ns/op | 1.21 | | byteArrayEquals 16384 - diff last byte | 30.440 us/op | 25.853 us/op | 1.18 | | Buffer.compare 16384 - diff last byte | 301.97 ns/op | 250.56 ns/op | 1.21 | | byteArrayEquals 123687377 - diff last byte | 232.15 ms/op | 193.15 ms/op | 1.20 | | Buffer.compare 123687377 - diff last byte | 9.7322 ms/op | 7.3294 ms/op | 1.33 | | byteArrayEquals 32 - random bytes | 7.4680 ns/op | 5.4360 ns/op | 1.37 | | Buffer.compare 32 - random bytes | 51.405 ns/op | 48.696 ns/op | 1.06 | | byteArrayEquals 1024 - random bytes | 5.4680 ns/op | 5.2320 ns/op | 1.05 | | Buffer.compare 1024 - random bytes | 48.840 ns/op | 47.178 ns/op | 1.04 | | byteArrayEquals 16384 - random bytes | 5.5670 ns/op | 5.1980 ns/op | 1.07 | | Buffer.compare 16384 - random bytes | 49.878 ns/op | 46.831 ns/op | 1.07 | | byteArrayEquals 123687377 - random bytes | 6.9400 ns/op | 6.5500 ns/op | 1.06 | | Buffer.compare 123687377 - random bytes | 51.040 ns/op | 48.330 ns/op | 1.06 | | regular array get 100000 times | 39.252 us/op | 34.529 us/op | 1.14 | | wrappedArray get 100000 times | 43.212 us/op | 33.163 us/op | 1.30 | | arrayWithProxy get 100000 times | 14.463 ms/op | 13.856 ms/op | 1.04 | | ssz.Root.equals | 49.490 ns/op | 46.477 ns/op | 1.06 | | byteArrayEquals | 49.763 ns/op | 46.021 ns/op | 1.08 | | Buffer.compare | 11.492 ns/op | 10.719 ns/op | 1.07 | | shuffle list - 16384 els | 7.5522 ms/op | 6.6723 ms/op | 1.13 | | shuffle list - 250000 els | 110.32 ms/op | 97.445 ms/op | 1.13 | | processSlot - 1 slots | 15.548 us/op | 17.303 us/op | 0.90 | | processSlot - 32 slots | 3.5548 ms/op | 2.8729 ms/op | 1.24 | | getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 38.926 ms/op | 34.746 ms/op | 1.12 | | getCommitteeAssignments - req 1 vs - 250000 vc | 2.4262 ms/op | 2.2612 ms/op | 1.07 | | getCommitteeAssignments - req 100 vs - 250000 vc | 4.7322 ms/op | 4.3363 ms/op | 1.09 | | getCommitteeAssignments - req 1000 vs - 250000 vc | 4.7142 ms/op | 4.5972 ms/op | 1.03 | | findModifiedValidators - 10000 modified validators | 311.74 ms/op | 281.96 ms/op | 1.11 | | findModifiedValidators - 1000 modified validators | 216.50 ms/op | 177.21 ms/op | 1.22 | | findModifiedValidators - 100 modified validators | 215.56 ms/op | 193.84 ms/op | 1.11 | | findModifiedValidators - 10 modified validators | 202.54 ms/op | 176.08 ms/op | 1.15 | | findModifiedValidators - 1 modified validators | 181.93 ms/op | 188.97 ms/op | 0.96 | | findModifiedValidators - no difference | 191.69 ms/op | 165.16 ms/op | 1.16 | | compare ViewDUs | 3.4334 s/op | 3.0163 s/op | 1.14 | | compare each validator Uint8Array | 1.4799 s/op | 1.2934 s/op | 1.14 | | compare ViewDU to Uint8Array | 1.2285 s/op | 1.2452 s/op | 0.99 | | migrate state 1000000 validators, 24 modified, 0 new | 521.73 ms/op | 559.07 ms/op | 0.93 | | migrate state 1000000 validators, 1700 modified, 1000 new | 801.36 ms/op | 862.84 ms/op | 0.93 | | migrate state 1000000 validators, 3400 modified, 2000 new | 1.1887 s/op | 919.95 ms/op | 1.29 | | migrate state 1500000 validators, 24 modified, 0 new | 691.51 ms/op | 577.46 ms/op | 1.20 | | migrate state 1500000 validators, 1700 modified, 1000 new | 924.22 ms/op | 819.79 ms/op | 1.13 | | migrate state 1500000 validators, 3400 modified, 2000 new | 1.1689 s/op | 971.28 ms/op | 1.20 | | RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 5.0200 ns/op | 4.9400 ns/op | 1.02 | | state getBlockRootAtSlot - 250000 vs - 7PWei | 623.20 ns/op | 929.97 ns/op | 0.67 | | computeProposers - vc 250000 | 7.6486 ms/op | 8.3208 ms/op | 0.92 | | computeEpochShuffling - vc 250000 | 101.52 ms/op | 94.436 ms/op | 1.08 | | getNextSyncCommittee - vc 250000 | 131.17 ms/op | 148.82 ms/op | 0.88 | | computeSigningRoot for AttestationData | 23.299 us/op | 23.739 us/op | 0.98 | | hash AttestationData serialized data then Buffer.toString(base64) | 1.7427 us/op | 1.5761 us/op | 1.11 | | toHexString serialized data | 990.45 ns/op | 1.4616 us/op | 0.68 | | Buffer.toString(base64) | 197.65 ns/op | 277.38 ns/op | 0.71 |

by benchmarkbot/action

codecov[bot] commented 1 month ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 62.19%. Comparing base (95ce044) to head (7cf9a5c). Report is 7 commits behind head on unstable.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## unstable #6847 +/- ## ============================================ - Coverage 62.21% 62.19% -0.02% ============================================ Files 571 572 +1 Lines 60017 60043 +26 Branches 1975 1973 -2 ============================================ + Hits 37338 37345 +7 - Misses 22636 22655 +19 Partials 43 43 ```
wemeetagain commented 3 weeks ago

:tada: This PR is included in v1.19.0 :tada: