ChainSafe / lodestar

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

chore: v1.21.0 release #6988

Closed philknows closed 1 month ago

philknows commented 2 months ago

Motivation

v1.21.0 release at https://github.com/ChainSafe/lodestar/commit/2f9275ec13d12b37ed54884642bc628592b6ec78

Cherrypicked: 3fb7f60609ba2e513f39b94bb9d879022e207da8 for rc.1

Added: https://github.com/ChainSafe/lodestar/pull/6988/commits/76a32dd22286e4377c5ef15ae71bb40d44734df0 for rc.2

Cherrypicked: be03ef1429c78cb6a002f73367d1f57d997a2508 for rc.2

codecov[bot] commented 2 months ago

Codecov Report

Attention: Patch coverage is 39.89362% with 226 lines in your changes missing coverage. Please review.

Project coverage is 62.48%. Comparing base (115118c) to head (393e63c).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## stable #6988 +/- ## ========================================== - Coverage 62.54% 62.48% -0.07% ========================================== Files 575 576 +1 Lines 61077 61208 +131 Branches 2132 2141 +9 ========================================== + Hits 38203 38246 +43 - Misses 22834 22923 +89 + Partials 40 39 -1 ```
github-actions[bot] commented 2 months ago

Performance Report

✔️ no performance regression detected

