ChainSafe / lodestar

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

docs: another review #6879

Closed nflaig closed 3 months ago

nflaig commented 3 months ago

Motivation

More docs cleanup

Description

codecov[bot] commented 3 months ago

Codecov Report

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

Project coverage is 62.76%. Comparing base (9332216) to head (e92e311).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## unstable #6879 +/- ## ============================================ - Coverage 62.76% 62.76% -0.01% ============================================ Files 578 578 Lines 61273 61273 Branches 2115 2114 -1 ============================================ - Hits 38456 38455 -1 - Misses 22779 22780 +1 Partials 38 38 ```
github-actions[bot] commented 3 months ago

Performance Report

✔️ no performance regression detected

Full benchmark results | Benchmark suite | Current: 9afe1559171e71ee5a33479015ff163092391b41 | Previous: 93322168bbf4b9ef77acd2697db5dfff34d11508 | Ratio | |-|-|-|-| | getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 558.44 us/op | 395.28 us/op | 1.41 | | getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 44.778 us/op | 43.638 us/op | 1.03 | | BLS verify - blst-native | 1.1994 ms/op | 1.1815 ms/op | 1.02 | | BLS verifyMultipleSignatures 3 - blst-native | 2.5248 ms/op | 2.4582 ms/op | 1.03 | | BLS verifyMultipleSignatures 8 - blst-native | 5.6793 ms/op | 5.4503 ms/op | 1.04 | | BLS verifyMultipleSignatures 32 - blst-native | 21.113 ms/op | 19.992 ms/op | 1.06 | | BLS verifyMultipleSignatures 64 - blst-native | 41.383 ms/op | 40.066 ms/op | 1.03 | | BLS verifyMultipleSignatures 128 - blst-native | 82.078 ms/op | 84.133 ms/op | 0.98 | | BLS deserializing 10000 signatures | 863.10 ms/op | 799.36 ms/op | 1.08 | | BLS deserializing 100000 signatures | 8.6136 s/op | 7.8887 s/op | 1.09 | | BLS verifyMultipleSignatures - same message - 3 - blst-native | 1.2742 ms/op | 1.0832 ms/op | 1.18 | | BLS verifyMultipleSignatures - same message - 8 - blst-native | 1.4321 ms/op | 1.2274 ms/op | 1.17 | | BLS verifyMultipleSignatures - same message - 32 - blst-native | 2.4186 ms/op | 1.9687 ms/op | 1.23 | | BLS verifyMultipleSignatures - same message - 64 - blst-native | 3.3822 ms/op | 2.9009 ms/op | 1.17 | | BLS verifyMultipleSignatures - same message - 128 - blst-native | 5.5404 ms/op | 5.0882 ms/op | 1.09 | | BLS aggregatePubkeys 32 - blst-native | 25.688 us/op | 22.893 us/op | 1.12 | | BLS aggregatePubkeys 128 - blst-native | 100.45 us/op | 85.646 us/op | 1.17 | | notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 67.601 ms/op | 64.488 ms/op | 1.05 | | notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 56.192 ms/op | 50.579 ms/op | 1.11 | | notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 35.056 ms/op | 32.062 ms/op | 1.09 | | getSlashingsAndExits - default max | 115.10 us/op | 119.20 us/op | 0.97 | | getSlashingsAndExits - 2k | 289.54 us/op | 416.39 us/op | 0.70 | | proposeBlockBody type=full, size=empty | 5.6181 ms/op | 5.2872 ms/op | 1.06 | | isKnown best case - 1 super set check | 294.00 ns/op | 536.00 ns/op | 0.55 | | isKnown normal case - 2 super set checks | 286.00 ns/op | 517.00 ns/op | 0.55 | | isKnown worse case - 16 super set checks | 282.00 ns/op | 523.00 ns/op | 0.54 | | InMemoryCheckpointStateCache - add get delete | 4.9860 us/op | 4.7920 us/op | 1.04 | | validate api signedAggregateAndProof - struct | 2.5365 ms/op | 2.4027 ms/op | 1.06 | | validate gossip signedAggregateAndProof - struct | 2.5746 ms/op | 2.3985 ms/op | 1.07 | | validate gossip attestation - vc 640000 | 1.2479 ms/op | 1.1798 ms/op | 1.06 | | batch validate gossip attestation - vc 640000 - chunk 32 | 148.23 us/op | 141.14 us/op | 1.05 | | batch validate gossip attestation - vc 640000 - chunk 64 | 132.01 us/op | 136.27 us/op | 0.97 | | batch validate gossip attestation - vc 640000 - chunk 128 | 125.73 us/op | 126.43 us/op | 0.99 | | batch validate gossip attestation - vc 640000 - chunk 256 | 124.65 us/op | 127.00 us/op | 0.98 | | pickEth1Vote - no votes | 1.1474 ms/op | 1.0050 ms/op | 1.14 | | pickEth1Vote - max votes | 9.4201 ms/op | 7.6385 ms/op | 1.23 | | pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 12.959 ms/op | 16.185 ms/op | 0.80 | | pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 20.898 ms/op | 28.502 ms/op | 0.73 | | pickEth1Vote - Eth1Data fastSerialize value x2048 | 579.71 us/op | 434.54 us/op | 1.33 | | pickEth1Vote - Eth1Data fastSerialize tree x2048 | 4.5014 ms/op | 8.5550 ms/op | 0.53 | | bytes32 toHexString | 578.00 ns/op | 855.00 ns/op | 0.68 | | bytes32 Buffer.toString(hex) | 257.00 ns/op | 477.00 ns/op | 0.54 | | bytes32 Buffer.toString(hex) from Uint8Array | 449.00 ns/op | 656.00 ns/op | 0.68 | | bytes32 Buffer.toString(hex) + 0x | 267.00 ns/op | 471.00 ns/op | 0.57 | | Object access 1 prop | 0.16400 ns/op | 0.34100 ns/op | 0.48 | | Map access 1 prop | 0.14100 ns/op | 0.34500 ns/op | 0.41 | | Object get x1000 | 6.0950 ns/op | 5.1910 ns/op | 1.17 | | Map get x1000 | 6.6070 ns/op | 6.0920 ns/op | 1.08 | | Object set x1000 | 38.482 ns/op | 22.453 ns/op | 1.71 | | Map set x1000 | 26.858 ns/op | 19.121 ns/op | 1.40 | | Return object 10000 times | 0.30660 ns/op | 0.30220 ns/op | 1.01 | | Throw Error 10000 times | 3.5704 us/op | 2.7122 us/op | 1.32 | | fastMsgIdFn sha256 / 200 bytes | 2.3580 us/op | 1.9870 us/op | 1.19 | | fastMsgIdFn h32 xxhash / 200 bytes | 296.00 ns/op | 406.00 ns/op | 0.73 | | fastMsgIdFn h64 xxhash / 200 bytes | 286.00 ns/op | 455.00 ns/op | 0.63 | | fastMsgIdFn sha256 / 1000 bytes | 7.5760 us/op | 6.0090 us/op | 1.26 | | fastMsgIdFn h32 xxhash / 1000 bytes | 417.00 ns/op | 530.00 ns/op | 0.79 | | fastMsgIdFn h64 xxhash / 1000 bytes | 367.00 ns/op | 521.00 ns/op | 0.70 | | fastMsgIdFn sha256 / 10000 bytes | 66.730 us/op | 50.963 us/op | 1.31 | | fastMsgIdFn h32 xxhash / 10000 bytes | 1.9260 us/op | 1.9170 us/op | 1.00 | | fastMsgIdFn h64 xxhash / 10000 bytes | 1.2570 us/op | 1.3470 us/op | 0.93 | | send data - 1000 256B messages | 14.357 ms/op | 10.096 ms/op | 1.42 | | send data - 1000 512B messages | 19.564 ms/op | 13.343 ms/op | 1.47 | | send data - 1000 1024B messages | 28.594 ms/op | 20.704 ms/op | 1.38 | | send data - 1000 1200B messages | 20.929 ms/op | 23.359 ms/op | 0.90 | | send data - 1000 2048B messages | 34.589 ms/op | 28.086 ms/op | 1.23 | | send data - 1000 4096B messages | 36.901 ms/op | 25.008 ms/op | 1.48 | | send data - 1000 16384B messages | 76.258 ms/op | 62.610 ms/op | 1.22 | | send data - 1000 65536B messages | 226.53 ms/op | 252.99 ms/op | 0.90 | | enrSubnets - fastDeserialize 64 bits | 1.1750 us/op | 1.1500 us/op | 1.02 | | enrSubnets - ssz BitVector 64 bits | 416.00 ns/op | 537.00 ns/op | 0.77 | | enrSubnets - fastDeserialize 4 bits | 183.00 ns/op | 336.00 ns/op | 0.54 | | enrSubnets - ssz BitVector 4 bits | 433.00 ns/op | 546.00 ns/op | 0.79 | | prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 169.04 us/op | 142.85 us/op | 1.18 | | prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 175.42 us/op | 151.56 us/op | 1.16 | | prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 317.56 us/op | 287.28 us/op | 1.11 | | prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 442.11 us/op | 461.82 us/op | 0.96 | | prioritizePeers score 0:0 att 64-1 sync 4-1 | 789.39 us/op | 659.68 us/op | 1.20 | | array of 16000 items push then shift | 1.7184 us/op | 1.3252 us/op | 1.30 | | LinkedList of 16000 items push then shift | 7.9660 ns/op | 6.5630 ns/op | 1.21 | | array of 16000 items push then pop | 141.73 ns/op | 80.796 ns/op | 1.75 | | LinkedList of 16000 items push then pop | 8.2080 ns/op | 6.4370 ns/op | 1.28 | | array of 24000 items push then shift | 2.5960 us/op | 2.0002 us/op | 1.30 | | LinkedList of 24000 items push then shift | 8.0490 ns/op | 6.4470 ns/op | 1.25 | | array of 24000 items push then pop | 173.25 ns/op | 109.28 ns/op | 1.59 | | LinkedList of 24000 items push then pop | 7.6610 ns/op | 6.5370 ns/op | 1.17 | | intersect bitArray bitLen 8 | 6.5060 ns/op | 5.6880 ns/op | 1.14 | | intersect array and set length 8 | 49.088 ns/op | 37.844 ns/op | 1.30 | | intersect bitArray bitLen 128 | 30.553 ns/op | 26.576 ns/op | 1.15 | | intersect array and set length 128 | 725.44 ns/op | 574.13 ns/op | 1.26 | | bitArray.getTrueBitIndexes() bitLen 128 | 2.2190 us/op | 1.6780 us/op | 1.32 | | bitArray.getTrueBitIndexes() bitLen 248 | 4.3080 us/op | 3.2960 us/op | 1.31 | | bitArray.getTrueBitIndexes() bitLen 512 | 8.8170 us/op | 7.1110 us/op | 1.24 | | Buffer.concat 32 items | 1.0970 us/op | 956.00 ns/op | 1.15 | | Uint8Array.set 32 items | 1.7000 us/op | 1.6950 us/op | 1.00 | | Buffer.copy | 2.0800 us/op | 1.7300 us/op | 1.20 | | Uint8Array.set - with subarray | 3.2770 us/op | 2.2030 us/op | 1.49 | | Uint8Array.set - without subarray | 1.8090 us/op | 1.5870 us/op | 1.14 | | Set add up to 64 items then delete first | 2.7264 us/op | 1.6861 us/op | 1.62 | | OrderedSet add up to 64 items then delete first | 3.3139 us/op | 2.6484 us/op | 1.25 | | Set add up to 64 items then delete last | 2.7190 us/op | 1.9163 us/op | 1.42 | | OrderedSet add up to 64 items then delete last | 4.1858 us/op | 3.0381 us/op | 1.38 | | Set add up to 64 items then delete middle | 2.8491 us/op | 1.9425 us/op | 1.47 | | OrderedSet add up to 64 items then delete middle | 5.8576 us/op | 4.3641 us/op | 1.34 | | Set add up to 128 items then delete first | 5.5409 us/op | 3.7397 us/op | 1.48 | | OrderedSet add up to 128 items then delete first | 8.8416 us/op | 5.6719 us/op | 1.56 | | Set add up to 128 items then delete last | 5.7143 us/op | 3.7451 us/op | 1.53 | | OrderedSet add up to 128 items then delete last | 8.3365 us/op | 5.9131 us/op | 1.41 | | Set add up to 128 items then delete middle | 6.1882 us/op | 3.7305 us/op | 1.66 | | OrderedSet add up to 128 items then delete middle | 16.488 us/op | 11.371 us/op | 1.45 | | Set add up to 256 items then delete first | 13.202 us/op | 7.4014 us/op | 1.78 | | OrderedSet add up to 256 items then delete first | 21.505 us/op | 11.430 us/op | 1.88 | | Set add up to 256 items then delete last | 11.343 us/op | 7.4087 us/op | 1.53 | | OrderedSet add up to 256 items then delete last | 16.237 us/op | 11.836 us/op | 1.37 | | Set add up to 256 items then delete middle | 11.409 us/op | 7.5888 us/op | 1.50 | | OrderedSet add up to 256 items then delete middle | 47.392 us/op | 34.978 us/op | 1.35 | | transfer serialized Status (84 B) | 1.4640 us/op | 1.4510 us/op | 1.01 | | copy serialized Status (84 B) | 1.2690 us/op | 1.2480 us/op | 1.02 | | transfer serialized SignedVoluntaryExit (112 B) | 1.5310 us/op | 1.5780 us/op | 0.97 | | copy serialized SignedVoluntaryExit (112 B) | 1.3080 us/op | 1.3140 us/op | 1.00 | | transfer serialized ProposerSlashing (416 B) | 1.7650 us/op | 2.0440 us/op | 0.86 | | copy serialized ProposerSlashing (416 B) | 1.6870 us/op | 2.0090 us/op | 0.84 | | transfer serialized Attestation (485 B) | 1.8760 us/op | 2.3350 us/op | 0.80 | | copy serialized Attestation (485 B) | 1.8610 us/op | 1.8870 us/op | 0.99 | | transfer serialized AttesterSlashing (33232 B) | 1.9210 us/op | 2.2850 us/op | 0.84 | | copy serialized AttesterSlashing (33232 B) | 6.0330 us/op | 4.9080 us/op | 1.23 | | transfer serialized Small SignedBeaconBlock (128000 B) | 2.7910 us/op | 3.0150 us/op | 0.93 | | copy serialized Small SignedBeaconBlock (128000 B) | 20.472 us/op | 13.416 us/op | 1.53 | | transfer serialized Avg SignedBeaconBlock (200000 B) | 3.5110 us/op | 3.4740 us/op | 1.01 | | copy serialized Avg SignedBeaconBlock (200000 B) | 31.417 us/op | 19.413 us/op | 1.62 | | transfer serialized BlobsSidecar (524380 B) | 3.8120 us/op | 2.7590 us/op | 1.38 | | copy serialized BlobsSidecar (524380 B) | 94.537 us/op | 73.193 us/op | 1.29 | | transfer serialized Big SignedBeaconBlock (1000000 B) | 4.5640 us/op | 2.7610 us/op | 1.65 | | copy serialized Big SignedBeaconBlock (1000000 B) | 242.14 us/op | 134.34 us/op | 1.80 | | pass gossip attestations to forkchoice per slot | 3.3143 ms/op | 2.4980 ms/op | 1.33 | | forkChoice updateHead vc 100000 bc 64 eq 0 | 545.34 us/op | 389.68 us/op | 1.40 | | forkChoice updateHead vc 600000 bc 64 eq 0 | 3.3175 ms/op | 2.4798 ms/op | 1.34 | | forkChoice updateHead vc 1000000 bc 64 eq 0 | 5.7163 ms/op | 4.3543 ms/op | 1.31 | | forkChoice updateHead vc 600000 bc 320 eq 0 | 3.2828 ms/op | 2.4680 ms/op | 1.33 | | forkChoice updateHead vc 600000 bc 1200 eq 0 | 3.4507 ms/op | 2.5837 ms/op | 1.34 | | forkChoice updateHead vc 600000 bc 7200 eq 0 | 3.9439 ms/op | 2.9806 ms/op | 1.32 | | forkChoice updateHead vc 600000 bc 64 eq 1000 | 11.007 ms/op | 9.8936 ms/op | 1.11 | | forkChoice updateHead vc 600000 bc 64 eq 10000 | 11.686 ms/op | 9.2704 ms/op | 1.26 | | forkChoice updateHead vc 600000 bc 64 eq 300000 | 15.656 ms/op | 12.150 ms/op | 1.29 | | computeDeltas 500000 validators 300 proto nodes | 4.1513 ms/op | 2.9487 ms/op | 1.41 | | computeDeltas 500000 validators 1200 proto nodes | 4.5201 ms/op | 3.0268 ms/op | 1.49 | | computeDeltas 500000 validators 7200 proto nodes | 4.1376 ms/op | 3.1300 ms/op | 1.32 | | computeDeltas 750000 validators 300 proto nodes | 5.8950 ms/op | 4.6172 ms/op | 1.28 | | computeDeltas 750000 validators 1200 proto nodes | 5.8141 ms/op | 4.7111 ms/op | 1.23 | | computeDeltas 750000 validators 7200 proto nodes | 5.5923 ms/op | 4.4987 ms/op | 1.24 | | computeDeltas 1400000 validators 300 proto nodes | 10.416 ms/op | 8.3198 ms/op | 1.25 | | computeDeltas 1400000 validators 1200 proto nodes | 10.303 ms/op | 8.7350 ms/op | 1.18 | | computeDeltas 1400000 validators 7200 proto nodes | 10.312 ms/op | 8.1692 ms/op | 1.26 | | computeDeltas 2100000 validators 300 proto nodes | 16.470 ms/op | 12.424 ms/op | 1.33 | | computeDeltas 2100000 validators 1200 proto nodes | 16.334 ms/op | 12.207 ms/op | 1.34 | | computeDeltas 2100000 validators 7200 proto nodes | 16.310 ms/op | 12.705 ms/op | 1.28 | | altair processAttestation - 250000 vs - 7PWei normalcase | 1.7667 ms/op | 1.3732 ms/op | 1.29 | | altair processAttestation - 250000 vs - 7PWei worstcase | 2.5954 ms/op | 2.0947 ms/op | 1.24 | | altair processAttestation - setStatus - 1/6 committees join | 90.034 us/op | 68.445 us/op | 1.32 | | altair processAttestation - setStatus - 1/3 committees join | 180.79 us/op | 134.71 us/op | 1.34 | | altair processAttestation - setStatus - 1/2 committees join | 280.64 us/op | 187.82 us/op | 1.49 | | altair processAttestation - setStatus - 2/3 committees join | 344.96 us/op | 252.13 us/op | 1.37 | | altair processAttestation - setStatus - 4/5 committees join | 491.50 us/op | 421.61 us/op | 1.17 | | altair processAttestation - setStatus - 100% committees join | 572.15 us/op | 486.16 us/op | 1.18 | | altair processBlock - 250000 vs - 7PWei normalcase | 5.1959 ms/op | 3.5328 ms/op | 1.47 | | altair processBlock - 250000 vs - 7PWei normalcase hashState | 26.145 ms/op | 20.970 ms/op | 1.25 | | altair processBlock - 250000 vs - 7PWei worstcase | 46.521 ms/op | 42.500 ms/op | 1.09 | | altair processBlock - 250000 vs - 7PWei worstcase hashState | 84.436 ms/op | 72.481 ms/op | 1.16 | | phase0 processBlock - 250000 vs - 7PWei normalcase | 2.1149 ms/op | 2.4103 ms/op | 0.88 | | phase0 processBlock - 250000 vs - 7PWei worstcase | 28.673 ms/op | 24.959 ms/op | 1.15 | | altair processEth1Data - 250000 vs - 7PWei normalcase | 317.66 us/op | 249.28 us/op | 1.27 | | getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 7.0900 us/op | 4.8830 us/op | 1.45 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 30.093 us/op | 20.417 us/op | 1.47 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 11.856 us/op | 8.1990 us/op | 1.45 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 5.0850 us/op | 6.0140 us/op | 0.85 | | getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 130.37 us/op | 81.328 us/op | 1.60 | | getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 1.2581 ms/op | 874.01 us/op | 1.44 | | getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 933.90 us/op | 695.54 us/op | 1.34 | | getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 1.7526 ms/op | 1.1297 ms/op | 1.55 | | getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 2.5511 ms/op | 2.0026 ms/op | 1.27 | | getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 2.4682 ms/op | 1.1732 ms/op | 2.10 | | getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 3.9047 ms/op | 3.5027 ms/op | 1.11 | | Tree 40 250000 create | 214.49 ms/op | 196.97 ms/op | 1.09 | | Tree 40 250000 get(125000) | 145.24 ns/op | 125.17 ns/op | 1.16 | | Tree 40 250000 set(125000) | 696.88 ns/op | 550.18 ns/op | 1.27 | | Tree 40 250000 toArray() | 16.610 ms/op | 10.479 ms/op | 1.59 | | Tree 40 250000 iterate all - toArray() + loop | 16.823 ms/op | 9.7734 ms/op | 1.72 | | Tree 40 250000 iterate all - get(i) | 52.227 ms/op | 39.816 ms/op | 1.31 | | MutableVector 250000 create | 13.179 ms/op | 8.8913 ms/op | 1.48 | | MutableVector 250000 get(125000) | 6.5230 ns/op | 6.2270 ns/op | 1.05 | | MutableVector 250000 set(125000) | 210.04 ns/op | 185.39 ns/op | 1.13 | | MutableVector 250000 toArray() | 3.6933 ms/op | 2.6866 ms/op | 1.37 | | MutableVector 250000 iterate all - toArray() + loop | 3.8619 ms/op | 2.8932 ms/op | 1.33 | | MutableVector 250000 iterate all - get(i) | 1.5743 ms/op | 1.4537 ms/op | 1.08 | | Array 250000 create | 3.2664 ms/op | 2.5323 ms/op | 1.29 | | Array 250000 clone - spread | 1.5133 ms/op | 1.4767 ms/op | 1.02 | | Array 250000 get(125000) | 0.41100 ns/op | 0.61000 ns/op | 0.67 | | Array 250000 set(125000) | 0.44000 ns/op | 0.62100 ns/op | 0.71 | | Array 250000 iterate all - loop | 82.444 us/op | 80.220 us/op | 1.03 | | effectiveBalanceIncrements clone Uint8Array 300000 | 32.540 us/op | 15.899 us/op | 2.05 | | effectiveBalanceIncrements clone MutableVector 300000 | 119.00 ns/op | 319.00 ns/op | 0.37 | | effectiveBalanceIncrements rw all Uint8Array 300000 | 201.00 us/op | 171.51 us/op | 1.17 | | effectiveBalanceIncrements rw all MutableVector 300000 | 68.879 ms/op | 59.078 ms/op | 1.17 | | phase0 afterProcessEpoch - 250000 vs - 7PWei | 88.752 ms/op | 73.946 ms/op | 1.20 | | phase0 beforeProcessEpoch - 250000 vs - 7PWei | 34.714 ms/op | 36.771 ms/op | 0.94 | | altair processEpoch - mainnet_e81889 | 399.70 ms/op | 356.65 ms/op | 1.12 | | mainnet_e81889 - altair beforeProcessEpoch | 70.241 ms/op | 59.408 ms/op | 1.18 | | mainnet_e81889 - altair processJustificationAndFinalization | 11.376 us/op | 15.270 us/op | 0.74 | | mainnet_e81889 - altair processInactivityUpdates | 6.5763 ms/op | 6.9995 ms/op | 0.94 | | mainnet_e81889 - altair processRewardsAndPenalties | 42.194 ms/op | 52.339 ms/op | 0.81 | | mainnet_e81889 - altair processRegistryUpdates | 1.7440 us/op | 3.0280 us/op | 0.58 | | mainnet_e81889 - altair processSlashings | 362.00 ns/op | 1.1790 us/op | 0.31 | | mainnet_e81889 - altair processEth1DataReset | 297.00 ns/op | 848.00 ns/op | 0.35 | | mainnet_e81889 - altair processEffectiveBalanceUpdates | 1.9319 ms/op | 1.1044 ms/op | 1.75 | | mainnet_e81889 - altair processSlashingsReset | 2.6080 us/op | 4.5460 us/op | 0.57 | | mainnet_e81889 - altair processRandaoMixesReset | 5.8000 us/op | 3.7590 us/op | 1.54 | | mainnet_e81889 - altair processHistoricalRootsUpdate | 523.00 ns/op | 802.00 ns/op | 0.65 | | mainnet_e81889 - altair processParticipationFlagUpdates | 2.6510 us/op | 2.8100 us/op | 0.94 | | mainnet_e81889 - altair processSyncCommitteeUpdates | 595.00 ns/op | 907.00 ns/op | 0.66 | | mainnet_e81889 - altair afterProcessEpoch | 92.774 ms/op | 84.552 ms/op | 1.10 | | capella processEpoch - mainnet_e217614 | 1.3455 s/op | 1.1662 s/op | 1.15 | | mainnet_e217614 - capella beforeProcessEpoch | 249.87 ms/op | 239.08 ms/op | 1.05 | | mainnet_e217614 - capella processJustificationAndFinalization | 13.051 us/op | 11.562 us/op | 1.13 | | mainnet_e217614 - capella processInactivityUpdates | 16.680 ms/op | 16.876 ms/op | 0.99 | | mainnet_e217614 - capella processRewardsAndPenalties | 270.34 ms/op | 244.48 ms/op | 1.11 | | mainnet_e217614 - capella processRegistryUpdates | 11.345 us/op | 11.122 us/op | 1.02 | | mainnet_e217614 - capella processSlashings | 354.00 ns/op | 756.00 ns/op | 0.47 | | mainnet_e217614 - capella processEth1DataReset | 317.00 ns/op | 717.00 ns/op | 0.44 | | mainnet_e217614 - capella processEffectiveBalanceUpdates | 11.200 ms/op | 4.0027 ms/op | 2.80 | | mainnet_e217614 - capella processSlashingsReset | 5.9850 us/op | 2.4230 us/op | 2.47 | | mainnet_e217614 - capella processRandaoMixesReset | 5.7860 us/op | 3.0920 us/op | 1.87 | | mainnet_e217614 - capella processHistoricalRootsUpdate | 593.00 ns/op | 751.00 ns/op | 0.79 | | mainnet_e217614 - capella processParticipationFlagUpdates | 2.6470 us/op | 4.2560 us/op | 0.62 | | mainnet_e217614 - capella afterProcessEpoch | 282.80 ms/op | 210.03 ms/op | 1.35 | | phase0 processEpoch - mainnet_e58758 | 388.44 ms/op | 349.43 ms/op | 1.11 | | mainnet_e58758 - phase0 beforeProcessEpoch | 110.75 ms/op | 114.19 ms/op | 0.97 | | mainnet_e58758 - phase0 processJustificationAndFinalization | 22.734 us/op | 10.850 us/op | 2.10 | | mainnet_e58758 - phase0 processRewardsAndPenalties | 42.787 ms/op | 26.206 ms/op | 1.63 | | mainnet_e58758 - phase0 processRegistryUpdates | 12.519 us/op | 6.0150 us/op | 2.08 | | mainnet_e58758 - phase0 processSlashings | 656.00 ns/op | 737.00 ns/op | 0.89 | | mainnet_e58758 - phase0 processEth1DataReset | 565.00 ns/op | 683.00 ns/op | 0.83 | | mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 2.4082 ms/op | 1.0788 ms/op | 2.23 | | mainnet_e58758 - phase0 processSlashingsReset | 8.4890 us/op | 3.1460 us/op | 2.70 | | mainnet_e58758 - phase0 processRandaoMixesReset | 7.0530 us/op | 4.2170 us/op | 1.67 | | mainnet_e58758 - phase0 processHistoricalRootsUpdate | 296.00 ns/op | 714.00 ns/op | 0.41 | | mainnet_e58758 - phase0 processParticipationRecordUpdates | 3.7380 us/op | 2.6540 us/op | 1.41 | | mainnet_e58758 - phase0 afterProcessEpoch | 76.552 ms/op | 63.730 ms/op | 1.20 | | phase0 processEffectiveBalanceUpdates - 250000 normalcase | 1.0195 ms/op | 786.49 us/op | 1.30 | | phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 2.3086 ms/op | 1.5786 ms/op | 1.46 | | altair processInactivityUpdates - 250000 normalcase | 24.406 ms/op | 17.400 ms/op | 1.40 | | altair processInactivityUpdates - 250000 worstcase | 23.312 ms/op | 19.057 ms/op | 1.22 | | phase0 processRegistryUpdates - 250000 normalcase | 9.8830 us/op | 3.7680 us/op | 2.62 | | phase0 processRegistryUpdates - 250000 badcase_full_deposits | 457.30 us/op | 301.42 us/op | 1.52 | | phase0 processRegistryUpdates - 250000 worstcase 0.5 | 145.22 ms/op | 109.14 ms/op | 1.33 | | altair processRewardsAndPenalties - 250000 normalcase | 59.288 ms/op | 42.416 ms/op | 1.40 | | altair processRewardsAndPenalties - 250000 worstcase | 47.512 ms/op | 37.567 ms/op | 1.26 | | phase0 getAttestationDeltas - 250000 normalcase | 7.6455 ms/op | 5.8495 ms/op | 1.31 | | phase0 getAttestationDeltas - 250000 worstcase | 7.4066 ms/op | 6.3013 ms/op | 1.18 | | phase0 processSlashings - 250000 worstcase | 122.67 us/op | 85.586 us/op | 1.43 | | altair processSyncCommitteeUpdates - 250000 | 116.24 ms/op | 104.53 ms/op | 1.11 | | BeaconState.hashTreeRoot - No change | 280.00 ns/op | 491.00 ns/op | 0.57 | | BeaconState.hashTreeRoot - 1 full validator | 148.68 us/op | 106.58 us/op | 1.40 | | BeaconState.hashTreeRoot - 32 full validator | 890.87 us/op | 1.0391 ms/op | 0.86 | | BeaconState.hashTreeRoot - 512 full validator | 14.367 ms/op | 12.158 ms/op | 1.18 | | BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 159.99 us/op | 150.05 us/op | 1.07 | | BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 1.8226 ms/op | 1.7662 ms/op | 1.03 | | BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 26.936 ms/op | 24.191 ms/op | 1.11 | | BeaconState.hashTreeRoot - 1 balances | 135.03 us/op | 125.72 us/op | 1.07 | | BeaconState.hashTreeRoot - 32 balances | 1.2410 ms/op | 1.2784 ms/op | 0.97 | | BeaconState.hashTreeRoot - 512 balances | 6.9660 ms/op | 11.988 ms/op | 0.58 | | BeaconState.hashTreeRoot - 250000 balances | 208.15 ms/op | 171.75 ms/op | 1.21 | | aggregationBits - 2048 els - zipIndexesInBitList | 24.887 us/op | 19.074 us/op | 1.30 | | byteArrayEquals 32 | 53.687 ns/op | 49.441 ns/op | 1.09 | | Buffer.compare 32 | 45.809 ns/op | 39.883 ns/op | 1.15 | | byteArrayEquals 1024 | 1.5874 us/op | 1.2844 us/op | 1.24 | | Buffer.compare 1024 | 54.128 ns/op | 43.434 ns/op | 1.25 | | byteArrayEquals 16384 | 25.274 us/op | 19.177 us/op | 1.32 | | Buffer.compare 16384 | 225.53 ns/op | 216.71 ns/op | 1.04 | | byteArrayEquals 123687377 | 191.84 ms/op | 151.24 ms/op | 1.27 | | Buffer.compare 123687377 | 6.9201 ms/op | 3.8504 ms/op | 1.80 | | byteArrayEquals 32 - diff last byte | 52.842 ns/op | 48.812 ns/op | 1.08 | | Buffer.compare 32 - diff last byte | 47.214 ns/op | 40.229 ns/op | 1.17 | | byteArrayEquals 1024 - diff last byte | 1.5975 us/op | 1.2745 us/op | 1.25 | | Buffer.compare 1024 - diff last byte | 54.247 ns/op | 49.024 ns/op | 1.11 | | byteArrayEquals 16384 - diff last byte | 25.458 us/op | 20.664 us/op | 1.23 | | Buffer.compare 16384 - diff last byte | 237.25 ns/op | 220.44 ns/op | 1.08 | | byteArrayEquals 123687377 - diff last byte | 189.17 ms/op | 149.72 ms/op | 1.26 | | Buffer.compare 123687377 - diff last byte | 6.4376 ms/op | 4.1089 ms/op | 1.57 | | byteArrayEquals 32 - random bytes | 5.1190 ns/op | 4.9380 ns/op | 1.04 | | Buffer.compare 32 - random bytes | 47.986 ns/op | 43.145 ns/op | 1.11 | | byteArrayEquals 1024 - random bytes | 5.1050 ns/op | 4.9310 ns/op | 1.04 | | Buffer.compare 1024 - random bytes | 46.124 ns/op | 39.813 ns/op | 1.16 | | byteArrayEquals 16384 - random bytes | 5.1200 ns/op | 4.9150 ns/op | 1.04 | | Buffer.compare 16384 - random bytes | 46.291 ns/op | 39.593 ns/op | 1.17 | | byteArrayEquals 123687377 - random bytes | 6.3400 ns/op | 7.8700 ns/op | 0.81 | | Buffer.compare 123687377 - random bytes | 47.500 ns/op | 45.380 ns/op | 1.05 | | regular array get 100000 times | 42.307 us/op | 31.174 us/op | 1.36 | | wrappedArray get 100000 times | 32.868 us/op | 31.146 us/op | 1.06 | | arrayWithProxy get 100000 times | 12.904 ms/op | 9.3256 ms/op | 1.38 | | ssz.Root.equals | 45.890 ns/op | 38.297 ns/op | 1.20 | | byteArrayEquals | 45.076 ns/op | 42.150 ns/op | 1.07 | | Buffer.compare | 10.290 ns/op | 9.4100 ns/op | 1.09 | | shuffle list - 16384 els | 6.2588 ms/op | 5.6375 ms/op | 1.11 | | shuffle list - 250000 els | 91.162 ms/op | 83.733 ms/op | 1.09 | | processSlot - 1 slots | 12.817 us/op | 12.813 us/op | 1.00 | | processSlot - 32 slots | 3.0842 ms/op | 2.2860 ms/op | 1.35 | | getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 42.349 ms/op | 38.494 ms/op | 1.10 | | getCommitteeAssignments - req 1 vs - 250000 vc | 2.0827 ms/op | 1.7370 ms/op | 1.20 | | getCommitteeAssignments - req 100 vs - 250000 vc | 4.0203 ms/op | 3.5448 ms/op | 1.13 | | getCommitteeAssignments - req 1000 vs - 250000 vc | 4.2801 ms/op | 3.8300 ms/op | 1.12 | | findModifiedValidators - 10000 modified validators | 254.48 ms/op | 233.02 ms/op | 1.09 | | findModifiedValidators - 1000 modified validators | 177.61 ms/op | 157.93 ms/op | 1.12 | | findModifiedValidators - 100 modified validators | 155.32 ms/op | 148.04 ms/op | 1.05 | | findModifiedValidators - 10 modified validators | 175.79 ms/op | 151.80 ms/op | 1.16 | | findModifiedValidators - 1 modified validators | 178.46 ms/op | 134.83 ms/op | 1.32 | | findModifiedValidators - no difference | 157.25 ms/op | 134.45 ms/op | 1.17 | | compare ViewDUs | 3.2056 s/op | 3.0242 s/op | 1.06 | | compare each validator Uint8Array | 1.8509 s/op | 1.1728 s/op | 1.58 | | compare ViewDU to Uint8Array | 1.1151 s/op | 787.53 ms/op | 1.42 | | migrate state 1000000 validators, 24 modified, 0 new | 575.96 ms/op | 544.09 ms/op | 1.06 | | migrate state 1000000 validators, 1700 modified, 1000 new | 832.94 ms/op | 747.34 ms/op | 1.11 | | migrate state 1000000 validators, 3400 modified, 2000 new | 1.0073 s/op | 1.0147 s/op | 0.99 | | migrate state 1500000 validators, 24 modified, 0 new | 647.74 ms/op | 565.87 ms/op | 1.14 | | migrate state 1500000 validators, 1700 modified, 1000 new | 856.25 ms/op | 766.84 ms/op | 1.12 | | migrate state 1500000 validators, 3400 modified, 2000 new | 968.71 ms/op | 1.0520 s/op | 0.92 | | RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 4.2700 ns/op | 6.9500 ns/op | 0.61 | | state getBlockRootAtSlot - 250000 vs - 7PWei | 699.48 ns/op | 783.56 ns/op | 0.89 | | computeProposers - vc 250000 | 7.6585 ms/op | 5.9992 ms/op | 1.28 | | computeEpochShuffling - vc 250000 | 91.574 ms/op | 88.044 ms/op | 1.04 | | getNextSyncCommittee - vc 250000 | 122.92 ms/op | 116.03 ms/op | 1.06 | | computeSigningRoot for AttestationData | 23.098 us/op | 26.055 us/op | 0.89 | | hash AttestationData serialized data then Buffer.toString(base64) | 1.4890 us/op | 1.2880 us/op | 1.16 | | toHexString serialized data | 866.78 ns/op | 815.01 ns/op | 1.06 | | Buffer.toString(base64) | 172.33 ns/op | 142.88 ns/op | 1.21 |

by benchmarkbot/action

wemeetagain commented 2 months ago

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