ChainSafe / lodestar

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

chore: enable nHistoricalStates e2e test #6867

Closed twoeths closed 3 months ago

twoeths commented 3 months ago

Motivation

Enable nHistoricalState e2e test

Description

part of #5968

codecov[bot] commented 3 months ago

Codecov Report

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

Project coverage is 62.19%. Comparing base (f6d3bce) to head (4312d15).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## unstable #6867 +/- ## ========================================= Coverage 62.19% 62.19% ========================================= Files 571 571 Lines 60099 60099 Branches 1978 1977 -1 ========================================= + Hits 37376 37377 +1 + Misses 22680 22679 -1 Partials 43 43 ```
github-actions[bot] commented 3 months ago

Performance Report

✔️ no performance regression detected

Full benchmark results | Benchmark suite | Current: de7b3308ad4f568b4046f533ff52b04e7b09d271 | Previous: f6d3bce80297023aaf890f201f5e94f1e701e46c | Ratio | |-|-|-|-| | getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 705.78 us/op | 437.23 us/op | 1.61 | | getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 45.155 us/op | 45.598 us/op | 0.99 | | BLS verify - blst-native | 1.1794 ms/op | 1.2364 ms/op | 0.95 | | BLS verifyMultipleSignatures 3 - blst-native | 2.5079 ms/op | 2.6262 ms/op | 0.95 | | BLS verifyMultipleSignatures 8 - blst-native | 5.5284 ms/op | 5.7950 ms/op | 0.95 | | BLS verifyMultipleSignatures 32 - blst-native | 20.322 ms/op | 21.259 ms/op | 0.96 | | BLS verifyMultipleSignatures 64 - blst-native | 39.999 ms/op | 41.856 ms/op | 0.96 | | BLS verifyMultipleSignatures 128 - blst-native | 79.362 ms/op | 83.166 ms/op | 0.95 | | BLS deserializing 10000 signatures | 841.79 ms/op | 865.99 ms/op | 0.97 | | BLS deserializing 100000 signatures | 8.4317 s/op | 8.6819 s/op | 0.97 | | BLS verifyMultipleSignatures - same message - 3 - blst-native | 1.1728 ms/op | 1.2617 ms/op | 0.93 | | BLS verifyMultipleSignatures - same message - 8 - blst-native | 1.3325 ms/op | 1.4281 ms/op | 0.93 | | BLS verifyMultipleSignatures - same message - 32 - blst-native | 2.0887 ms/op | 2.3466 ms/op | 0.89 | | BLS verifyMultipleSignatures - same message - 64 - blst-native | 3.6476 ms/op | 3.3842 ms/op | 1.08 | | BLS verifyMultipleSignatures - same message - 128 - blst-native | 5.1338 ms/op | 6.3080 ms/op | 0.81 | | BLS aggregatePubkeys 32 - blst-native | 23.667 us/op | 25.600 us/op | 0.92 | | BLS aggregatePubkeys 128 - blst-native | 91.966 us/op | 98.296 us/op | 0.94 | | notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 50.944 ms/op | 52.524 ms/op | 0.97 | | notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 45.335 ms/op | 49.313 ms/op | 0.92 | | notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 30.114 ms/op | 30.841 ms/op | 0.98 | | getSlashingsAndExits - default max | 90.704 us/op | 86.798 us/op | 1.05 | | getSlashingsAndExits - 2k | 251.44 us/op | 262.42 us/op | 0.96 | | proposeBlockBody type=full, size=empty | 5.3110 ms/op | 5.3879 ms/op | 0.99 | | isKnown best case - 1 super set check | 288.00 ns/op | 296.00 ns/op | 0.97 | | isKnown normal case - 2 super set checks | 274.00 ns/op | 283.00 ns/op | 0.97 | | isKnown worse case - 16 super set checks | 275.00 ns/op | 288.00 ns/op | 0.95 | | InMemoryCheckpointStateCache - add get delete | 4.7160 us/op | 4.5270 us/op | 1.04 | | validate api signedAggregateAndProof - struct | 2.5571 ms/op | 2.6922 ms/op | 0.95 | | validate gossip signedAggregateAndProof - struct | 2.5606 ms/op | 2.6615 ms/op | 0.96 | | validate gossip attestation - vc 640000 | 1.2407 ms/op | 1.2730 ms/op | 0.97 | | batch validate gossip attestation - vc 640000 - chunk 32 | 142.57 us/op | 148.92 us/op | 0.96 | | batch validate gossip attestation - vc 640000 - chunk 64 | 127.64 us/op | 131.35 us/op | 0.97 | | batch validate gossip attestation - vc 640000 - chunk 128 | 118.60 us/op | 121.28 us/op | 0.98 | | batch validate gossip attestation - vc 640000 - chunk 256 | 116.81 us/op | 117.85 us/op | 0.99 | | pickEth1Vote - no votes | 1.0016 ms/op | 1.0410 ms/op | 0.96 | | pickEth1Vote - max votes | 6.9782 ms/op | 7.5142 ms/op | 0.93 | | pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 14.558 ms/op | 15.522 ms/op | 0.94 | | pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 18.048 ms/op | 18.609 ms/op | 0.97 | | pickEth1Vote - Eth1Data fastSerialize value x2048 | 452.43 us/op | 507.22 us/op | 0.89 | | pickEth1Vote - Eth1Data fastSerialize tree x2048 | 6.0340 ms/op | 5.4166 ms/op | 1.11 | | bytes32 toHexString | 402.00 ns/op | 428.00 ns/op | 0.94 | | bytes32 Buffer.toString(hex) | 235.00 ns/op | 248.00 ns/op | 0.95 | | bytes32 Buffer.toString(hex) from Uint8Array | 341.00 ns/op | 347.00 ns/op | 0.98 | | bytes32 Buffer.toString(hex) + 0x | 236.00 ns/op | 247.00 ns/op | 0.96 | | Object access 1 prop | 0.12600 ns/op | 0.14200 ns/op | 0.89 | | Map access 1 prop | 0.12400 ns/op | 0.13600 ns/op | 0.91 | | Object get x1000 | 5.5280 ns/op | 5.9290 ns/op | 0.93 | | Map get x1000 | 6.0870 ns/op | 6.7710 ns/op | 0.90 | | Object set x1000 | 30.463 ns/op | 32.003 ns/op | 0.95 | | Map set x1000 | 20.655 ns/op | 21.918 ns/op | 0.94 | | Return object 10000 times | 0.27530 ns/op | 0.28940 ns/op | 0.95 | | Throw Error 10000 times | 3.2087 us/op | 3.3436 us/op | 0.96 | | fastMsgIdFn sha256 / 200 bytes | 2.0750 us/op | 2.1720 us/op | 0.96 | | fastMsgIdFn h32 xxhash / 200 bytes | 213.00 ns/op | 229.00 ns/op | 0.93 | | fastMsgIdFn h64 xxhash / 200 bytes | 257.00 ns/op | 270.00 ns/op | 0.95 | | fastMsgIdFn sha256 / 1000 bytes | 6.7680 us/op | 7.2060 us/op | 0.94 | | fastMsgIdFn h32 xxhash / 1000 bytes | 331.00 ns/op | 359.00 ns/op | 0.92 | | fastMsgIdFn h64 xxhash / 1000 bytes | 335.00 ns/op | 346.00 ns/op | 0.97 | | fastMsgIdFn sha256 / 10000 bytes | 60.597 us/op | 63.989 us/op | 0.95 | | fastMsgIdFn h32 xxhash / 10000 bytes | 1.7220 us/op | 1.7950 us/op | 0.96 | | fastMsgIdFn h64 xxhash / 10000 bytes | 1.1350 us/op | 1.1890 us/op | 0.95 | | send data - 1000 256B messages | 12.033 ms/op | 12.076 ms/op | 1.00 | | send data - 1000 512B messages | 16.109 ms/op | 16.345 ms/op | 0.99 | | send data - 1000 1024B messages | 25.542 ms/op | 25.663 ms/op | 1.00 | | send data - 1000 1200B messages | 25.897 ms/op | 26.256 ms/op | 0.99 | | send data - 1000 2048B messages | 31.716 ms/op | 31.082 ms/op | 1.02 | | send data - 1000 4096B messages | 30.409 ms/op | 31.245 ms/op | 0.97 | | send data - 1000 16384B messages | 69.624 ms/op | 68.924 ms/op | 1.01 | | send data - 1000 65536B messages | 207.32 ms/op | 209.24 ms/op | 0.99 | | enrSubnets - fastDeserialize 64 bits | 1.0500 us/op | 1.0990 us/op | 0.96 | | enrSubnets - ssz BitVector 64 bits | 349.00 ns/op | 356.00 ns/op | 0.98 | | enrSubnets - fastDeserialize 4 bits | 139.00 ns/op | 149.00 ns/op | 0.93 | | enrSubnets - ssz BitVector 4 bits | 345.00 ns/op | 356.00 ns/op | 0.97 | | prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 140.76 us/op | 145.26 us/op | 0.97 | | prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 154.91 us/op | 161.54 us/op | 0.96 | | prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 244.21 us/op | 263.32 us/op | 0.93 | | prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 383.90 us/op | 388.34 us/op | 0.99 | | prioritizePeers score 0:0 att 64-1 sync 4-1 | 574.04 us/op | 573.15 us/op | 1.00 | | array of 16000 items push then shift | 1.5635 us/op | 1.6185 us/op | 0.97 | | LinkedList of 16000 items push then shift | 6.7830 ns/op | 7.1390 ns/op | 0.95 | | array of 16000 items push then pop | 109.50 ns/op | 105.99 ns/op | 1.03 | | LinkedList of 16000 items push then pop | 6.5790 ns/op | 6.9530 ns/op | 0.95 | | array of 24000 items push then shift | 2.2748 us/op | 2.3856 us/op | 0.95 | | LinkedList of 24000 items push then shift | 6.8790 ns/op | 7.1220 ns/op | 0.97 | | array of 24000 items push then pop | 130.54 ns/op | 130.44 ns/op | 1.00 | | LinkedList of 24000 items push then pop | 6.7050 ns/op | 6.9330 ns/op | 0.97 | | intersect bitArray bitLen 8 | 6.4030 ns/op | 6.4760 ns/op | 0.99 | | intersect array and set length 8 | 45.405 ns/op | 46.424 ns/op | 0.98 | | intersect bitArray bitLen 128 | 28.577 ns/op | 30.410 ns/op | 0.94 | | intersect array and set length 128 | 694.41 ns/op | 674.88 ns/op | 1.03 | | bitArray.getTrueBitIndexes() bitLen 128 | 1.8770 us/op | 1.8290 us/op | 1.03 | | bitArray.getTrueBitIndexes() bitLen 248 | 2.6800 us/op | 3.4320 us/op | 0.78 | | bitArray.getTrueBitIndexes() bitLen 512 | 6.0800 us/op | 6.3250 us/op | 0.96 | | Buffer.concat 32 items | 854.00 ns/op | 1.0040 us/op | 0.85 | | Uint8Array.set 32 items | 1.3680 us/op | 1.6220 us/op | 0.84 | | Buffer.copy | 1.7620 us/op | 1.8650 us/op | 0.94 | | Uint8Array.set - with subarray | 2.6280 us/op | 2.5360 us/op | 1.04 | | Uint8Array.set - without subarray | 1.5360 us/op | 1.5370 us/op | 1.00 | | Set add up to 64 items then delete first | 2.2036 us/op | 2.2738 us/op | 0.97 | | OrderedSet add up to 64 items then delete first | 3.2718 us/op | 3.2732 us/op | 1.00 | | Set add up to 64 items then delete last | 2.4660 us/op | 2.4468 us/op | 1.01 | | OrderedSet add up to 64 items then delete last | 3.8449 us/op | 3.7159 us/op | 1.03 | | Set add up to 64 items then delete middle | 2.5932 us/op | 2.6005 us/op | 1.00 | | OrderedSet add up to 64 items then delete middle | 5.2445 us/op | 5.2622 us/op | 1.00 | | Set add up to 128 items then delete first | 5.0346 us/op | 5.3942 us/op | 0.93 | | OrderedSet add up to 128 items then delete first | 7.6535 us/op | 8.4613 us/op | 0.90 | | Set add up to 128 items then delete last | 5.0487 us/op | 5.1035 us/op | 0.99 | | OrderedSet add up to 128 items then delete last | 7.4178 us/op | 7.4257 us/op | 1.00 | | Set add up to 128 items then delete middle | 5.0485 us/op | 4.8495 us/op | 1.04 | | OrderedSet add up to 128 items then delete middle | 14.239 us/op | 13.555 us/op | 1.05 | | Set add up to 256 items then delete first | 10.451 us/op | 10.311 us/op | 1.01 | | OrderedSet add up to 256 items then delete first | 16.088 us/op | 16.243 us/op | 0.99 | | Set add up to 256 items then delete last | 10.002 us/op | 9.9024 us/op | 1.01 | | OrderedSet add up to 256 items then delete last | 14.762 us/op | 15.398 us/op | 0.96 | | Set add up to 256 items then delete middle | 9.8952 us/op | 9.4761 us/op | 1.04 | | OrderedSet add up to 256 items then delete middle | 41.482 us/op | 40.874 us/op | 1.01 | | transfer serialized Status (84 B) | 1.3520 us/op | 1.3200 us/op | 1.02 | | copy serialized Status (84 B) | 1.0780 us/op | 1.0670 us/op | 1.01 | | transfer serialized SignedVoluntaryExit (112 B) | 1.4230 us/op | 1.4100 us/op | 1.01 | | copy serialized SignedVoluntaryExit (112 B) | 1.1290 us/op | 1.1360 us/op | 0.99 | | transfer serialized ProposerSlashing (416 B) | 1.8440 us/op | 1.8180 us/op | 1.01 | | copy serialized ProposerSlashing (416 B) | 1.5490 us/op | 1.7270 us/op | 0.90 | | transfer serialized Attestation (485 B) | 1.9530 us/op | 2.0400 us/op | 0.96 | | copy serialized Attestation (485 B) | 1.6230 us/op | 1.5100 us/op | 1.07 | | transfer serialized AttesterSlashing (33232 B) | 1.8790 us/op | 2.0600 us/op | 0.91 | | copy serialized AttesterSlashing (33232 B) | 4.7770 us/op | 4.7460 us/op | 1.01 | | transfer serialized Small SignedBeaconBlock (128000 B) | 2.9280 us/op | 2.3990 us/op | 1.22 | | copy serialized Small SignedBeaconBlock (128000 B) | 15.362 us/op | 14.611 us/op | 1.05 | | transfer serialized Avg SignedBeaconBlock (200000 B) | 3.1660 us/op | 2.5990 us/op | 1.22 | | copy serialized Avg SignedBeaconBlock (200000 B) | 21.928 us/op | 19.612 us/op | 1.12 | | transfer serialized BlobsSidecar (524380 B) | 2.9010 us/op | 2.7050 us/op | 1.07 | | copy serialized BlobsSidecar (524380 B) | 129.76 us/op | 195.29 us/op | 0.66 | | transfer serialized Big SignedBeaconBlock (1000000 B) | 2.8190 us/op | 2.5690 us/op | 1.10 | | copy serialized Big SignedBeaconBlock (1000000 B) | 164.95 us/op | 133.33 us/op | 1.24 | | pass gossip attestations to forkchoice per slot | 3.0269 ms/op | 3.0969 ms/op | 0.98 | | forkChoice updateHead vc 100000 bc 64 eq 0 | 491.54 us/op | 503.51 us/op | 0.98 | | forkChoice updateHead vc 600000 bc 64 eq 0 | 3.0774 ms/op | 3.0522 ms/op | 1.01 | | forkChoice updateHead vc 1000000 bc 64 eq 0 | 5.2300 ms/op | 5.1607 ms/op | 1.01 | | forkChoice updateHead vc 600000 bc 320 eq 0 | 2.9564 ms/op | 3.0994 ms/op | 0.95 | | forkChoice updateHead vc 600000 bc 1200 eq 0 | 3.1058 ms/op | 3.1527 ms/op | 0.99 | | forkChoice updateHead vc 600000 bc 7200 eq 0 | 3.5487 ms/op | 3.5698 ms/op | 0.99 | | forkChoice updateHead vc 600000 bc 64 eq 1000 | 10.605 ms/op | 11.294 ms/op | 0.94 | | forkChoice updateHead vc 600000 bc 64 eq 10000 | 10.434 ms/op | 11.405 ms/op | 0.91 | | forkChoice updateHead vc 600000 bc 64 eq 300000 | 15.008 ms/op | 14.888 ms/op | 1.01 | | computeDeltas 500000 validators 300 proto nodes | 3.4120 ms/op | 3.4913 ms/op | 0.98 | | computeDeltas 500000 validators 1200 proto nodes | 3.5101 ms/op | 3.5217 ms/op | 1.00 | | computeDeltas 500000 validators 7200 proto nodes | 3.5294 ms/op | 3.4650 ms/op | 1.02 | | computeDeltas 750000 validators 300 proto nodes | 5.2368 ms/op | 5.1907 ms/op | 1.01 | | computeDeltas 750000 validators 1200 proto nodes | 5.2605 ms/op | 5.0985 ms/op | 1.03 | | computeDeltas 750000 validators 7200 proto nodes | 5.2235 ms/op | 5.1138 ms/op | 1.02 | | computeDeltas 1400000 validators 300 proto nodes | 9.7553 ms/op | 9.6697 ms/op | 1.01 | | computeDeltas 1400000 validators 1200 proto nodes | 9.6748 ms/op | 9.5734 ms/op | 1.01 | | computeDeltas 1400000 validators 7200 proto nodes | 9.6340 ms/op | 9.5305 ms/op | 1.01 | | computeDeltas 2100000 validators 300 proto nodes | 14.524 ms/op | 14.375 ms/op | 1.01 | | computeDeltas 2100000 validators 1200 proto nodes | 14.580 ms/op | 14.643 ms/op | 1.00 | | computeDeltas 2100000 validators 7200 proto nodes | 14.740 ms/op | 14.482 ms/op | 1.02 | | altair processAttestation - 250000 vs - 7PWei normalcase | 1.6327 ms/op | 1.6363 ms/op | 1.00 | | altair processAttestation - 250000 vs - 7PWei worstcase | 2.4753 ms/op | 2.4593 ms/op | 1.01 | | altair processAttestation - setStatus - 1/6 committees join | 86.613 us/op | 84.204 us/op | 1.03 | | altair processAttestation - setStatus - 1/3 committees join | 173.39 us/op | 169.63 us/op | 1.02 | | altair processAttestation - setStatus - 1/2 committees join | 245.05 us/op | 240.32 us/op | 1.02 | | altair processAttestation - setStatus - 2/3 committees join | 322.62 us/op | 317.10 us/op | 1.02 | | altair processAttestation - setStatus - 4/5 committees join | 468.63 us/op | 459.19 us/op | 1.02 | | altair processAttestation - setStatus - 100% committees join | 550.78 us/op | 551.53 us/op | 1.00 | | altair processBlock - 250000 vs - 7PWei normalcase | 3.9192 ms/op | 3.3260 ms/op | 1.18 | | altair processBlock - 250000 vs - 7PWei normalcase hashState | 21.989 ms/op | 25.603 ms/op | 0.86 | | altair processBlock - 250000 vs - 7PWei worstcase | 38.431 ms/op | 38.902 ms/op | 0.99 | | altair processBlock - 250000 vs - 7PWei worstcase hashState | 73.749 ms/op | 77.824 ms/op | 0.95 | | phase0 processBlock - 250000 vs - 7PWei normalcase | 1.6546 ms/op | 1.7408 ms/op | 0.95 | | phase0 processBlock - 250000 vs - 7PWei worstcase | 25.964 ms/op | 26.447 ms/op | 0.98 | | altair processEth1Data - 250000 vs - 7PWei normalcase | 287.91 us/op | 285.63 us/op | 1.01 | | getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 4.9980 us/op | 5.1000 us/op | 0.98 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 20.684 us/op | 17.372 us/op | 1.19 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 7.4850 us/op | 7.3090 us/op | 1.02 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 5.2540 us/op | 5.2740 us/op | 1.00 | | getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 83.075 us/op | 71.142 us/op | 1.17 | | getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 689.30 us/op | 659.50 us/op | 1.05 | | getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 889.66 us/op | 919.78 us/op | 0.97 | | getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 834.55 us/op | 882.51 us/op | 0.95 | | getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 2.3109 ms/op | 2.0678 ms/op | 1.12 | | getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 1.5360 ms/op | 1.5872 ms/op | 0.97 | | getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 3.7705 ms/op | 3.4745 ms/op | 1.09 | | Tree 40 250000 create | 220.47 ms/op | 226.08 ms/op | 0.98 | | Tree 40 250000 get(125000) | 139.89 ns/op | 142.21 ns/op | 0.98 | | Tree 40 250000 set(125000) | 706.21 ns/op | 626.82 ns/op | 1.13 | | Tree 40 250000 toArray() | 15.115 ms/op | 14.612 ms/op | 1.03 | | Tree 40 250000 iterate all - toArray() + loop | 15.354 ms/op | 14.818 ms/op | 1.04 | | Tree 40 250000 iterate all - get(i) | 50.793 ms/op | 50.057 ms/op | 1.01 | | MutableVector 250000 create | 7.0524 ms/op | 8.8068 ms/op | 0.80 | | MutableVector 250000 get(125000) | 6.1830 ns/op | 6.1020 ns/op | 1.01 | | MutableVector 250000 set(125000) | 192.92 ns/op | 200.48 ns/op | 0.96 | | MutableVector 250000 toArray() | 3.4187 ms/op | 3.5648 ms/op | 0.96 | | MutableVector 250000 iterate all - toArray() + loop | 3.5453 ms/op | 3.7118 ms/op | 0.96 | | MutableVector 250000 iterate all - get(i) | 1.6769 ms/op | 1.6437 ms/op | 1.02 | | Array 250000 create | 2.9827 ms/op | 3.0178 ms/op | 0.99 | | Array 250000 clone - spread | 1.4558 ms/op | 1.5576 ms/op | 0.93 | | Array 250000 get(125000) | 0.41500 ns/op | 0.41100 ns/op | 1.01 | | Array 250000 set(125000) | 0.43500 ns/op | 0.42900 ns/op | 1.01 | | Array 250000 iterate all - loop | 82.713 us/op | 107.26 us/op | 0.77 | | effectiveBalanceIncrements clone Uint8Array 300000 | 27.719 us/op | 29.851 us/op | 0.93 | | effectiveBalanceIncrements clone MutableVector 300000 | 128.00 ns/op | 127.00 ns/op | 1.01 | | effectiveBalanceIncrements rw all Uint8Array 300000 | 199.86 us/op | 198.73 us/op | 1.01 | | effectiveBalanceIncrements rw all MutableVector 300000 | 65.842 ms/op | 68.041 ms/op | 0.97 | | phase0 afterProcessEpoch - 250000 vs - 7PWei | 88.105 ms/op | 83.048 ms/op | 1.06 | | phase0 beforeProcessEpoch - 250000 vs - 7PWei | 39.860 ms/op | 31.003 ms/op | 1.29 | | altair processEpoch - mainnet_e81889 | 360.40 ms/op | 366.70 ms/op | 0.98 | | mainnet_e81889 - altair beforeProcessEpoch | 64.851 ms/op | 63.927 ms/op | 1.01 | | mainnet_e81889 - altair processJustificationAndFinalization | 12.968 us/op | 12.420 us/op | 1.04 | | mainnet_e81889 - altair processInactivityUpdates | 5.5641 ms/op | 5.3669 ms/op | 1.04 | | mainnet_e81889 - altair processRewardsAndPenalties | 34.853 ms/op | 43.752 ms/op | 0.80 | | mainnet_e81889 - altair processRegistryUpdates | 1.8020 us/op | 1.9120 us/op | 0.94 | | mainnet_e81889 - altair processSlashings | 384.00 ns/op | 357.00 ns/op | 1.08 | | mainnet_e81889 - altair processEth1DataReset | 301.00 ns/op | 323.00 ns/op | 0.93 | | mainnet_e81889 - altair processEffectiveBalanceUpdates | 1.1274 ms/op | 1.0533 ms/op | 1.07 | | mainnet_e81889 - altair processSlashingsReset | 3.0510 us/op | 3.9660 us/op | 0.77 | | mainnet_e81889 - altair processRandaoMixesReset | 3.7720 us/op | 4.0530 us/op | 0.93 | | mainnet_e81889 - altair processHistoricalRootsUpdate | 695.00 ns/op | 500.00 ns/op | 1.39 | | mainnet_e81889 - altair processParticipationFlagUpdates | 1.7500 us/op | 1.7700 us/op | 0.99 | | mainnet_e81889 - altair processSyncCommitteeUpdates | 425.00 ns/op | 385.00 ns/op | 1.10 | | mainnet_e81889 - altair afterProcessEpoch | 92.933 ms/op | 91.269 ms/op | 1.02 | | capella processEpoch - mainnet_e217614 | 1.1722 s/op | 1.2545 s/op | 0.93 | | mainnet_e217614 - capella beforeProcessEpoch | 242.03 ms/op | 236.64 ms/op | 1.02 | | mainnet_e217614 - capella processJustificationAndFinalization | 13.749 us/op | 13.504 us/op | 1.02 | | mainnet_e217614 - capella processInactivityUpdates | 16.221 ms/op | 15.848 ms/op | 1.02 | | mainnet_e217614 - capella processRewardsAndPenalties | 233.70 ms/op | 237.27 ms/op | 0.98 | | mainnet_e217614 - capella processRegistryUpdates | 13.248 us/op | 12.729 us/op | 1.04 | | mainnet_e217614 - capella processSlashings | 498.00 ns/op | 336.00 ns/op | 1.48 | | mainnet_e217614 - capella processEth1DataReset | 278.00 ns/op | 352.00 ns/op | 0.79 | | mainnet_e217614 - capella processEffectiveBalanceUpdates | 11.112 ms/op | 4.8556 ms/op | 2.29 | | mainnet_e217614 - capella processSlashingsReset | 5.7720 us/op | 2.8540 us/op | 2.02 | | mainnet_e217614 - capella processRandaoMixesReset | 4.5790 us/op | 4.3130 us/op | 1.06 | | mainnet_e217614 - capella processHistoricalRootsUpdate | 497.00 ns/op | 374.00 ns/op | 1.33 | | mainnet_e217614 - capella processParticipationFlagUpdates | 1.6680 us/op | 2.7090 us/op | 0.62 | | mainnet_e217614 - capella afterProcessEpoch | 243.40 ms/op | 227.19 ms/op | 1.07 | | phase0 processEpoch - mainnet_e58758 | 371.61 ms/op | 363.08 ms/op | 1.02 | | mainnet_e58758 - phase0 beforeProcessEpoch | 107.98 ms/op | 110.05 ms/op | 0.98 | | mainnet_e58758 - phase0 processJustificationAndFinalization | 12.907 us/op | 13.711 us/op | 0.94 | | mainnet_e58758 - phase0 processRewardsAndPenalties | 21.579 ms/op | 30.215 ms/op | 0.71 | | mainnet_e58758 - phase0 processRegistryUpdates | 8.1090 us/op | 7.5050 us/op | 1.08 | | mainnet_e58758 - phase0 processSlashings | 288.00 ns/op | 292.00 ns/op | 0.99 | | mainnet_e58758 - phase0 processEth1DataReset | 301.00 ns/op | 295.00 ns/op | 1.02 | | mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 949.60 us/op | 936.03 us/op | 1.01 | | mainnet_e58758 - phase0 processSlashingsReset | 2.5110 us/op | 2.8560 us/op | 0.88 | | mainnet_e58758 - phase0 processRandaoMixesReset | 3.5790 us/op | 3.3800 us/op | 1.06 | | mainnet_e58758 - phase0 processHistoricalRootsUpdate | 342.00 ns/op | 339.00 ns/op | 1.01 | | mainnet_e58758 - phase0 processParticipationRecordUpdates | 2.6750 us/op | 2.5390 us/op | 1.05 | | mainnet_e58758 - phase0 afterProcessEpoch | 75.825 ms/op | 76.070 ms/op | 1.00 | | phase0 processEffectiveBalanceUpdates - 250000 normalcase | 1.0911 ms/op | 1.5165 ms/op | 0.72 | | phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 1.9390 ms/op | 2.0190 ms/op | 0.96 | | altair processInactivityUpdates - 250000 normalcase | 14.469 ms/op | 16.041 ms/op | 0.90 | | altair processInactivityUpdates - 250000 worstcase | 15.293 ms/op | 16.713 ms/op | 0.92 | | phase0 processRegistryUpdates - 250000 normalcase | 5.9800 us/op | 5.7490 us/op | 1.04 | | phase0 processRegistryUpdates - 250000 badcase_full_deposits | 233.32 us/op | 228.62 us/op | 1.02 | | phase0 processRegistryUpdates - 250000 worstcase 0.5 | 102.13 ms/op | 100.61 ms/op | 1.02 | | altair processRewardsAndPenalties - 250000 normalcase | 38.203 ms/op | 39.287 ms/op | 0.97 | | altair processRewardsAndPenalties - 250000 worstcase | 38.248 ms/op | 35.754 ms/op | 1.07 | | phase0 getAttestationDeltas - 250000 normalcase | 6.7396 ms/op | 7.1623 ms/op | 0.94 | | phase0 getAttestationDeltas - 250000 worstcase | 7.0879 ms/op | 6.8960 ms/op | 1.03 | | phase0 processSlashings - 250000 worstcase | 76.409 us/op | 77.847 us/op | 0.98 | | altair processSyncCommitteeUpdates - 250000 | 123.81 ms/op | 121.35 ms/op | 1.02 | | BeaconState.hashTreeRoot - No change | 261.00 ns/op | 278.00 ns/op | 0.94 | | BeaconState.hashTreeRoot - 1 full validator | 136.97 us/op | 126.72 us/op | 1.08 | | BeaconState.hashTreeRoot - 32 full validator | 1.4978 ms/op | 1.3585 ms/op | 1.10 | | BeaconState.hashTreeRoot - 512 full validator | 13.447 ms/op | 14.307 ms/op | 0.94 | | BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 141.17 us/op | 121.69 us/op | 1.16 | | BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 1.8810 ms/op | 1.6098 ms/op | 1.17 | | BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 22.655 ms/op | 22.730 ms/op | 1.00 | | BeaconState.hashTreeRoot - 1 balances | 114.14 us/op | 112.80 us/op | 1.01 | | BeaconState.hashTreeRoot - 32 balances | 1.1974 ms/op | 1.1711 ms/op | 1.02 | | BeaconState.hashTreeRoot - 512 balances | 10.292 ms/op | 10.947 ms/op | 0.94 | | BeaconState.hashTreeRoot - 250000 balances | 191.06 ms/op | 181.47 ms/op | 1.05 | | aggregationBits - 2048 els - zipIndexesInBitList | 22.511 us/op | 22.387 us/op | 1.01 | | byteArrayEquals 32 | 53.205 ns/op | 51.585 ns/op | 1.03 | | Buffer.compare 32 | 44.801 ns/op | 43.624 ns/op | 1.03 | | byteArrayEquals 1024 | 1.5731 us/op | 1.5263 us/op | 1.03 | | Buffer.compare 1024 | 53.285 ns/op | 50.653 ns/op | 1.05 | | byteArrayEquals 16384 | 25.024 us/op | 24.305 us/op | 1.03 | | Buffer.compare 16384 | 242.43 ns/op | 237.79 ns/op | 1.02 | | byteArrayEquals 123687377 | 188.36 ms/op | 183.50 ms/op | 1.03 | | Buffer.compare 123687377 | 6.0304 ms/op | 6.0234 ms/op | 1.00 | | byteArrayEquals 32 - diff last byte | 52.108 ns/op | 50.493 ns/op | 1.03 | | Buffer.compare 32 - diff last byte | 49.492 ns/op | 47.045 ns/op | 1.05 | | byteArrayEquals 1024 - diff last byte | 1.5651 us/op | 1.5264 us/op | 1.03 | | Buffer.compare 1024 - diff last byte | 53.790 ns/op | 52.418 ns/op | 1.03 | | byteArrayEquals 16384 - diff last byte | 24.939 us/op | 24.291 us/op | 1.03 | | Buffer.compare 16384 - diff last byte | 231.80 ns/op | 232.56 ns/op | 1.00 | | byteArrayEquals 123687377 - diff last byte | 188.13 ms/op | 188.41 ms/op | 1.00 | | Buffer.compare 123687377 - diff last byte | 6.0835 ms/op | 6.0995 ms/op | 1.00 | | byteArrayEquals 32 - random bytes | 5.0850 ns/op | 5.1090 ns/op | 1.00 | | Buffer.compare 32 - random bytes | 47.627 ns/op | 47.362 ns/op | 1.01 | | byteArrayEquals 1024 - random bytes | 5.1070 ns/op | 5.0890 ns/op | 1.00 | | Buffer.compare 1024 - random bytes | 45.678 ns/op | 45.510 ns/op | 1.00 | | byteArrayEquals 16384 - random bytes | 5.0770 ns/op | 5.0910 ns/op | 1.00 | | Buffer.compare 16384 - random bytes | 46.019 ns/op | 45.615 ns/op | 1.01 | | byteArrayEquals 123687377 - random bytes | 6.3800 ns/op | 6.4800 ns/op | 0.98 | | Buffer.compare 123687377 - random bytes | 47.010 ns/op | 47.040 ns/op | 1.00 | | regular array get 100000 times | 32.667 us/op | 43.336 us/op | 0.75 | | wrappedArray get 100000 times | 42.584 us/op | 32.542 us/op | 1.31 | | arrayWithProxy get 100000 times | 12.638 ms/op | 13.244 ms/op | 0.95 | | ssz.Root.equals | 47.024 ns/op | 45.598 ns/op | 1.03 | | byteArrayEquals | 44.943 ns/op | 45.036 ns/op | 1.00 | | Buffer.compare | 10.237 ns/op | 10.231 ns/op | 1.00 | | shuffle list - 16384 els | 6.2602 ms/op | 6.2584 ms/op | 1.00 | | shuffle list - 250000 els | 91.993 ms/op | 91.626 ms/op | 1.00 | | processSlot - 1 slots | 13.876 us/op | 12.946 us/op | 1.07 | | processSlot - 32 slots | 3.3615 ms/op | 3.1327 ms/op | 1.07 | | getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 37.681 ms/op | 37.518 ms/op | 1.00 | | getCommitteeAssignments - req 1 vs - 250000 vc | 2.1471 ms/op | 2.1545 ms/op | 1.00 | | getCommitteeAssignments - req 100 vs - 250000 vc | 4.1038 ms/op | 4.1512 ms/op | 0.99 | | getCommitteeAssignments - req 1000 vs - 250000 vc | 4.3713 ms/op | 4.4712 ms/op | 0.98 | | findModifiedValidators - 10000 modified validators | 246.51 ms/op | 239.38 ms/op | 1.03 | | findModifiedValidators - 1000 modified validators | 165.88 ms/op | 175.03 ms/op | 0.95 | | findModifiedValidators - 100 modified validators | 150.72 ms/op | 160.00 ms/op | 0.94 | | findModifiedValidators - 10 modified validators | 143.59 ms/op | 157.60 ms/op | 0.91 | | findModifiedValidators - 1 modified validators | 147.16 ms/op | 149.14 ms/op | 0.99 | | findModifiedValidators - no difference | 145.25 ms/op | 154.94 ms/op | 0.94 | | compare ViewDUs | 2.9344 s/op | 2.9386 s/op | 1.00 | | compare each validator Uint8Array | 1.6485 s/op | 1.5263 s/op | 1.08 | | compare ViewDU to Uint8Array | 1.0092 s/op | 1.0231 s/op | 0.99 | | migrate state 1000000 validators, 24 modified, 0 new | 594.80 ms/op | 586.24 ms/op | 1.01 | | migrate state 1000000 validators, 1700 modified, 1000 new | 819.83 ms/op | 825.28 ms/op | 0.99 | | migrate state 1000000 validators, 3400 modified, 2000 new | 1.0218 s/op | 1.0262 s/op | 1.00 | | migrate state 1500000 validators, 24 modified, 0 new | 579.83 ms/op | 590.49 ms/op | 0.98 | | migrate state 1500000 validators, 1700 modified, 1000 new | 783.76 ms/op | 838.99 ms/op | 0.93 | | migrate state 1500000 validators, 3400 modified, 2000 new | 952.06 ms/op | 1.0279 s/op | 0.93 | | RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 4.3100 ns/op | 4.4100 ns/op | 0.98 | | state getBlockRootAtSlot - 250000 vs - 7PWei | 479.65 ns/op | 700.08 ns/op | 0.69 | | computeProposers - vc 250000 | 7.1241 ms/op | 7.5503 ms/op | 0.94 | | computeEpochShuffling - vc 250000 | 94.664 ms/op | 90.922 ms/op | 1.04 | | getNextSyncCommittee - vc 250000 | 117.97 ms/op | 128.01 ms/op | 0.92 | | computeSigningRoot for AttestationData | 20.410 us/op | 22.777 us/op | 0.90 | | hash AttestationData serialized data then Buffer.toString(base64) | 1.5341 us/op | 1.4687 us/op | 1.04 | | toHexString serialized data | 902.32 ns/op | 860.22 ns/op | 1.05 | | Buffer.toString(base64) | 185.39 ns/op | 169.29 ns/op | 1.10 |

by benchmarkbot/action

wemeetagain commented 2 months ago

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