Full benchmark results | Benchmark suite | Current: c48b1a16c7c2cc559ccfc567fe638de4e2f69d8f | Previous: - | Ratio | |-|-|-|-| | getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 2.3242 ms/op | | getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 72.081 us/op | | BLS verify - blst | 1.1024 ms/op | | BLS verifyMultipleSignatures 3 - blst | 1.3965 ms/op | | BLS verifyMultipleSignatures 8 - blst | 2.4684 ms/op | | BLS verifyMultipleSignatures 32 - blst | 5.9543 ms/op | | BLS verifyMultipleSignatures 64 - blst | 10.944 ms/op | | BLS verifyMultipleSignatures 128 - blst | 18.303 ms/op | | BLS deserializing 10000 signatures | 710.77 ms/op | | BLS deserializing 100000 signatures | 7.1209 s/op | | BLS verifyMultipleSignatures - same message - 3 - blst | 1.1801 ms/op | | BLS verifyMultipleSignatures - same message - 8 - blst | 1.3099 ms/op | | BLS verifyMultipleSignatures - same message - 32 - blst | 1.9214 ms/op | | BLS verifyMultipleSignatures - same message - 64 - blst | 2.8779 ms/op | | BLS verifyMultipleSignatures - same message - 128 - blst | 5.0875 ms/op | | BLS aggregatePubkeys 32 - blst | 21.187 us/op | | BLS aggregatePubkeys 128 - blst | 77.402 us/op | | notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 76.865 ms/op | | notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 76.229 ms/op | | notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 52.170 ms/op | | getSlashingsAndExits - default max | 320.21 us/op | | getSlashingsAndExits - 2k | 558.78 us/op | | proposeBlockBody type=full, size=empty | 7.4333 ms/op | | isKnown best case - 1 super set check | 906.00 ns/op | | isKnown normal case - 2 super set checks | 821.00 ns/op | | isKnown worse case - 16 super set checks | 876.00 ns/op | | InMemoryCheckpointStateCache - add get delete | 9.9210 us/op | | validate api signedAggregateAndProof - struct | 2.0656 ms/op | | validate gossip signedAggregateAndProof - struct | 2.1897 ms/op | | validate gossip attestation - vc 640000 | 1.3416 ms/op | | batch validate gossip attestation - vc 640000 - chunk 32 | 185.85 us/op | | batch validate gossip attestation - vc 640000 - chunk 64 | 150.05 us/op | | batch validate gossip attestation - vc 640000 - chunk 128 | 140.19 us/op | | batch validate gossip attestation - vc 640000 - chunk 256 | 131.62 us/op | | pickEth1Vote - no votes | 1.3629 ms/op | | pickEth1Vote - max votes | 12.851 ms/op | | pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 18.040 ms/op | | pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 29.383 ms/op | | pickEth1Vote - Eth1Data fastSerialize value x2048 | 662.10 us/op | | pickEth1Vote - Eth1Data fastSerialize tree x2048 | 6.1521 ms/op | | bytes32 toHexString | 864.00 ns/op | | bytes32 Buffer.toString(hex) | 313.00 ns/op | | bytes32 Buffer.toString(hex) from Uint8Array | 549.00 ns/op | | bytes32 Buffer.toString(hex) + 0x | 356.00 ns/op | | Object access 1 prop | 0.23800 ns/op | | Map access 1 prop | 0.15300 ns/op | | Object get x1000 | 6.5850 ns/op | | Map get x1000 | 8.1340 ns/op | | Object set x1000 | 67.807 ns/op | | Map set x1000 | 45.668 ns/op | | Return object 10000 times | 0.35050 ns/op | | Throw Error 10000 times | 3.8245 us/op | | fastMsgIdFn sha256 / 200 bytes | 2.6230 us/op | | fastMsgIdFn h32 xxhash / 200 bytes | 371.00 ns/op | | fastMsgIdFn h64 xxhash / 200 bytes | 325.00 ns/op | | fastMsgIdFn sha256 / 1000 bytes | 8.0690 us/op | | fastMsgIdFn h32 xxhash / 1000 bytes | 478.00 ns/op | | fastMsgIdFn h64 xxhash / 1000 bytes | 380.00 ns/op | | fastMsgIdFn sha256 / 10000 bytes | 69.406 us/op | | fastMsgIdFn h32 xxhash / 10000 bytes | 2.0560 us/op | | fastMsgIdFn h64 xxhash / 10000 bytes | 1.3200 us/op | | send data - 1000 256B messages | 18.212 ms/op | | send data - 1000 512B messages | 22.724 ms/op | | send data - 1000 1024B messages | 32.533 ms/op | | send data - 1000 1200B messages | 34.440 ms/op | | send data - 1000 2048B messages | 40.117 ms/op | | send data - 1000 4096B messages | 45.078 ms/op | | send data - 1000 16384B messages | 120.12 ms/op | | send data - 1000 65536B messages | 328.64 ms/op | | enrSubnets - fastDeserialize 64 bits | 1.6390 us/op | | enrSubnets - ssz BitVector 64 bits | 492.00 ns/op | | enrSubnets - fastDeserialize 4 bits | 215.00 ns/op | | enrSubnets - ssz BitVector 4 bits | 494.00 ns/op | | prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 332.11 us/op | | prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 227.49 us/op | | prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 475.89 us/op | | prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 981.97 us/op | | prioritizePeers score 0:0 att 64-1 sync 4-1 | 1.2390 ms/op | | array of 16000 items push then shift | 1.8924 us/op | | LinkedList of 16000 items push then shift | 19.523 ns/op | | array of 16000 items push then pop | 198.37 ns/op | | LinkedList of 16000 items push then pop | 12.903 ns/op | | array of 24000 items push then shift | 3.1036 us/op | | LinkedList of 24000 items push then shift | 15.050 ns/op | | array of 24000 items push then pop | 277.43 ns/op | | LinkedList of 24000 items push then pop | 12.712 ns/op | | intersect bitArray bitLen 8 | 9.5990 ns/op | | intersect array and set length 8 | 109.19 ns/op | | intersect bitArray bitLen 128 | 36.854 ns/op | | intersect array and set length 128 | 1.1499 us/op | | bitArray.getTrueBitIndexes() bitLen 128 | 3.3750 us/op | | bitArray.getTrueBitIndexes() bitLen 248 | 6.7150 us/op | | bitArray.getTrueBitIndexes() bitLen 512 | 18.123 us/op | | Buffer.concat 32 items | 2.1930 us/op | | Uint8Array.set 32 items | 3.2870 us/op | | Buffer.copy | 4.0380 us/op | | Uint8Array.set - with subarray | 7.5930 us/op | | Uint8Array.set - without subarray | 3.0120 us/op | | getUint32 - dataview | 435.00 ns/op | | getUint32 - manual | 433.00 ns/op | | Set add up to 64 items then delete first | 3.9233 us/op | | OrderedSet add up to 64 items then delete first | 7.3320 us/op | | Set add up to 64 items then delete last | 4.8839 us/op | | OrderedSet add up to 64 items then delete last | 8.2666 us/op | | Set add up to 64 items then delete middle | 5.3129 us/op | | OrderedSet add up to 64 items then delete middle | 9.2122 us/op | | Set add up to 128 items then delete first | 9.6696 us/op | | OrderedSet add up to 128 items then delete first | 19.132 us/op | | Set add up to 128 items then delete last | 11.688 us/op | | OrderedSet add up to 128 items then delete last | 14.923 us/op | | Set add up to 128 items then delete middle | 9.7309 us/op | | OrderedSet add up to 128 items then delete middle | 25.058 us/op | | Set add up to 256 items then delete first | 20.069 us/op | | OrderedSet add up to 256 items then delete first | 28.848 us/op | | Set add up to 256 items then delete last | 18.643 us/op | | OrderedSet add up to 256 items then delete last | 32.364 us/op | | Set add up to 256 items then delete middle | 20.908 us/op | | OrderedSet add up to 256 items then delete middle | 63.046 us/op | | transfer serialized Status (84 B) | 1.6420 us/op | | copy serialized Status (84 B) | 1.7520 us/op | | transfer serialized SignedVoluntaryExit (112 B) | 2.1090 us/op | | copy serialized SignedVoluntaryExit (112 B) | 1.9750 us/op | | transfer serialized ProposerSlashing (416 B) | 2.8920 us/op | | copy serialized ProposerSlashing (416 B) | 3.4130 us/op | | transfer serialized Attestation (485 B) | 3.7530 us/op | | copy serialized Attestation (485 B) | 3.9770 us/op | | transfer serialized AttesterSlashing (33232 B) | 4.5270 us/op | | copy serialized AttesterSlashing (33232 B) | 71.473 us/op | | transfer serialized Small SignedBeaconBlock (128000 B) | 5.7470 us/op | | copy serialized Small SignedBeaconBlock (128000 B) | 50.662 us/op | | transfer serialized Avg SignedBeaconBlock (200000 B) | 6.0470 us/op | | copy serialized Avg SignedBeaconBlock (200000 B) | 72.565 us/op | | transfer serialized BlobsSidecar (524380 B) | 7.4220 us/op | | copy serialized BlobsSidecar (524380 B) | 199.21 us/op | | transfer serialized Big SignedBeaconBlock (1000000 B) | 10.335 us/op | | copy serialized Big SignedBeaconBlock (1000000 B) | 392.21 us/op | | pass gossip attestations to forkchoice per slot | 5.0338 ms/op | | forkChoice updateHead vc 100000 bc 64 eq 0 | 651.28 us/op | | forkChoice updateHead vc 600000 bc 64 eq 0 | 8.0523 ms/op | | forkChoice updateHead vc 1000000 bc 64 eq 0 | 10.836 ms/op | | forkChoice updateHead vc 600000 bc 320 eq 0 | 4.5978 ms/op | | forkChoice updateHead vc 600000 bc 1200 eq 0 | 6.0705 ms/op | | forkChoice updateHead vc 600000 bc 7200 eq 0 | 8.8153 ms/op | | forkChoice updateHead vc 600000 bc 64 eq 1000 | 12.497 ms/op | | forkChoice updateHead vc 600000 bc 64 eq 10000 | 12.548 ms/op | | forkChoice updateHead vc 600000 bc 64 eq 300000 | 74.515 ms/op | | computeDeltas 500000 validators 300 proto nodes | 6.5237 ms/op | | computeDeltas 500000 validators 1200 proto nodes | 6.0057 ms/op | | computeDeltas 500000 validators 7200 proto nodes | 5.8328 ms/op | | computeDeltas 750000 validators 300 proto nodes | 8.1976 ms/op | | computeDeltas 750000 validators 1200 proto nodes | 5.5062 ms/op | | computeDeltas 750000 validators 7200 proto nodes | 5.4508 ms/op | | computeDeltas 1400000 validators 300 proto nodes | 10.016 ms/op | | computeDeltas 1400000 validators 1200 proto nodes | 10.258 ms/op | | computeDeltas 1400000 validators 7200 proto nodes | 10.242 ms/op | | computeDeltas 2100000 validators 300 proto nodes | 15.741 ms/op | | computeDeltas 2100000 validators 1200 proto nodes | 15.527 ms/op | | computeDeltas 2100000 validators 7200 proto nodes | 15.615 ms/op | | altair processAttestation - 250000 vs - 7PWei normalcase | 1.8923 ms/op | | altair processAttestation - 250000 vs - 7PWei worstcase | 4.3083 ms/op | | altair processAttestation - setStatus - 1/6 committees join | 127.33 us/op | | altair processAttestation - setStatus - 1/3 committees join | 251.18 us/op | | altair processAttestation - setStatus - 1/2 committees join | 285.58 us/op | | altair processAttestation - setStatus - 2/3 committees join | 405.34 us/op | | altair processAttestation - setStatus - 4/5 committees join | 563.55 us/op | | altair processAttestation - setStatus - 100% committees join | 721.71 us/op | | altair processBlock - 250000 vs - 7PWei normalcase | 6.1876 ms/op | | altair processBlock - 250000 vs - 7PWei normalcase hashState | 33.994 ms/op | | altair processBlock - 250000 vs - 7PWei worstcase | 43.940 ms/op | | altair processBlock - 250000 vs - 7PWei worstcase hashState | 110.88 ms/op | | phase0 processBlock - 250000 vs - 7PWei normalcase | 3.4554 ms/op | | phase0 processBlock - 250000 vs - 7PWei worstcase | 31.666 ms/op | | altair processEth1Data - 250000 vs - 7PWei normalcase | 786.05 us/op | | getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 10.539 us/op | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 41.778 us/op | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 16.113 us/op | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 13.076 us/op | | getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 151.08 us/op | | getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 1.0851 ms/op | | getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 1.4579 ms/op | | getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 1.2609 ms/op | | getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 4.3665 ms/op | | getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 2.0735 ms/op | | getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 6.7737 ms/op | | Tree 40 250000 create | 750.31 ms/op | | Tree 40 250000 get(125000) | 189.34 ns/op | | Tree 40 250000 set(125000) | 2.2506 us/op | | Tree 40 250000 toArray() | 39.546 ms/op | | Tree 40 250000 iterate all - toArray() + loop | 36.101 ms/op | | Tree 40 250000 iterate all - get(i) | 69.094 ms/op | | MutableVector 250000 create | 17.274 ms/op | | MutableVector 250000 get(125000) | 7.5680 ns/op | | MutableVector 250000 set(125000) | 728.87 ns/op | | MutableVector 250000 toArray() | 5.8690 ms/op | | MutableVector 250000 iterate all - toArray() + loop | 5.6997 ms/op | | MutableVector 250000 iterate all - get(i) | 1.8085 ms/op | | Array 250000 create | 5.6116 ms/op | | Array 250000 clone - spread | 4.3588 ms/op | | Array 250000 get(125000) | 0.49800 ns/op | | Array 250000 set(125000) | 0.52900 ns/op | | Array 250000 iterate all - loop | 115.58 us/op | | effectiveBalanceIncrements clone Uint8Array 300000 | 71.790 us/op | | effectiveBalanceIncrements clone MutableVector 300000 | 158.00 ns/op | | effectiveBalanceIncrements rw all Uint8Array 300000 | 212.61 us/op | | effectiveBalanceIncrements rw all MutableVector 300000 | 185.77 ms/op | | phase0 afterProcessEpoch - 250000 vs - 7PWei | 96.704 ms/op | | Array.fill - length 1000000 | 9.6992 ms/op | | Array push - length 1000000 | 34.572 ms/op | | Array.get | 0.30604 ns/op | | Uint8Array.get | 0.48944 ns/op | | phase0 beforeProcessEpoch - 250000 vs - 7PWei | 39.556 ms/op | | altair processEpoch - mainnet_e81889 | 459.44 ms/op | | mainnet_e81889 - altair beforeProcessEpoch | 37.517 ms/op | | mainnet_e81889 - altair processJustificationAndFinalization | 16.483 us/op | | mainnet_e81889 - altair processInactivityUpdates | 6.5307 ms/op | | mainnet_e81889 - altair processRewardsAndPenalties | 45.648 ms/op | | mainnet_e81889 - altair processRegistryUpdates | 2.8510 us/op | | mainnet_e81889 - altair processSlashings | 548.00 ns/op | | mainnet_e81889 - altair processEth1DataReset | 465.00 ns/op | | mainnet_e81889 - altair processEffectiveBalanceUpdates | 1.8268 ms/op | | mainnet_e81889 - altair processSlashingsReset | 5.2350 us/op | | mainnet_e81889 - altair processRandaoMixesReset | 6.8070 us/op | | mainnet_e81889 - altair processHistoricalRootsUpdate | 769.00 ns/op | | mainnet_e81889 - altair processParticipationFlagUpdates | 2.6330 us/op | | mainnet_e81889 - altair processSyncCommitteeUpdates | 593.00 ns/op | | mainnet_e81889 - altair afterProcessEpoch | 95.940 ms/op | | capella processEpoch - mainnet_e217614 | 1.3537 s/op | | mainnet_e217614 - capella beforeProcessEpoch | 128.45 ms/op | | mainnet_e217614 - capella processJustificationAndFinalization | 19.662 us/op | | mainnet_e217614 - capella processInactivityUpdates | 19.156 ms/op | | mainnet_e217614 - capella processRewardsAndPenalties | 277.77 ms/op | | mainnet_e217614 - capella processRegistryUpdates | 18.610 us/op | | mainnet_e217614 - capella processSlashings | 690.00 ns/op | | mainnet_e217614 - capella processEth1DataReset | 592.00 ns/op | | mainnet_e217614 - capella processEffectiveBalanceUpdates | 15.369 ms/op | | mainnet_e217614 - capella processSlashingsReset | 9.7640 us/op | | mainnet_e217614 - capella processRandaoMixesReset | 10.646 us/op | | mainnet_e217614 - capella processHistoricalRootsUpdate | 837.00 ns/op | | mainnet_e217614 - capella processParticipationFlagUpdates | 3.5530 us/op | | mainnet_e217614 - capella afterProcessEpoch | 307.98 ms/op | | phase0 processEpoch - mainnet_e58758 | 510.55 ms/op | | mainnet_e58758 - phase0 beforeProcessEpoch | 120.03 ms/op | | mainnet_e58758 - phase0 processJustificationAndFinalization | 23.429 us/op | | mainnet_e58758 - phase0 processRewardsAndPenalties | 38.108 ms/op | | mainnet_e58758 - phase0 processRegistryUpdates | 9.5280 us/op | | mainnet_e58758 - phase0 processSlashings | 484.00 ns/op | | mainnet_e58758 - phase0 processEth1DataReset | 452.00 ns/op | | mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 1.1355 ms/op | | mainnet_e58758 - phase0 processSlashingsReset | 3.8480 us/op | | mainnet_e58758 - phase0 processRandaoMixesReset | 9.9550 us/op | | mainnet_e58758 - phase0 processHistoricalRootsUpdate | 843.00 ns/op | | mainnet_e58758 - phase0 processParticipationRecordUpdates | 5.1720 us/op | | mainnet_e58758 - phase0 afterProcessEpoch | 86.924 ms/op | | phase0 processEffectiveBalanceUpdates - 250000 normalcase | 1.3331 ms/op | | phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 2.6355 ms/op | | altair processInactivityUpdates - 250000 normalcase | 20.301 ms/op | | altair processInactivityUpdates - 250000 worstcase | 18.869 ms/op | | phase0 processRegistryUpdates - 250000 normalcase | 7.3650 us/op | | phase0 processRegistryUpdates - 250000 badcase_full_deposits | 349.71 us/op | | phase0 processRegistryUpdates - 250000 worstcase 0.5 | 135.52 ms/op | | altair processRewardsAndPenalties - 250000 normalcase | 43.615 ms/op | | altair processRewardsAndPenalties - 250000 worstcase | 40.946 ms/op | | phase0 getAttestationDeltas - 250000 normalcase | 8.4380 ms/op | | phase0 getAttestationDeltas - 250000 worstcase | 9.7486 ms/op | | phase0 processSlashings - 250000 worstcase | 103.14 us/op | | altair processSyncCommitteeUpdates - 250000 | 128.74 ms/op | | BeaconState.hashTreeRoot - No change | 306.00 ns/op | | BeaconState.hashTreeRoot - 1 full validator | 97.470 us/op | | BeaconState.hashTreeRoot - 32 full validator | 1.0335 ms/op | | BeaconState.hashTreeRoot - 512 full validator | 12.231 ms/op | | BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 134.48 us/op | | BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 2.2260 ms/op | | BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 30.156 ms/op | | BeaconState.hashTreeRoot - 1 balances | 115.12 us/op | | BeaconState.hashTreeRoot - 32 balances | 1.2958 ms/op | | BeaconState.hashTreeRoot - 512 balances | 13.287 ms/op | | BeaconState.hashTreeRoot - 250000 balances | 200.42 ms/op | | aggregationBits - 2048 els - zipIndexesInBitList | 25.354 us/op | | byteArrayEquals 32 | 54.679 ns/op | | Buffer.compare 32 | 17.575 ns/op | | byteArrayEquals 1024 | 1.6118 us/op | | Buffer.compare 1024 | 26.020 ns/op | | byteArrayEquals 16384 | 25.693 us/op | | Buffer.compare 16384 | 182.96 ns/op | | byteArrayEquals 123687377 | 193.31 ms/op | | Buffer.compare 123687377 | 7.6729 ms/op | | byteArrayEquals 32 - diff last byte | 53.915 ns/op | | Buffer.compare 32 - diff last byte | 17.554 ns/op | | byteArrayEquals 1024 - diff last byte | 1.5941 us/op | | Buffer.compare 1024 - diff last byte | 25.272 ns/op | | byteArrayEquals 16384 - diff last byte | 25.711 us/op | | Buffer.compare 16384 - diff last byte | 194.53 ns/op | | byteArrayEquals 123687377 - diff last byte | 198.61 ms/op | | Buffer.compare 123687377 - diff last byte | 12.372 ms/op | | byteArrayEquals 32 - random bytes | 5.6500 ns/op | | Buffer.compare 32 - random bytes | 20.044 ns/op | | byteArrayEquals 1024 - random bytes | 5.6260 ns/op | | Buffer.compare 1024 - random bytes | 22.203 ns/op | | byteArrayEquals 16384 - random bytes | 5.8550 ns/op | | Buffer.compare 16384 - random bytes | 18.617 ns/op | | byteArrayEquals 123687377 - random bytes | 6.7800 ns/op | | Buffer.compare 123687377 - random bytes | 19.420 ns/op | | regular array get 100000 times | 37.783 us/op | | wrappedArray get 100000 times | 35.099 us/op | | arrayWithProxy get 100000 times | 14.062 ms/op | | ssz.Root.equals | 47.431 ns/op | | byteArrayEquals | 46.575 ns/op | | Buffer.compare | 10.962 ns/op | | shuffle list - 16384 els | 6.5073 ms/op | | shuffle list - 250000 els | 94.860 ms/op | | processSlot - 1 slots | 13.887 us/op | | processSlot - 32 slots | 3.2839 ms/op | | getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 38.262 ms/op | | getCommitteeAssignments - req 1 vs - 250000 vc | 2.2402 ms/op | | getCommitteeAssignments - req 100 vs - 250000 vc | 4.2805 ms/op | | getCommitteeAssignments - req 1000 vs - 250000 vc | 4.6418 ms/op | | findModifiedValidators - 10000 modified validators | 273.68 ms/op | | findModifiedValidators - 1000 modified validators | 189.14 ms/op | | findModifiedValidators - 100 modified validators | 156.98 ms/op | | findModifiedValidators - 10 modified validators | 160.47 ms/op | | findModifiedValidators - 1 modified validators | 163.57 ms/op | | findModifiedValidators - no difference | 165.64 ms/op | | compare ViewDUs | 3.3738 s/op | | compare each validator Uint8Array | 1.3253 s/op | | compare ViewDU to Uint8Array | 1.2380 s/op | | migrate state 1000000 validators, 24 modified, 0 new | 750.64 ms/op | | migrate state 1000000 validators, 1700 modified, 1000 new | 1.0179 s/op | | migrate state 1000000 validators, 3400 modified, 2000 new | 1.1867 s/op | | migrate state 1500000 validators, 24 modified, 0 new | 820.26 ms/op | | migrate state 1500000 validators, 1700 modified, 1000 new | 953.92 ms/op | | migrate state 1500000 validators, 3400 modified, 2000 new | 1.2766 s/op | | RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 5.6000 ns/op | | state getBlockRootAtSlot - 250000 vs - 7PWei | 813.22 ns/op | | computeProposers - vc 250000 | 12.345 ms/op | | computeEpochShuffling - vc 250000 | 101.32 ms/op | | getNextSyncCommittee - vc 250000 | 171.35 ms/op | | computeSigningRoot for AttestationData | 31.936 us/op | | hash AttestationData serialized data then Buffer.toString(base64) | 1.6031 us/op | | toHexString serialized data | 1.2308 us/op | | Buffer.toString(base64) | 232.57 ns/op |

by benchmarkbot/action