ChainSafe / lodestar

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

docs: revert docs link removal #6864

Closed jeluard closed 3 weeks ago

jeluard commented 3 weeks ago

Motivation

Make sure all relevant files are available in docs. Also improve collapsed section.

codecov[bot] commented 3 weeks ago

Codecov Report

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

Project coverage is 62.76%. Comparing base (966f3ac) to head (8d7bc17). Report is 10 commits behind head on unstable.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## unstable #6864 +/- ## ============================================ + Coverage 62.20% 62.76% +0.56% ============================================ Files 571 578 +7 Lines 60021 61273 +1252 Branches 1976 2115 +139 ============================================ + Hits 37334 38456 +1122 - Misses 22644 22779 +135 + Partials 43 38 -5 ```
github-actions[bot] commented 3 weeks ago

Performance Report

✔️ no performance regression detected

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: 07419b767cca4f1c1a9f546e62e2edf1fa4066b5 Previous: 3be656bb2279c9ed5ab8d3117e368d02b21c5046 Ratio
forkChoice updateHead vc 100000 bc 64 eq 0 385.18 us/op 1.2012 ms/op 0.32
Full benchmark results | Benchmark suite | Current: 07419b767cca4f1c1a9f546e62e2edf1fa4066b5 | Previous: 3be656bb2279c9ed5ab8d3117e368d02b21c5046 | Ratio | |-|-|-|-| | getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 497.54 us/op | 1.1239 ms/op | 0.44 | | getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 40.512 us/op | 83.503 us/op | 0.49 | | BLS verify - blst-native | 1.0654 ms/op | 1.3629 ms/op | 0.78 | | BLS verifyMultipleSignatures 3 - blst-native | 2.2554 ms/op | 2.9835 ms/op | 0.76 | | BLS verifyMultipleSignatures 8 - blst-native | 5.0031 ms/op | 6.7223 ms/op | 0.74 | | BLS verifyMultipleSignatures 32 - blst-native | 19.051 ms/op | 22.745 ms/op | 0.84 | | BLS verifyMultipleSignatures 64 - blst-native | 37.522 ms/op | 45.844 ms/op | 0.82 | | BLS verifyMultipleSignatures 128 - blst-native | 74.582 ms/op | 105.22 ms/op | 0.71 | | BLS deserializing 10000 signatures | 776.30 ms/op | 995.85 ms/op | 0.78 | | BLS deserializing 100000 signatures | 7.7153 s/op | 9.3458 s/op | 0.83 | | BLS verifyMultipleSignatures - same message - 3 - blst-native | 1.1356 ms/op | 1.3663 ms/op | 0.83 | | BLS verifyMultipleSignatures - same message - 8 - blst-native | 1.2905 ms/op | 1.5286 ms/op | 0.84 | | BLS verifyMultipleSignatures - same message - 32 - blst-native | 2.0275 ms/op | 2.4822 ms/op | 0.82 | | BLS verifyMultipleSignatures - same message - 64 - blst-native | 3.3725 ms/op | 3.5260 ms/op | 0.96 | | BLS verifyMultipleSignatures - same message - 128 - blst-native | 6.0123 ms/op | 5.8715 ms/op | 1.02 | | BLS aggregatePubkeys 32 - blst-native | 21.841 us/op | 26.996 us/op | 0.81 | | BLS aggregatePubkeys 128 - blst-native | 85.011 us/op | 106.72 us/op | 0.80 | | notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 56.007 ms/op | 66.512 ms/op | 0.84 | | notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 58.450 ms/op | 84.646 ms/op | 0.69 | | notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 28.911 ms/op | 49.935 ms/op | 0.58 | | getSlashingsAndExits - default max | 87.666 us/op | 127.87 us/op | 0.69 | | getSlashingsAndExits - 2k | 224.01 us/op | 338.32 us/op | 0.66 | | proposeBlockBody type=full, size=empty | 5.0138 ms/op | 7.3718 ms/op | 0.68 | | isKnown best case - 1 super set check | 460.00 ns/op | 460.00 ns/op | 1.00 | | isKnown normal case - 2 super set checks | 434.00 ns/op | 357.00 ns/op | 1.22 | | isKnown worse case - 16 super set checks | 436.00 ns/op | 432.00 ns/op | 1.01 | | InMemoryCheckpointStateCache - add get delete | 3.7400 us/op | 5.6700 us/op | 0.66 | | validate api signedAggregateAndProof - struct | 2.2731 ms/op | 2.7218 ms/op | 0.84 | | validate gossip signedAggregateAndProof - struct | 2.2728 ms/op | 2.7322 ms/op | 0.83 | | validate gossip attestation - vc 640000 | 1.1264 ms/op | 1.3139 ms/op | 0.86 | | batch validate gossip attestation - vc 640000 - chunk 32 | 128.10 us/op | 162.78 us/op | 0.79 | | batch validate gossip attestation - vc 640000 - chunk 64 | 114.27 us/op | 159.00 us/op | 0.72 | | batch validate gossip attestation - vc 640000 - chunk 128 | 108.48 us/op | 150.36 us/op | 0.72 | | batch validate gossip attestation - vc 640000 - chunk 256 | 102.12 us/op | 134.24 us/op | 0.76 | | pickEth1Vote - no votes | 844.16 us/op | 1.2442 ms/op | 0.68 | | pickEth1Vote - max votes | 7.1393 ms/op | 11.393 ms/op | 0.63 | | pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 13.980 ms/op | 20.825 ms/op | 0.67 | | pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 19.651 ms/op | 28.872 ms/op | 0.68 | | pickEth1Vote - Eth1Data fastSerialize value x2048 | 368.77 us/op | 626.39 us/op | 0.59 | | pickEth1Vote - Eth1Data fastSerialize tree x2048 | 5.5264 ms/op | 5.0378 ms/op | 1.10 | | bytes32 toHexString | 543.00 ns/op | 657.00 ns/op | 0.83 | | bytes32 Buffer.toString(hex) | 406.00 ns/op | 256.00 ns/op | 1.59 | | bytes32 Buffer.toString(hex) from Uint8Array | 502.00 ns/op | 479.00 ns/op | 1.05 | | bytes32 Buffer.toString(hex) + 0x | 404.00 ns/op | 256.00 ns/op | 1.58 | | Object access 1 prop | 0.30200 ns/op | 0.16400 ns/op | 1.84 | | Map access 1 prop | 0.29700 ns/op | 0.13800 ns/op | 2.15 | | Object get x1000 | 4.7290 ns/op | 6.0360 ns/op | 0.78 | | Map get x1000 | 5.5150 ns/op | 6.4400 ns/op | 0.86 | | Object set x1000 | 21.737 ns/op | 37.252 ns/op | 0.58 | | Map set x1000 | 18.526 ns/op | 27.399 ns/op | 0.68 | | Return object 10000 times | 0.28020 ns/op | 0.30300 ns/op | 0.92 | | Throw Error 10000 times | 2.4921 us/op | 3.4793 us/op | 0.72 | | fastMsgIdFn sha256 / 200 bytes | 1.8320 us/op | 2.3520 us/op | 0.78 | | fastMsgIdFn h32 xxhash / 200 bytes | 388.00 ns/op | 287.00 ns/op | 1.35 | | fastMsgIdFn h64 xxhash / 200 bytes | 439.00 ns/op | 301.00 ns/op | 1.46 | | fastMsgIdFn sha256 / 1000 bytes | 5.4960 us/op | 7.5500 us/op | 0.73 | | fastMsgIdFn h32 xxhash / 1000 bytes | 517.00 ns/op | 409.00 ns/op | 1.26 | | fastMsgIdFn h64 xxhash / 1000 bytes | 499.00 ns/op | 373.00 ns/op | 1.34 | | fastMsgIdFn sha256 / 10000 bytes | 47.429 us/op | 65.681 us/op | 0.72 | | fastMsgIdFn h32 xxhash / 10000 bytes | 1.7990 us/op | 1.9570 us/op | 0.92 | | fastMsgIdFn h64 xxhash / 10000 bytes | 1.2610 us/op | 1.2470 us/op | 1.01 | | send data - 1000 256B messages | 9.4077 ms/op | 13.365 ms/op | 0.70 | | send data - 1000 512B messages | 13.048 ms/op | 19.439 ms/op | 0.67 | | send data - 1000 1024B messages | 20.101 ms/op | 29.912 ms/op | 0.67 | | send data - 1000 1200B messages | 23.650 ms/op | 29.192 ms/op | 0.81 | | send data - 1000 2048B messages | 28.055 ms/op | 34.677 ms/op | 0.81 | | send data - 1000 4096B messages | 24.618 ms/op | 34.772 ms/op | 0.71 | | send data - 1000 16384B messages | 63.994 ms/op | 74.786 ms/op | 0.86 | | send data - 1000 65536B messages | 246.24 ms/op | 253.37 ms/op | 0.97 | | enrSubnets - fastDeserialize 64 bits | 1.1110 us/op | 1.7650 us/op | 0.63 | | enrSubnets - ssz BitVector 64 bits | 501.00 ns/op | 518.00 ns/op | 0.97 | | enrSubnets - fastDeserialize 4 bits | 324.00 ns/op | 224.00 ns/op | 1.45 | | enrSubnets - ssz BitVector 4 bits | 513.00 ns/op | 471.00 ns/op | 1.09 | | prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 136.76 us/op | 221.02 us/op | 0.62 | | prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 149.65 us/op | 239.17 us/op | 0.63 | | prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 307.08 us/op | 316.19 us/op | 0.97 | | prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 446.12 us/op | 473.46 us/op | 0.94 | | prioritizePeers score 0:0 att 64-1 sync 4-1 | 620.91 us/op | 936.35 us/op | 0.66 | | array of 16000 items push then shift | 1.2928 us/op | 1.7531 us/op | 0.74 | | LinkedList of 16000 items push then shift | 6.4200 ns/op | 8.2760 ns/op | 0.78 | | array of 16000 items push then pop | 78.431 ns/op | 144.77 ns/op | 0.54 | | LinkedList of 16000 items push then pop | 6.3170 ns/op | 8.5480 ns/op | 0.74 | | array of 24000 items push then shift | 1.8802 us/op | 2.6200 us/op | 0.72 | | LinkedList of 24000 items push then shift | 6.5000 ns/op | 8.8030 ns/op | 0.74 | | array of 24000 items push then pop | 109.70 ns/op | 198.04 ns/op | 0.55 | | LinkedList of 24000 items push then pop | 6.2300 ns/op | 7.8780 ns/op | 0.79 | | intersect bitArray bitLen 8 | 5.3870 ns/op | 7.2470 ns/op | 0.74 | | intersect array and set length 8 | 40.437 ns/op | 58.427 ns/op | 0.69 | | intersect bitArray bitLen 128 | 26.379 ns/op | 33.569 ns/op | 0.79 | | intersect array and set length 128 | 564.63 ns/op | 810.33 ns/op | 0.70 | | bitArray.getTrueBitIndexes() bitLen 128 | 2.7310 us/op | 2.4060 us/op | 1.14 | | bitArray.getTrueBitIndexes() bitLen 248 | 3.0640 us/op | 4.4190 us/op | 0.69 | | bitArray.getTrueBitIndexes() bitLen 512 | 6.2960 us/op | 10.105 us/op | 0.62 | | Buffer.concat 32 items | 1.0350 us/op | 1.2460 us/op | 0.83 | | Uint8Array.set 32 items | 1.7050 us/op | 2.1550 us/op | 0.79 | | Buffer.copy | 1.8240 us/op | 1.9490 us/op | 0.94 | | Uint8Array.set - with subarray | 2.4100 us/op | 3.5860 us/op | 0.67 | | Uint8Array.set - without subarray | 1.6670 us/op | 1.6670 us/op | 1.00 | | Set add up to 64 items then delete first | 1.7789 us/op | 3.1049 us/op | 0.57 | | OrderedSet add up to 64 items then delete first | 2.7671 us/op | 5.7634 us/op | 0.48 | | Set add up to 64 items then delete last | 2.0301 us/op | 3.5539 us/op | 0.57 | | OrderedSet add up to 64 items then delete last | 3.0620 us/op | 5.4541 us/op | 0.56 | | Set add up to 64 items then delete middle | 2.0233 us/op | 3.5535 us/op | 0.57 | | OrderedSet add up to 64 items then delete middle | 4.1550 us/op | 7.1284 us/op | 0.58 | | Set add up to 128 items then delete first | 3.6940 us/op | 6.9868 us/op | 0.53 | | OrderedSet add up to 128 items then delete first | 5.8298 us/op | 11.120 us/op | 0.52 | | Set add up to 128 items then delete last | 3.5662 us/op | 6.8925 us/op | 0.52 | | OrderedSet add up to 128 items then delete last | 5.4678 us/op | 11.521 us/op | 0.47 | | Set add up to 128 items then delete middle | 3.5602 us/op | 7.1696 us/op | 0.50 | | OrderedSet add up to 128 items then delete middle | 10.961 us/op | 18.636 us/op | 0.59 | | Set add up to 256 items then delete first | 7.2322 us/op | 16.146 us/op | 0.45 | | OrderedSet add up to 256 items then delete first | 11.693 us/op | 24.599 us/op | 0.48 | | Set add up to 256 items then delete last | 7.0334 us/op | 15.107 us/op | 0.47 | | OrderedSet add up to 256 items then delete last | 11.039 us/op | 23.445 us/op | 0.47 | | Set add up to 256 items then delete middle | 7.0142 us/op | 14.618 us/op | 0.48 | | OrderedSet add up to 256 items then delete middle | 31.975 us/op | 52.380 us/op | 0.61 | | transfer serialized Status (84 B) | 1.4400 us/op | 1.6630 us/op | 0.87 | | copy serialized Status (84 B) | 1.2210 us/op | 1.4390 us/op | 0.85 | | transfer serialized SignedVoluntaryExit (112 B) | 1.6650 us/op | 1.7780 us/op | 0.94 | | copy serialized SignedVoluntaryExit (112 B) | 1.3500 us/op | 1.7550 us/op | 0.77 | | transfer serialized ProposerSlashing (416 B) | 2.5150 us/op | 2.7260 us/op | 0.92 | | copy serialized ProposerSlashing (416 B) | 1.8030 us/op | 2.6580 us/op | 0.68 | | transfer serialized Attestation (485 B) | 2.2350 us/op | 3.2410 us/op | 0.69 | | copy serialized Attestation (485 B) | 1.8580 us/op | 2.7380 us/op | 0.68 | | transfer serialized AttesterSlashing (33232 B) | 2.2620 us/op | 3.4170 us/op | 0.66 | | copy serialized AttesterSlashing (33232 B) | 4.2800 us/op | 11.212 us/op | 0.38 | | transfer serialized Small SignedBeaconBlock (128000 B) | 2.6200 us/op | 4.2570 us/op | 0.62 | | copy serialized Small SignedBeaconBlock (128000 B) | 9.6990 us/op | 36.057 us/op | 0.27 | | transfer serialized Avg SignedBeaconBlock (200000 B) | 3.2340 us/op | 5.7700 us/op | 0.56 | | copy serialized Avg SignedBeaconBlock (200000 B) | 13.467 us/op | 54.260 us/op | 0.25 | | transfer serialized BlobsSidecar (524380 B) | 3.0610 us/op | 7.2730 us/op | 0.42 | | copy serialized BlobsSidecar (524380 B) | 75.768 us/op | 146.55 us/op | 0.52 | | transfer serialized Big SignedBeaconBlock (1000000 B) | 3.4610 us/op | 5.8070 us/op | 0.60 | | copy serialized Big SignedBeaconBlock (1000000 B) | 205.06 us/op | 301.76 us/op | 0.68 | | pass gossip attestations to forkchoice per slot | 2.5583 ms/op | 4.5358 ms/op | 0.56 | | forkChoice updateHead vc 100000 bc 64 eq 0 | 385.18 us/op | 1.2012 ms/op | 0.32 | | forkChoice updateHead vc 600000 bc 64 eq 0 | 2.3584 ms/op | 4.4277 ms/op | 0.53 | | forkChoice updateHead vc 1000000 bc 64 eq 0 | 4.1432 ms/op | 7.0573 ms/op | 0.59 | | forkChoice updateHead vc 600000 bc 320 eq 0 | 2.4903 ms/op | 4.1550 ms/op | 0.60 | | forkChoice updateHead vc 600000 bc 1200 eq 0 | 2.6406 ms/op | 4.2791 ms/op | 0.62 | | forkChoice updateHead vc 600000 bc 7200 eq 0 | 2.7960 ms/op | 4.4792 ms/op | 0.62 | | forkChoice updateHead vc 600000 bc 64 eq 1000 | 9.5976 ms/op | 11.708 ms/op | 0.82 | | forkChoice updateHead vc 600000 bc 64 eq 10000 | 9.3837 ms/op | 13.119 ms/op | 0.72 | | forkChoice updateHead vc 600000 bc 64 eq 300000 | 11.477 ms/op | 23.660 ms/op | 0.49 | | computeDeltas 500000 validators 300 proto nodes | 2.9558 ms/op | 4.2643 ms/op | 0.69 | | computeDeltas 500000 validators 1200 proto nodes | 2.9403 ms/op | 4.1202 ms/op | 0.71 | | computeDeltas 500000 validators 7200 proto nodes | 2.9267 ms/op | 4.3026 ms/op | 0.68 | | computeDeltas 750000 validators 300 proto nodes | 10.809 ms/op | 6.1369 ms/op | 1.76 | | computeDeltas 750000 validators 1200 proto nodes | 4.3860 ms/op | 6.0803 ms/op | 0.72 | | computeDeltas 750000 validators 7200 proto nodes | 4.4610 ms/op | 5.8363 ms/op | 0.76 | | computeDeltas 1400000 validators 300 proto nodes | 13.538 ms/op | 11.020 ms/op | 1.23 | | computeDeltas 1400000 validators 1200 proto nodes | 8.3045 ms/op | 10.955 ms/op | 0.76 | | computeDeltas 1400000 validators 7200 proto nodes | 8.3277 ms/op | 11.694 ms/op | 0.71 | | computeDeltas 2100000 validators 300 proto nodes | 37.406 ms/op | 17.973 ms/op | 2.08 | | computeDeltas 2100000 validators 1200 proto nodes | 12.456 ms/op | 17.177 ms/op | 0.73 | | computeDeltas 2100000 validators 7200 proto nodes | 12.282 ms/op | 19.354 ms/op | 0.63 | | altair processAttestation - 250000 vs - 7PWei normalcase | 1.3927 ms/op | 2.3556 ms/op | 0.59 | | altair processAttestation - 250000 vs - 7PWei worstcase | 2.1208 ms/op | 3.5006 ms/op | 0.61 | | altair processAttestation - setStatus - 1/6 committees join | 63.211 us/op | 119.06 us/op | 0.53 | | altair processAttestation - setStatus - 1/3 committees join | 126.74 us/op | 196.73 us/op | 0.64 | | altair processAttestation - setStatus - 1/2 committees join | 185.91 us/op | 280.83 us/op | 0.66 | | altair processAttestation - setStatus - 2/3 committees join | 254.99 us/op | 355.98 us/op | 0.72 | | altair processAttestation - setStatus - 4/5 committees join | 393.47 us/op | 523.62 us/op | 0.75 | | altair processAttestation - setStatus - 100% committees join | 456.10 us/op | 678.28 us/op | 0.67 | | altair processBlock - 250000 vs - 7PWei normalcase | 4.3451 ms/op | 4.9941 ms/op | 0.87 | | altair processBlock - 250000 vs - 7PWei normalcase hashState | 24.386 ms/op | 29.083 ms/op | 0.84 | | altair processBlock - 250000 vs - 7PWei worstcase | 44.882 ms/op | 49.195 ms/op | 0.91 | | altair processBlock - 250000 vs - 7PWei worstcase hashState | 63.624 ms/op | 89.631 ms/op | 0.71 | | phase0 processBlock - 250000 vs - 7PWei normalcase | 1.5007 ms/op | 2.4626 ms/op | 0.61 | | phase0 processBlock - 250000 vs - 7PWei worstcase | 23.126 ms/op | 34.022 ms/op | 0.68 | | altair processEth1Data - 250000 vs - 7PWei normalcase | 236.34 us/op | 503.26 us/op | 0.47 | | getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 4.9220 us/op | 8.0200 us/op | 0.61 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 17.715 us/op | 31.392 us/op | 0.56 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 6.7350 us/op | 11.253 us/op | 0.60 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 5.1090 us/op | 7.8270 us/op | 0.65 | | getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 78.639 us/op | 144.02 us/op | 0.55 | | getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 780.01 us/op | 922.50 us/op | 0.85 | | getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 1.1279 ms/op | 1.4238 ms/op | 0.79 | | getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 634.56 us/op | 1.3314 ms/op | 0.48 | | getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 2.0164 ms/op | 4.0120 ms/op | 0.50 | | getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 1.0926 ms/op | 2.2789 ms/op | 0.48 | | getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 2.9310 ms/op | 5.1304 ms/op | 0.57 | | Tree 40 250000 create | 180.33 ms/op | 424.93 ms/op | 0.42 | | Tree 40 250000 get(125000) | 116.92 ns/op | 180.06 ns/op | 0.65 | | Tree 40 250000 set(125000) | 536.62 ns/op | 1.4649 us/op | 0.37 | | Tree 40 250000 toArray() | 16.803 ms/op | 25.382 ms/op | 0.66 | | Tree 40 250000 iterate all - toArray() + loop | 17.459 ms/op | 26.159 ms/op | 0.67 | | Tree 40 250000 iterate all - get(i) | 43.717 ms/op | 69.395 ms/op | 0.63 | | MutableVector 250000 create | 8.6249 ms/op | 18.284 ms/op | 0.47 | | MutableVector 250000 get(125000) | 5.8480 ns/op | 7.0600 ns/op | 0.83 | | MutableVector 250000 set(125000) | 178.86 ns/op | 512.37 ns/op | 0.35 | | MutableVector 250000 toArray() | 3.8941 ms/op | 5.7566 ms/op | 0.68 | | MutableVector 250000 iterate all - toArray() + loop | 3.8002 ms/op | 6.6884 ms/op | 0.57 | | MutableVector 250000 iterate all - get(i) | 1.3862 ms/op | 2.4736 ms/op | 0.56 | | Array 250000 create | 3.2159 ms/op | 5.8563 ms/op | 0.55 | | Array 250000 clone - spread | 1.2688 ms/op | 3.6818 ms/op | 0.34 | | Array 250000 get(125000) | 0.57300 ns/op | 0.54800 ns/op | 1.05 | | Array 250000 set(125000) | 0.58600 ns/op | 0.54300 ns/op | 1.08 | | Array 250000 iterate all - loop | 75.457 us/op | 102.72 us/op | 0.73 | | effectiveBalanceIncrements clone Uint8Array 300000 | 24.461 us/op | 66.013 us/op | 0.37 | | effectiveBalanceIncrements clone MutableVector 300000 | 304.00 ns/op | 145.00 ns/op | 2.10 | | effectiveBalanceIncrements rw all Uint8Array 300000 | 164.44 us/op | 218.78 us/op | 0.75 | | effectiveBalanceIncrements rw all MutableVector 300000 | 56.450 ms/op | 147.11 ms/op | 0.38 | | phase0 afterProcessEpoch - 250000 vs - 7PWei | 74.102 ms/op | 109.56 ms/op | 0.68 | | phase0 beforeProcessEpoch - 250000 vs - 7PWei | 36.105 ms/op | 47.133 ms/op | 0.77 | | altair processEpoch - mainnet_e81889 | 324.07 ms/op | 463.62 ms/op | 0.70 | | mainnet_e81889 - altair beforeProcessEpoch | 60.582 ms/op | 94.145 ms/op | 0.64 | | mainnet_e81889 - altair processJustificationAndFinalization | 9.6370 us/op | 25.267 us/op | 0.38 | | mainnet_e81889 - altair processInactivityUpdates | 6.0570 ms/op | 8.0442 ms/op | 0.75 | | mainnet_e81889 - altair processRewardsAndPenalties | 46.440 ms/op | 58.536 ms/op | 0.79 | | mainnet_e81889 - altair processRegistryUpdates | 1.8360 us/op | 4.0870 us/op | 0.45 | | mainnet_e81889 - altair processSlashings | 725.00 ns/op | 1.5760 us/op | 0.46 | | mainnet_e81889 - altair processEth1DataReset | 708.00 ns/op | 1.1920 us/op | 0.59 | | mainnet_e81889 - altair processEffectiveBalanceUpdates | 2.0315 ms/op | 2.5204 ms/op | 0.81 | | mainnet_e81889 - altair processSlashingsReset | 2.9000 us/op | 10.387 us/op | 0.28 | | mainnet_e81889 - altair processRandaoMixesReset | 3.1020 us/op | 9.4080 us/op | 0.33 | | mainnet_e81889 - altair processHistoricalRootsUpdate | 922.00 ns/op | 2.3490 us/op | 0.39 | | mainnet_e81889 - altair processParticipationFlagUpdates | 2.5390 us/op | 6.1760 us/op | 0.41 | | mainnet_e81889 - altair processSyncCommitteeUpdates | 779.00 ns/op | 1.3290 us/op | 0.59 | | mainnet_e81889 - altair afterProcessEpoch | 76.987 ms/op | 99.544 ms/op | 0.77 | | capella processEpoch - mainnet_e217614 | 1.1708 s/op | 1.4783 s/op | 0.79 | | mainnet_e217614 - capella beforeProcessEpoch | 240.83 ms/op | 275.04 ms/op | 0.88 | | mainnet_e217614 - capella processJustificationAndFinalization | 11.475 us/op | 18.837 us/op | 0.61 | | mainnet_e217614 - capella processInactivityUpdates | 16.481 ms/op | 21.892 ms/op | 0.75 | | mainnet_e217614 - capella processRewardsAndPenalties | 248.82 ms/op | 260.03 ms/op | 0.96 | | mainnet_e217614 - capella processRegistryUpdates | 10.962 us/op | 14.845 us/op | 0.74 | | mainnet_e217614 - capella processSlashings | 808.00 ns/op | 432.00 ns/op | 1.87 | | mainnet_e217614 - capella processEth1DataReset | 724.00 ns/op | 446.00 ns/op | 1.62 | | mainnet_e217614 - capella processEffectiveBalanceUpdates | 5.0065 ms/op | 5.2770 ms/op | 0.95 | | mainnet_e217614 - capella processSlashingsReset | 3.1270 us/op | 4.4960 us/op | 0.70 | | mainnet_e217614 - capella processRandaoMixesReset | 3.0440 us/op | 9.1790 us/op | 0.33 | | mainnet_e217614 - capella processHistoricalRootsUpdate | 739.00 ns/op | 525.00 ns/op | 1.41 | | mainnet_e217614 - capella processParticipationFlagUpdates | 1.7850 us/op | 2.2720 us/op | 0.79 | | mainnet_e217614 - capella afterProcessEpoch | 242.66 ms/op | 236.46 ms/op | 1.03 | | phase0 processEpoch - mainnet_e58758 | 298.95 ms/op | 421.84 ms/op | 0.71 | | mainnet_e58758 - phase0 beforeProcessEpoch | 110.84 ms/op | 122.99 ms/op | 0.90 | | mainnet_e58758 - phase0 processJustificationAndFinalization | 9.8600 us/op | 14.702 us/op | 0.67 | | mainnet_e58758 - phase0 processRewardsAndPenalties | 34.021 ms/op | 32.658 ms/op | 1.04 | | mainnet_e58758 - phase0 processRegistryUpdates | 6.1330 us/op | 11.083 us/op | 0.55 | | mainnet_e58758 - phase0 processSlashings | 730.00 ns/op | 414.00 ns/op | 1.76 | | mainnet_e58758 - phase0 processEth1DataReset | 731.00 ns/op | 414.00 ns/op | 1.77 | | mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 1.1055 ms/op | 1.1819 ms/op | 0.94 | | mainnet_e58758 - phase0 processSlashingsReset | 2.2210 us/op | 4.4470 us/op | 0.50 | | mainnet_e58758 - phase0 processRandaoMixesReset | 3.1350 us/op | 7.6930 us/op | 0.41 | | mainnet_e58758 - phase0 processHistoricalRootsUpdate | 710.00 ns/op | 605.00 ns/op | 1.17 | | mainnet_e58758 - phase0 processParticipationRecordUpdates | 2.6580 us/op | 4.0820 us/op | 0.65 | | mainnet_e58758 - phase0 afterProcessEpoch | 66.543 ms/op | 81.646 ms/op | 0.82 | | phase0 processEffectiveBalanceUpdates - 250000 normalcase | 1.3330 ms/op | 1.2902 ms/op | 1.03 | | phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 1.4140 ms/op | 2.4218 ms/op | 0.58 | | altair processInactivityUpdates - 250000 normalcase | 17.369 ms/op | 18.841 ms/op | 0.92 | | altair processInactivityUpdates - 250000 worstcase | 17.314 ms/op | 20.328 ms/op | 0.85 | | phase0 processRegistryUpdates - 250000 normalcase | 3.3460 us/op | 8.5410 us/op | 0.39 | | phase0 processRegistryUpdates - 250000 badcase_full_deposits | 327.67 us/op | 347.45 us/op | 0.94 | | phase0 processRegistryUpdates - 250000 worstcase 0.5 | 94.896 ms/op | 132.66 ms/op | 0.72 | | altair processRewardsAndPenalties - 250000 normalcase | 37.878 ms/op | 42.689 ms/op | 0.89 | | altair processRewardsAndPenalties - 250000 worstcase | 40.384 ms/op | 44.144 ms/op | 0.91 | | phase0 getAttestationDeltas - 250000 normalcase | 5.4946 ms/op | 8.1239 ms/op | 0.68 | | phase0 getAttestationDeltas - 250000 worstcase | 6.5243 ms/op | 11.369 ms/op | 0.57 | | phase0 processSlashings - 250000 worstcase | 92.256 us/op | 133.50 us/op | 0.69 | | altair processSyncCommitteeUpdates - 250000 | 98.237 ms/op | 142.11 ms/op | 0.69 | | BeaconState.hashTreeRoot - No change | 500.00 ns/op | 400.00 ns/op | 1.25 | | BeaconState.hashTreeRoot - 1 full validator | 95.950 us/op | 125.36 us/op | 0.77 | | BeaconState.hashTreeRoot - 32 full validator | 928.76 us/op | 1.2021 ms/op | 0.77 | | BeaconState.hashTreeRoot - 512 full validator | 10.115 ms/op | 16.624 ms/op | 0.61 | | BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 109.22 us/op | 200.87 us/op | 0.54 | | BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 1.4517 ms/op | 2.9524 ms/op | 0.49 | | BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 20.128 ms/op | 27.771 ms/op | 0.72 | | BeaconState.hashTreeRoot - 1 balances | 80.170 us/op | 106.69 us/op | 0.75 | | BeaconState.hashTreeRoot - 32 balances | 685.20 us/op | 1.0699 ms/op | 0.64 | | BeaconState.hashTreeRoot - 512 balances | 7.1487 ms/op | 8.7333 ms/op | 0.82 | | BeaconState.hashTreeRoot - 250000 balances | 116.79 ms/op | 161.71 ms/op | 0.72 | | aggregationBits - 2048 els - zipIndexesInBitList | 19.845 us/op | 26.095 us/op | 0.76 | | byteArrayEquals 32 | 48.301 ns/op | 55.844 ns/op | 0.86 | | Buffer.compare 32 | 39.182 ns/op | 47.600 ns/op | 0.82 | | byteArrayEquals 1024 | 1.2541 us/op | 1.6925 us/op | 0.74 | | Buffer.compare 1024 | 43.567 ns/op | 55.305 ns/op | 0.79 | | byteArrayEquals 16384 | 19.926 us/op | 26.314 us/op | 0.76 | | Buffer.compare 16384 | 211.59 ns/op | 233.46 ns/op | 0.91 | | byteArrayEquals 123687377 | 150.34 ms/op | 204.15 ms/op | 0.74 | | Buffer.compare 123687377 | 5.7291 ms/op | 8.4187 ms/op | 0.68 | | byteArrayEquals 32 - diff last byte | 45.454 ns/op | 53.241 ns/op | 0.85 | | Buffer.compare 32 - diff last byte | 37.259 ns/op | 46.554 ns/op | 0.80 | | byteArrayEquals 1024 - diff last byte | 1.2141 us/op | 1.6272 us/op | 0.75 | | Buffer.compare 1024 - diff last byte | 41.598 ns/op | 57.729 ns/op | 0.72 | | byteArrayEquals 16384 - diff last byte | 19.517 us/op | 25.835 us/op | 0.76 | | Buffer.compare 16384 - diff last byte | 199.51 ns/op | 241.02 ns/op | 0.83 | | byteArrayEquals 123687377 - diff last byte | 144.60 ms/op | 196.04 ms/op | 0.74 | | Buffer.compare 123687377 - diff last byte | 4.2922 ms/op | 9.4690 ms/op | 0.45 | | byteArrayEquals 32 - random bytes | 4.9390 ns/op | 5.3600 ns/op | 0.92 | | Buffer.compare 32 - random bytes | 41.725 ns/op | 52.804 ns/op | 0.79 | | byteArrayEquals 1024 - random bytes | 4.9860 ns/op | 6.1880 ns/op | 0.81 | | Buffer.compare 1024 - random bytes | 38.849 ns/op | 72.878 ns/op | 0.53 | | byteArrayEquals 16384 - random bytes | 5.5020 ns/op | 5.3430 ns/op | 1.03 | | Buffer.compare 16384 - random bytes | 40.538 ns/op | 47.067 ns/op | 0.86 | | byteArrayEquals 123687377 - random bytes | 7.8600 ns/op | 6.8200 ns/op | 1.15 | | Buffer.compare 123687377 - random bytes | 43.940 ns/op | 49.290 ns/op | 0.89 | | regular array get 100000 times | 30.854 us/op | 39.101 us/op | 0.79 | | wrappedArray get 100000 times | 30.831 us/op | 37.257 us/op | 0.83 | | arrayWithProxy get 100000 times | 9.6749 ms/op | 13.795 ms/op | 0.70 | | ssz.Root.equals | 43.033 ns/op | 47.506 ns/op | 0.91 | | byteArrayEquals | 42.498 ns/op | 45.966 ns/op | 0.92 | | Buffer.compare | 8.7970 ns/op | 10.766 ns/op | 0.82 | | shuffle list - 16384 els | 5.5387 ms/op | 6.5849 ms/op | 0.84 | | shuffle list - 250000 els | 81.283 ms/op | 97.032 ms/op | 0.84 | | processSlot - 1 slots | 12.763 us/op | 18.104 us/op | 0.70 | | processSlot - 32 slots | 2.0326 ms/op | 3.7351 ms/op | 0.54 | | getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 36.052 ms/op | 42.176 ms/op | 0.85 | | getCommitteeAssignments - req 1 vs - 250000 vc | 1.7828 ms/op | 2.4603 ms/op | 0.72 | | getCommitteeAssignments - req 100 vs - 250000 vc | 3.4993 ms/op | 4.3459 ms/op | 0.81 | | getCommitteeAssignments - req 1000 vs - 250000 vc | 3.7573 ms/op | 4.7061 ms/op | 0.80 | | findModifiedValidators - 10000 modified validators | 223.12 ms/op | 363.05 ms/op | 0.61 | | findModifiedValidators - 1000 modified validators | 140.89 ms/op | 217.02 ms/op | 0.65 | | findModifiedValidators - 100 modified validators | 148.39 ms/op | 218.68 ms/op | 0.68 | | findModifiedValidators - 10 modified validators | 128.99 ms/op | 190.57 ms/op | 0.68 | | findModifiedValidators - 1 modified validators | 131.46 ms/op | 209.29 ms/op | 0.63 | | findModifiedValidators - no difference | 126.57 ms/op | 195.10 ms/op | 0.65 | | compare ViewDUs | 2.9198 s/op | 3.4229 s/op | 0.85 | | compare each validator Uint8Array | 1.8081 s/op | 1.3861 s/op | 1.30 | | compare ViewDU to Uint8Array | 769.79 ms/op | 1.2857 s/op | 0.60 | | migrate state 1000000 validators, 24 modified, 0 new | 576.90 ms/op | 667.79 ms/op | 0.86 | | migrate state 1000000 validators, 1700 modified, 1000 new | 831.32 ms/op | 929.29 ms/op | 0.89 | | migrate state 1000000 validators, 3400 modified, 2000 new | 930.19 ms/op | 1.2863 s/op | 0.72 | | migrate state 1500000 validators, 24 modified, 0 new | 410.89 ms/op | 685.41 ms/op | 0.60 | | migrate state 1500000 validators, 1700 modified, 1000 new | 732.42 ms/op | 897.44 ms/op | 0.82 | | migrate state 1500000 validators, 3400 modified, 2000 new | 1.0273 s/op | 1.2037 s/op | 0.85 | | RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 5.9800 ns/op | 4.9700 ns/op | 1.20 | | state getBlockRootAtSlot - 250000 vs - 7PWei | 689.30 ns/op | 645.78 ns/op | 1.07 | | computeProposers - vc 250000 | 6.1914 ms/op | 8.2298 ms/op | 0.75 | | computeEpochShuffling - vc 250000 | 81.628 ms/op | 100.41 ms/op | 0.81 | | getNextSyncCommittee - vc 250000 | 108.38 ms/op | 132.46 ms/op | 0.82 | | computeSigningRoot for AttestationData | 27.294 us/op | 19.842 us/op | 1.38 | | hash AttestationData serialized data then Buffer.toString(base64) | 1.1439 us/op | 1.5721 us/op | 0.73 | | toHexString serialized data | 788.78 ns/op | 979.23 ns/op | 0.81 | | Buffer.toString(base64) | 139.58 ns/op | 206.21 ns/op | 0.68 |

by benchmarkbot/action

nflaig commented 3 weeks ago

Noticed there are plenty of links in our repo itself which lead to a "Page Not Found"

e.g. https://github.com/ChainSafe/lodestar/blob/14855ea72fa7c46c984ed13078aac1c21858b993/packages/beacon-node/README.md?plain=1#L21

need to make sure to update those if we restructure docs

wemeetagain commented 3 weeks ago

forgot to mention this one on the call, it would be nice to get this merged for 1.20

philknows commented 3 weeks ago

Approving everything up to my commit. Fixed some minor details and ready to go unless someone has strong opposition to this current structure.

nflaig commented 3 weeks ago

Minor thing I just noticed

image

subsections need some better titles

also "Lodestar Eth Consensus Lightclient Prover" is a ridiculous name :joy:

philknows commented 3 weeks ago

I'll be fixing up specific and outdated content in a new PR. Will rename that readme title there 😅