lodestar
lodestar copied to clipboard
docs: update documentation Oct 2024
Motivation
Our documentation has been undergoing incremental improvements to remove old content, update for relevance and add new content that hasn't been documented yet. This is one PR in a series of future PRs to improve docs for better user/developer experiences.
Related to #5961
Description
This PR addresses the following in our documentation:
- Fixes footer and just links to pertinent communications/call to actions
- Removes old .md files which were empty or otherwise, not being actively developed on
- Removes Google site verification as we no longer use any Google type analytics
- Spelling/grammar updates
- Removes content relating to The Merge
- Updates specification for hardware minimums/recommendations
- Fixes broken links
- Sidebar navigation updated to better arrange/detail information
- Persist our quickstart custom setup guide into our documentation. Previously located at https://hackmd.io/@philknows/rJegZyH9q
- Include proposer config documentation
More to come in future updates that were not included.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 48.51%. Comparing base (
aaac34a) to head (48fe25d). Report is 1 commits behind head on unstable.
Additional details and impacted files
@@ Coverage Diff @@
## unstable #7178 +/- ##
=========================================
Coverage 48.51% 48.51%
=========================================
Files 600 600
Lines 40138 40138
Branches 2058 2058
=========================================
Hits 19471 19471
Misses 20629 20629
Partials 38 38
Performance Report
✔️ no performance regression detected
Full benchmark results
| Benchmark suite | Current: 69f5139766ac4992ee45d7098418fd11720e132a | Previous: aaac34aeab632615ceb76ced2b89ca535371557a | Ratio |
|---|---|---|---|
| getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 1.7455 ms/op | 2.3495 ms/op | 0.74 |
| getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 43.503 us/op | 54.690 us/op | 0.80 |
| BLS verify - blst | 897.79 us/op | 877.88 us/op | 1.02 |
| BLS verifyMultipleSignatures 3 - blst | 1.3561 ms/op | 1.3142 ms/op | 1.03 |
| BLS verifyMultipleSignatures 8 - blst | 2.1093 ms/op | 1.7301 ms/op | 1.22 |
| BLS verifyMultipleSignatures 32 - blst | 4.9425 ms/op | 5.1367 ms/op | 0.96 |
| BLS verifyMultipleSignatures 64 - blst | 8.6409 ms/op | 9.7155 ms/op | 0.89 |
| BLS verifyMultipleSignatures 128 - blst | 16.327 ms/op | 18.178 ms/op | 0.90 |
| BLS deserializing 10000 signatures | 636.37 ms/op | 707.24 ms/op | 0.90 |
| BLS deserializing 100000 signatures | 6.5055 s/op | 7.0027 s/op | 0.93 |
| BLS verifyMultipleSignatures - same message - 3 - blst | 962.25 us/op | 909.28 us/op | 1.06 |
| BLS verifyMultipleSignatures - same message - 8 - blst | 1.1351 ms/op | 1.0677 ms/op | 1.06 |
| BLS verifyMultipleSignatures - same message - 32 - blst | 1.7267 ms/op | 1.7150 ms/op | 1.01 |
| BLS verifyMultipleSignatures - same message - 64 - blst | 2.5292 ms/op | 2.5694 ms/op | 0.98 |
| BLS verifyMultipleSignatures - same message - 128 - blst | 4.0859 ms/op | 4.3791 ms/op | 0.93 |
| BLS aggregatePubkeys 32 - blst | 18.168 us/op | 19.448 us/op | 0.93 |
| BLS aggregatePubkeys 128 - blst | 63.641 us/op | 69.584 us/op | 0.91 |
| notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 94.593 ms/op | 55.837 ms/op | 1.69 |
| notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 58.808 ms/op | 55.150 ms/op | 1.07 |
| notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 45.180 ms/op | 50.674 ms/op | 0.89 |
| getSlashingsAndExits - default max | 102.50 us/op | 115.11 us/op | 0.89 |
| getSlashingsAndExits - 2k | 329.34 us/op | 271.42 us/op | 1.21 |
| proposeBlockBody type=full, size=empty | 5.4159 ms/op | 5.9290 ms/op | 0.91 |
| isKnown best case - 1 super set check | 499.00 ns/op | 285.00 ns/op | 1.75 |
| isKnown normal case - 2 super set checks | 512.00 ns/op | 281.00 ns/op | 1.82 |
| isKnown worse case - 16 super set checks | 523.00 ns/op | 292.00 ns/op | 1.79 |
| InMemoryCheckpointStateCache - add get delete | 3.5110 us/op | 2.9220 us/op | 1.20 |
| validate api signedAggregateAndProof - struct | 1.4903 ms/op | 1.3995 ms/op | 1.06 |
| validate gossip signedAggregateAndProof - struct | 1.4709 ms/op | 1.4625 ms/op | 1.01 |
| batch validate gossip attestation - vc 640000 - chunk 32 | 137.01 us/op | 128.83 us/op | 1.06 |
| batch validate gossip attestation - vc 640000 - chunk 64 | 120.28 us/op | 112.79 us/op | 1.07 |
| batch validate gossip attestation - vc 640000 - chunk 128 | 106.45 us/op | 104.12 us/op | 1.02 |
| batch validate gossip attestation - vc 640000 - chunk 256 | 114.07 us/op | 107.72 us/op | 1.06 |
| pickEth1Vote - no votes | 1.0159 ms/op | 1.1445 ms/op | 0.89 |
| pickEth1Vote - max votes | 8.1131 ms/op | 6.2161 ms/op | 1.31 |
| pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 13.930 ms/op | 15.655 ms/op | 0.89 |
| pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 22.525 ms/op | 21.357 ms/op | 1.05 |
| pickEth1Vote - Eth1Data fastSerialize value x2048 | 464.67 us/op | 573.76 us/op | 0.81 |
| pickEth1Vote - Eth1Data fastSerialize tree x2048 | 3.9367 ms/op | 2.7316 ms/op | 1.44 |
| bytes32 toHexString | 899.00 ns/op | 497.00 ns/op | 1.81 |
| bytes32 Buffer.toString(hex) | 552.00 ns/op | 260.00 ns/op | 2.12 |
| bytes32 Buffer.toString(hex) from Uint8Array | 736.00 ns/op | 436.00 ns/op | 1.69 |
| bytes32 Buffer.toString(hex) + 0x | 563.00 ns/op | 269.00 ns/op | 2.09 |
| Object access 1 prop | 0.38500 ns/op | 0.14500 ns/op | 2.66 |
| Map access 1 prop | 0.34000 ns/op | 0.13700 ns/op | 2.48 |
| Object get x1000 | 5.2230 ns/op | 6.1240 ns/op | 0.85 |
| Map get x1000 | 5.9610 ns/op | 6.4310 ns/op | 0.93 |
| Object set x1000 | 40.267 ns/op | 35.694 ns/op | 1.13 |
| Map set x1000 | 35.062 ns/op | 24.693 ns/op | 1.42 |
| Return object 10000 times | 0.31380 ns/op | 0.30440 ns/op | 1.03 |
| Throw Error 10000 times | 2.8795 us/op | 3.5492 us/op | 0.81 |
| toHex | 138.69 ns/op | 166.71 ns/op | 0.83 |
| Buffer.from | 134.99 ns/op | 156.91 ns/op | 0.86 |
| shared Buffer | 81.459 ns/op | 96.598 ns/op | 0.84 |
| fastMsgIdFn sha256 / 200 bytes | 2.3510 us/op | 2.3880 us/op | 0.98 |
| fastMsgIdFn h32 xxhash / 200 bytes | 522.00 ns/op | 286.00 ns/op | 1.83 |
| fastMsgIdFn h64 xxhash / 200 bytes | 525.00 ns/op | 274.00 ns/op | 1.92 |
| fastMsgIdFn sha256 / 1000 bytes | 6.2810 us/op | 7.7420 us/op | 0.81 |
| fastMsgIdFn h32 xxhash / 1000 bytes | 641.00 ns/op | 408.00 ns/op | 1.57 |
| fastMsgIdFn h64 xxhash / 1000 bytes | 595.00 ns/op | 362.00 ns/op | 1.64 |
| fastMsgIdFn sha256 / 10000 bytes | 52.806 us/op | 66.292 us/op | 0.80 |
| fastMsgIdFn h32 xxhash / 10000 bytes | 2.0650 us/op | 1.9680 us/op | 1.05 |
| fastMsgIdFn h64 xxhash / 10000 bytes | 1.4180 us/op | 1.2870 us/op | 1.10 |
| send data - 1000 256B messages | 13.037 ms/op | 14.632 ms/op | 0.89 |
| send data - 1000 512B messages | 17.528 ms/op | 19.536 ms/op | 0.90 |
| send data - 1000 1024B messages | 27.965 ms/op | 28.528 ms/op | 0.98 |
| send data - 1000 1200B messages | 24.233 ms/op | 27.238 ms/op | 0.89 |
| send data - 1000 2048B messages | 28.747 ms/op | 34.959 ms/op | 0.82 |
| send data - 1000 4096B messages | 29.314 ms/op | 33.270 ms/op | 0.88 |
| send data - 1000 16384B messages | 64.489 ms/op | 74.311 ms/op | 0.87 |
| send data - 1000 65536B messages | 272.58 ms/op | 224.41 ms/op | 1.21 |
| enrSubnets - fastDeserialize 64 bits | 1.2210 us/op | 1.2460 us/op | 0.98 |
| enrSubnets - ssz BitVector 64 bits | 558.00 ns/op | 368.00 ns/op | 1.52 |
| enrSubnets - fastDeserialize 4 bits | 403.00 ns/op | 196.00 ns/op | 2.06 |
| enrSubnets - ssz BitVector 4 bits | 611.00 ns/op | 463.00 ns/op | 1.32 |
| prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 172.88 us/op | 215.48 us/op | 0.80 |
| prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 159.65 us/op | 151.84 us/op | 1.05 |
| prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 243.49 us/op | 360.59 us/op | 0.68 |
| prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 454.31 us/op | 457.59 us/op | 0.99 |
| prioritizePeers score 0:0 att 64-1 sync 4-1 | 681.43 us/op | 828.33 us/op | 0.82 |
| array of 16000 items push then shift | 1.3719 us/op | 1.7721 us/op | 0.77 |
| LinkedList of 16000 items push then shift | 6.7670 ns/op | 8.0550 ns/op | 0.84 |
| array of 16000 items push then pop | 134.96 ns/op | 136.73 ns/op | 0.99 |
| LinkedList of 16000 items push then pop | 6.5380 ns/op | 7.6050 ns/op | 0.86 |
| array of 24000 items push then shift | 2.0019 us/op | 2.5424 us/op | 0.79 |
| LinkedList of 24000 items push then shift | 6.5790 ns/op | 7.9910 ns/op | 0.82 |
| array of 24000 items push then pop | 195.79 ns/op | 184.89 ns/op | 1.06 |
| LinkedList of 24000 items push then pop | 6.5980 ns/op | 8.0050 ns/op | 0.82 |
| intersect bitArray bitLen 8 | 5.9750 ns/op | 6.9250 ns/op | 0.86 |
| intersect array and set length 8 | 42.195 ns/op | 70.080 ns/op | 0.60 |
| intersect bitArray bitLen 128 | 27.616 ns/op | 32.234 ns/op | 0.86 |
| intersect array and set length 128 | 605.36 ns/op | 931.98 ns/op | 0.65 |
| bitArray.getTrueBitIndexes() bitLen 128 | 2.6970 us/op | 2.2830 us/op | 1.18 |
| bitArray.getTrueBitIndexes() bitLen 248 | 3.2820 us/op | 3.8590 us/op | 0.85 |
| bitArray.getTrueBitIndexes() bitLen 512 | 6.9180 us/op | 9.0010 us/op | 0.77 |
| Buffer.concat 32 items | 1.1070 us/op | 1.0520 us/op | 1.05 |
| Uint8Array.set 32 items | 1.5260 us/op | 1.7340 us/op | 0.88 |
| Buffer.copy | 2.3420 us/op | 1.8530 us/op | 1.26 |
| Uint8Array.set - with subarray | 2.1790 us/op | 2.8990 us/op | 0.75 |
| Uint8Array.set - without subarray | 1.6510 us/op | 1.7320 us/op | 0.95 |
| getUint32 - dataview | 483.00 ns/op | 292.00 ns/op | 1.65 |
| getUint32 - manual | 442.00 ns/op | 223.00 ns/op | 1.98 |
| Set add up to 64 items then delete first | 1.9358 us/op | 2.8720 us/op | 0.67 |
| OrderedSet add up to 64 items then delete first | 2.8969 us/op | 4.8879 us/op | 0.59 |
| Set add up to 64 items then delete last | 2.0640 us/op | 3.3975 us/op | 0.61 |
| OrderedSet add up to 64 items then delete last | 3.1059 us/op | 4.1919 us/op | 0.74 |
| Set add up to 64 items then delete middle | 2.2962 us/op | 3.3042 us/op | 0.69 |
| OrderedSet add up to 64 items then delete middle | 5.3498 us/op | 6.3160 us/op | 0.85 |
| Set add up to 128 items then delete first | 4.8595 us/op | 6.1725 us/op | 0.79 |
| OrderedSet add up to 128 items then delete first | 7.6782 us/op | 10.365 us/op | 0.74 |
| Set add up to 128 items then delete last | 4.6089 us/op | 6.5444 us/op | 0.70 |
| OrderedSet add up to 128 items then delete last | 6.5924 us/op | 8.5805 us/op | 0.77 |
| Set add up to 128 items then delete middle | 4.4128 us/op | 5.4645 us/op | 0.81 |
| OrderedSet add up to 128 items then delete middle | 13.584 us/op | 16.751 us/op | 0.81 |
| Set add up to 256 items then delete first | 9.4429 us/op | 13.392 us/op | 0.71 |
| OrderedSet add up to 256 items then delete first | 15.038 us/op | 20.530 us/op | 0.73 |
| Set add up to 256 items then delete last | 8.8871 us/op | 12.176 us/op | 0.73 |
| OrderedSet add up to 256 items then delete last | 14.282 us/op | 20.031 us/op | 0.71 |
| Set add up to 256 items then delete middle | 7.7565 us/op | 13.529 us/op | 0.57 |
| OrderedSet add up to 256 items then delete middle | 38.477 us/op | 48.363 us/op | 0.80 |
| transfer serialized Status (84 B) | 1.4640 us/op | 1.5870 us/op | 0.92 |
| copy serialized Status (84 B) | 1.3420 us/op | 1.3900 us/op | 0.97 |
| transfer serialized SignedVoluntaryExit (112 B) | 1.5050 us/op | 1.6890 us/op | 0.89 |
| copy serialized SignedVoluntaryExit (112 B) | 1.4260 us/op | 1.6840 us/op | 0.85 |
| transfer serialized ProposerSlashing (416 B) | 1.6750 us/op | 2.1280 us/op | 0.79 |
| copy serialized ProposerSlashing (416 B) | 1.9620 us/op | 2.2040 us/op | 0.89 |
| transfer serialized Attestation (485 B) | 2.1710 us/op | 2.2270 us/op | 0.97 |
| copy serialized Attestation (485 B) | 2.2010 us/op | 2.1420 us/op | 1.03 |
| transfer serialized AttesterSlashing (33232 B) | 2.6650 us/op | 2.0300 us/op | 1.31 |
| copy serialized AttesterSlashing (33232 B) | 4.1430 us/op | 9.0790 us/op | 0.46 |
| transfer serialized Small SignedBeaconBlock (128000 B) | 1.7620 us/op | 3.7720 us/op | 0.47 |
| copy serialized Small SignedBeaconBlock (128000 B) | 14.334 us/op | 33.016 us/op | 0.43 |
| transfer serialized Avg SignedBeaconBlock (200000 B) | 1.7920 us/op | 5.1920 us/op | 0.35 |
| copy serialized Avg SignedBeaconBlock (200000 B) | 13.763 us/op | 48.725 us/op | 0.28 |
| transfer serialized BlobsSidecar (524380 B) | 2.8700 us/op | 6.3670 us/op | 0.45 |
| copy serialized BlobsSidecar (524380 B) | 125.85 us/op | 143.09 us/op | 0.88 |
| transfer serialized Big SignedBeaconBlock (1000000 B) | 3.3140 us/op | 6.0330 us/op | 0.55 |
| copy serialized Big SignedBeaconBlock (1000000 B) | 351.53 us/op | 242.49 us/op | 1.45 |
| pass gossip attestations to forkchoice per slot | 2.5283 ms/op | 3.0669 ms/op | 0.82 |
| forkChoice updateHead vc 100000 bc 64 eq 0 | 407.56 us/op | 472.06 us/op | 0.86 |
| forkChoice updateHead vc 600000 bc 64 eq 0 | 4.0755 ms/op | 5.7135 ms/op | 0.71 |
| forkChoice updateHead vc 1000000 bc 64 eq 0 | 4.1157 ms/op | 6.0334 ms/op | 0.68 |
| forkChoice updateHead vc 600000 bc 320 eq 0 | 2.3805 ms/op | 3.1215 ms/op | 0.76 |
| forkChoice updateHead vc 600000 bc 1200 eq 0 | 2.4383 ms/op | 3.3725 ms/op | 0.72 |
| forkChoice updateHead vc 600000 bc 7200 eq 0 | 2.7097 ms/op | 5.0891 ms/op | 0.53 |
| forkChoice updateHead vc 600000 bc 64 eq 1000 | 9.4858 ms/op | 11.009 ms/op | 0.86 |
| forkChoice updateHead vc 600000 bc 64 eq 10000 | 9.4246 ms/op | 10.948 ms/op | 0.86 |
| forkChoice updateHead vc 600000 bc 64 eq 300000 | 13.720 ms/op | 24.333 ms/op | 0.56 |
| computeDeltas 500000 validators 300 proto nodes | 3.5070 ms/op | 4.6616 ms/op | 0.75 |
| computeDeltas 500000 validators 1200 proto nodes | 3.4625 ms/op | 4.2515 ms/op | 0.81 |
| computeDeltas 500000 validators 7200 proto nodes | 3.4824 ms/op | 4.1258 ms/op | 0.84 |
| computeDeltas 750000 validators 300 proto nodes | 5.2482 ms/op | 6.2082 ms/op | 0.85 |
| computeDeltas 750000 validators 1200 proto nodes | 5.0836 ms/op | 6.2369 ms/op | 0.82 |
| computeDeltas 750000 validators 7200 proto nodes | 5.0694 ms/op | 6.2663 ms/op | 0.81 |
| computeDeltas 1400000 validators 300 proto nodes | 9.3506 ms/op | 11.933 ms/op | 0.78 |
| computeDeltas 1400000 validators 1200 proto nodes | 9.2891 ms/op | 11.969 ms/op | 0.78 |
| computeDeltas 1400000 validators 7200 proto nodes | 9.2244 ms/op | 11.774 ms/op | 0.78 |
| computeDeltas 2100000 validators 300 proto nodes | 13.818 ms/op | 18.218 ms/op | 0.76 |
| computeDeltas 2100000 validators 1200 proto nodes | 13.926 ms/op | 17.847 ms/op | 0.78 |
| computeDeltas 2100000 validators 7200 proto nodes | 14.047 ms/op | 17.862 ms/op | 0.79 |
| altair processAttestation - 250000 vs - 7PWei normalcase | 1.4195 ms/op | 1.8878 ms/op | 0.75 |
| altair processAttestation - 250000 vs - 7PWei worstcase | 2.2431 ms/op | 2.9955 ms/op | 0.75 |
| altair processAttestation - setStatus - 1/6 committees join | 70.468 us/op | 92.510 us/op | 0.76 |
| altair processAttestation - setStatus - 1/3 committees join | 134.32 us/op | 189.41 us/op | 0.71 |
| altair processAttestation - setStatus - 1/2 committees join | 192.56 us/op | 257.77 us/op | 0.75 |
| altair processAttestation - setStatus - 2/3 committees join | 273.65 us/op | 330.10 us/op | 0.83 |
| altair processAttestation - setStatus - 4/5 committees join | 388.71 us/op | 488.69 us/op | 0.80 |
| altair processAttestation - setStatus - 100% committees join | 478.39 us/op | 576.59 us/op | 0.83 |
| altair processBlock - 250000 vs - 7PWei normalcase | 4.3795 ms/op | 4.1955 ms/op | 1.04 |
| altair processBlock - 250000 vs - 7PWei normalcase hashState | 21.804 ms/op | 22.731 ms/op | 0.96 |
| altair processBlock - 250000 vs - 7PWei worstcase | 32.374 ms/op | 33.569 ms/op | 0.96 |
| altair processBlock - 250000 vs - 7PWei worstcase hashState | 59.059 ms/op | 64.150 ms/op | 0.92 |
| phase0 processBlock - 250000 vs - 7PWei normalcase | 1.8261 ms/op | 1.7063 ms/op | 1.07 |
| phase0 processBlock - 250000 vs - 7PWei worstcase | 23.085 ms/op | 21.187 ms/op | 1.09 |
| altair processEth1Data - 250000 vs - 7PWei normalcase | 245.58 us/op | 335.47 us/op | 0.73 |
| getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 4.7940 us/op | 5.7870 us/op | 0.83 |
| getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 27.944 us/op | 37.808 us/op | 0.74 |
| getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 8.2450 us/op | 11.502 us/op | 0.72 |
| getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 5.1180 us/op | 7.0130 us/op | 0.73 |
| getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 118.85 us/op | 154.67 us/op | 0.77 |
| getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 805.80 us/op | 1.1599 ms/op | 0.69 |
| getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 1.1303 ms/op | 1.4943 ms/op | 0.76 |
| getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 1.1845 ms/op | 1.4877 ms/op | 0.80 |
| getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 2.9686 ms/op | 3.7827 ms/op | 0.78 |
| getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 1.1413 ms/op | 1.5536 ms/op | 0.73 |
| getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 2.9568 ms/op | 3.8247 ms/op | 0.77 |
| Tree 40 250000 create | 202.54 ms/op | 219.94 ms/op | 0.92 |
| Tree 40 250000 get(125000) | 114.00 ns/op | 141.96 ns/op | 0.80 |
| Tree 40 250000 set(125000) | 532.47 ns/op | 676.55 ns/op | 0.79 |
| Tree 40 250000 toArray() | 10.074 ms/op | 19.927 ms/op | 0.51 |
| Tree 40 250000 iterate all - toArray() + loop | 10.520 ms/op | 17.129 ms/op | 0.61 |
| Tree 40 250000 iterate all - get(i) | 42.726 ms/op | 57.532 ms/op | 0.74 |
| Array 250000 create | 3.4493 ms/op | 2.9187 ms/op | 1.18 |
| Array 250000 clone - spread | 1.2598 ms/op | 1.5539 ms/op | 0.81 |
| Array 250000 get(125000) | 0.58700 ns/op | 0.42500 ns/op | 1.38 |
| Array 250000 set(125000) | 0.59000 ns/op | 0.44300 ns/op | 1.33 |
| Array 250000 iterate all - loop | 77.031 us/op | 104.17 us/op | 0.74 |
| phase0 afterProcessEpoch - 250000 vs - 7PWei | 44.805 ms/op | 49.890 ms/op | 0.90 |
| Array.fill - length 1000000 | 2.5564 ms/op | 3.9387 ms/op | 0.65 |
| Array push - length 1000000 | 15.479 ms/op | 17.075 ms/op | 0.91 |
| Array.get | 0.26909 ns/op | 0.31370 ns/op | 0.86 |
| Uint8Array.get | 0.34791 ns/op | 0.45950 ns/op | 0.76 |
| phase0 beforeProcessEpoch - 250000 vs - 7PWei | 15.766 ms/op | 20.712 ms/op | 0.76 |
| altair processEpoch - mainnet_e81889 | 276.03 ms/op | 298.34 ms/op | 0.93 |
| mainnet_e81889 - altair beforeProcessEpoch | 17.795 ms/op | 22.512 ms/op | 0.79 |
| mainnet_e81889 - altair processJustificationAndFinalization | 13.765 us/op | 13.359 us/op | 1.03 |
| mainnet_e81889 - altair processInactivityUpdates | 4.5736 ms/op | 7.0656 ms/op | 0.65 |
| mainnet_e81889 - altair processRewardsAndPenalties | 48.539 ms/op | 51.371 ms/op | 0.94 |
| mainnet_e81889 - altair processRegistryUpdates | 1.9450 us/op | 4.2170 us/op | 0.46 |
| mainnet_e81889 - altair processSlashings | 760.00 ns/op | 558.00 ns/op | 1.36 |
| mainnet_e81889 - altair processEth1DataReset | 730.00 ns/op | 377.00 ns/op | 1.94 |
| mainnet_e81889 - altair processEffectiveBalanceUpdates | 1.6727 ms/op | 1.9351 ms/op | 0.86 |
| mainnet_e81889 - altair processSlashingsReset | 2.9700 us/op | 4.0160 us/op | 0.74 |
| mainnet_e81889 - altair processRandaoMixesReset | 6.5660 us/op | 4.1570 us/op | 1.58 |
| mainnet_e81889 - altair processHistoricalRootsUpdate | 912.00 ns/op | 1.3630 us/op | 0.67 |
| mainnet_e81889 - altair processParticipationFlagUpdates | 2.3260 us/op | 2.7360 us/op | 0.85 |
| mainnet_e81889 - altair processSyncCommitteeUpdates | 960.00 ns/op | 376.00 ns/op | 2.55 |
| mainnet_e81889 - altair afterProcessEpoch | 44.044 ms/op | 52.686 ms/op | 0.84 |
| capella processEpoch - mainnet_e217614 | 899.00 ms/op | 1.1427 s/op | 0.79 |
| mainnet_e217614 - capella beforeProcessEpoch | 76.114 ms/op | 78.756 ms/op | 0.97 |
| mainnet_e217614 - capella processJustificationAndFinalization | 18.417 us/op | 17.065 us/op | 1.08 |
| mainnet_e217614 - capella processInactivityUpdates | 15.506 ms/op | 19.267 ms/op | 0.80 |
| mainnet_e217614 - capella processRewardsAndPenalties | 230.31 ms/op | 228.86 ms/op | 1.01 |
| mainnet_e217614 - capella processRegistryUpdates | 14.610 us/op | 14.328 us/op | 1.02 |
| mainnet_e217614 - capella processSlashings | 889.00 ns/op | 372.00 ns/op | 2.39 |
| mainnet_e217614 - capella processEth1DataReset | 863.00 ns/op | 335.00 ns/op | 2.58 |
| mainnet_e217614 - capella processEffectiveBalanceUpdates | 16.240 ms/op | 16.306 ms/op | 1.00 |
| mainnet_e217614 - capella processSlashingsReset | 5.1430 us/op | 3.6900 us/op | 1.39 |
| mainnet_e217614 - capella processRandaoMixesReset | 6.1910 us/op | 8.4390 us/op | 0.73 |
| mainnet_e217614 - capella processHistoricalRootsUpdate | 1.3760 us/op | 396.00 ns/op | 3.47 |
| mainnet_e217614 - capella processParticipationFlagUpdates | 2.9780 us/op | 2.0470 us/op | 1.45 |
| mainnet_e217614 - capella afterProcessEpoch | 107.66 ms/op | 127.16 ms/op | 0.85 |
| phase0 processEpoch - mainnet_e58758 | 355.84 ms/op | 331.61 ms/op | 1.07 |
| mainnet_e58758 - phase0 beforeProcessEpoch | 78.253 ms/op | 70.608 ms/op | 1.11 |
| mainnet_e58758 - phase0 processJustificationAndFinalization | 21.790 us/op | 14.031 us/op | 1.55 |
| mainnet_e58758 - phase0 processRewardsAndPenalties | 32.246 ms/op | 27.221 ms/op | 1.18 |
| mainnet_e58758 - phase0 processRegistryUpdates | 12.282 us/op | 7.2100 us/op | 1.70 |
| mainnet_e58758 - phase0 processSlashings | 1.0140 us/op | 315.00 ns/op | 3.22 |
| mainnet_e58758 - phase0 processEth1DataReset | 1.0200 us/op | 296.00 ns/op | 3.45 |
| mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 1.1050 ms/op | 1.1999 ms/op | 0.92 |
| mainnet_e58758 - phase0 processSlashingsReset | 6.6840 us/op | 3.2400 us/op | 2.06 |
| mainnet_e58758 - phase0 processRandaoMixesReset | 7.9030 us/op | 3.6910 us/op | 2.14 |
| mainnet_e58758 - phase0 processHistoricalRootsUpdate | 996.00 ns/op | 345.00 ns/op | 2.89 |
| mainnet_e58758 - phase0 processParticipationRecordUpdates | 4.0270 us/op | 3.5360 us/op | 1.14 |
| mainnet_e58758 - phase0 afterProcessEpoch | 42.164 ms/op | 44.258 ms/op | 0.95 |
| phase0 processEffectiveBalanceUpdates - 250000 normalcase | 1.2717 ms/op | 1.9422 ms/op | 0.65 |
| phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 1.5046 ms/op | 2.0129 ms/op | 0.75 |
| altair processInactivityUpdates - 250000 normalcase | 21.060 ms/op | 14.560 ms/op | 1.45 |
| altair processInactivityUpdates - 250000 worstcase | 18.118 ms/op | 15.818 ms/op | 1.15 |
| phase0 processRegistryUpdates - 250000 normalcase | 11.105 us/op | 6.9630 us/op | 1.59 |
| phase0 processRegistryUpdates - 250000 badcase_full_deposits | 318.61 us/op | 285.97 us/op | 1.11 |
| phase0 processRegistryUpdates - 250000 worstcase 0.5 | 141.63 ms/op | 116.01 ms/op | 1.22 |
| altair processRewardsAndPenalties - 250000 normalcase | 47.387 ms/op | 37.024 ms/op | 1.28 |
| altair processRewardsAndPenalties - 250000 worstcase | 35.651 ms/op | 36.976 ms/op | 0.96 |
| phase0 getAttestationDeltas - 250000 normalcase | 6.5145 ms/op | 9.8656 ms/op | 0.66 |
| phase0 getAttestationDeltas - 250000 worstcase | 7.3167 ms/op | 8.1073 ms/op | 0.90 |
| phase0 processSlashings - 250000 worstcase | 84.035 us/op | 109.17 us/op | 0.77 |
| altair processSyncCommitteeUpdates - 250000 | 112.74 ms/op | 129.32 ms/op | 0.87 |
| BeaconState.hashTreeRoot - No change | 465.00 ns/op | 225.00 ns/op | 2.07 |
| BeaconState.hashTreeRoot - 1 full validator | 149.81 us/op | 97.307 us/op | 1.54 |
| BeaconState.hashTreeRoot - 32 full validator | 1.0210 ms/op | 1.0156 ms/op | 1.01 |
| BeaconState.hashTreeRoot - 512 full validator | 10.996 ms/op | 10.436 ms/op | 1.05 |
| BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 151.48 us/op | 171.77 us/op | 0.88 |
| BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 2.0082 ms/op | 1.8493 ms/op | 1.09 |
| BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 29.112 ms/op | 22.061 ms/op | 1.32 |
| BeaconState.hashTreeRoot - 1 balances | 110.32 us/op | 95.315 us/op | 1.16 |
| BeaconState.hashTreeRoot - 32 balances | 1.4709 ms/op | 820.88 us/op | 1.79 |
| BeaconState.hashTreeRoot - 512 balances | 10.464 ms/op | 7.7462 ms/op | 1.35 |
| BeaconState.hashTreeRoot - 250000 balances | 175.56 ms/op | 170.49 ms/op | 1.03 |
| aggregationBits - 2048 els - zipIndexesInBitList | 39.431 us/op | 32.810 us/op | 1.20 |
| byteArrayEquals 32 | 50.244 ns/op | 54.073 ns/op | 0.93 |
| Buffer.compare 32 | 16.034 ns/op | 19.118 ns/op | 0.84 |
| byteArrayEquals 1024 | 1.3065 us/op | 1.5997 us/op | 0.82 |
| Buffer.compare 1024 | 24.967 ns/op | 26.058 ns/op | 0.96 |
| byteArrayEquals 16384 | 20.840 us/op | 25.470 us/op | 0.82 |
| Buffer.compare 16384 | 171.57 ns/op | 204.72 ns/op | 0.84 |
| byteArrayEquals 123687377 | 153.83 ms/op | 195.82 ms/op | 0.79 |
| Buffer.compare 123687377 | 4.5971 ms/op | 8.2975 ms/op | 0.55 |
| byteArrayEquals 32 - diff last byte | 48.472 ns/op | 53.325 ns/op | 0.91 |
| Buffer.compare 32 - diff last byte | 16.322 ns/op | 17.679 ns/op | 0.92 |
| byteArrayEquals 1024 - diff last byte | 1.2895 us/op | 1.6173 us/op | 0.80 |
| Buffer.compare 1024 - diff last byte | 24.301 ns/op | 27.148 ns/op | 0.90 |
| byteArrayEquals 16384 - diff last byte | 19.893 us/op | 25.883 us/op | 0.77 |
| Buffer.compare 16384 - diff last byte | 190.82 ns/op | 215.19 ns/op | 0.89 |
| byteArrayEquals 123687377 - diff last byte | 150.75 ms/op | 200.01 ms/op | 0.75 |
| Buffer.compare 123687377 - diff last byte | 5.2786 ms/op | 8.2499 ms/op | 0.64 |
| byteArrayEquals 32 - random bytes | 5.0420 ns/op | 5.3690 ns/op | 0.94 |
| Buffer.compare 32 - random bytes | 16.266 ns/op | 17.833 ns/op | 0.91 |
| byteArrayEquals 1024 - random bytes | 5.0660 ns/op | 5.6060 ns/op | 0.90 |
| Buffer.compare 1024 - random bytes | 15.993 ns/op | 17.720 ns/op | 0.90 |
| byteArrayEquals 16384 - random bytes | 5.0600 ns/op | 5.3260 ns/op | 0.95 |
| Buffer.compare 16384 - random bytes | 16.065 ns/op | 17.985 ns/op | 0.89 |
| byteArrayEquals 123687377 - random bytes | 7.9600 ns/op | 6.6700 ns/op | 1.19 |
| Buffer.compare 123687377 - random bytes | 19.420 ns/op | 19.060 ns/op | 1.02 |
| regular array get 100000 times | 31.870 us/op | 33.976 us/op | 0.94 |
| wrappedArray get 100000 times | 31.959 us/op | 33.498 us/op | 0.95 |
| arrayWithProxy get 100000 times | 10.057 ms/op | 13.766 ms/op | 0.73 |
| ssz.Root.equals | 46.529 ns/op | 47.979 ns/op | 0.97 |
| byteArrayEquals | 44.290 ns/op | 47.287 ns/op | 0.94 |
| Buffer.compare | 9.3220 ns/op | 10.907 ns/op | 0.85 |
| processSlot - 1 slots | 14.888 us/op | 15.360 us/op | 0.97 |
| processSlot - 32 slots | 3.3094 ms/op | 2.7917 ms/op | 1.19 |
| getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 38.714 ms/op | 38.543 ms/op | 1.00 |
| getCommitteeAssignments - req 1 vs - 250000 vc | 1.8306 ms/op | 2.1525 ms/op | 0.85 |
| getCommitteeAssignments - req 100 vs - 250000 vc | 3.6133 ms/op | 4.2573 ms/op | 0.85 |
| getCommitteeAssignments - req 1000 vs - 250000 vc | 3.8118 ms/op | 4.5261 ms/op | 0.84 |
| findModifiedValidators - 10000 modified validators | 294.97 ms/op | 311.88 ms/op | 0.95 |
| findModifiedValidators - 1000 modified validators | 214.75 ms/op | 207.68 ms/op | 1.03 |
| findModifiedValidators - 100 modified validators | 156.31 ms/op | 199.88 ms/op | 0.78 |
| findModifiedValidators - 10 modified validators | 155.40 ms/op | 227.75 ms/op | 0.68 |
| findModifiedValidators - 1 modified validators | 140.81 ms/op | 201.75 ms/op | 0.70 |
| findModifiedValidators - no difference | 162.62 ms/op | 224.59 ms/op | 0.72 |
| compare ViewDUs | 3.5463 s/op | 3.4082 s/op | 1.04 |
| compare each validator Uint8Array | 1.6847 s/op | 1.5290 s/op | 1.10 |
| compare ViewDU to Uint8Array | 1.1280 s/op | 1.2732 s/op | 0.89 |
| migrate state 1000000 validators, 24 modified, 0 new | 795.24 ms/op | 753.94 ms/op | 1.05 |
| migrate state 1000000 validators, 1700 modified, 1000 new | 1.0014 s/op | 933.86 ms/op | 1.07 |
| migrate state 1000000 validators, 3400 modified, 2000 new | 1.2716 s/op | 1.2833 s/op | 0.99 |
| migrate state 1500000 validators, 24 modified, 0 new | 666.01 ms/op | 826.97 ms/op | 0.81 |
| migrate state 1500000 validators, 1700 modified, 1000 new | 872.27 ms/op | 1.1504 s/op | 0.76 |
| migrate state 1500000 validators, 3400 modified, 2000 new | 1.2361 s/op | 1.1563 s/op | 1.07 |
| RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 7.7100 ns/op | 4.7000 ns/op | 1.64 |
| state getBlockRootAtSlot - 250000 vs - 7PWei | 444.69 ns/op | 486.30 ns/op | 0.91 |
| computeProposers - vc 250000 | 5.4204 ms/op | 7.0320 ms/op | 0.77 |
| computeEpochShuffling - vc 250000 | 34.957 ms/op | 43.798 ms/op | 0.80 |
| getNextSyncCommittee - vc 250000 | 95.540 ms/op | 125.92 ms/op | 0.76 |
| computeSigningRoot for AttestationData | 15.813 us/op | 21.334 us/op | 0.74 |
| hash AttestationData serialized data then Buffer.toString(base64) | 1.2164 us/op | 1.6437 us/op | 0.74 |
| toHexString serialized data | 764.99 ns/op | 973.21 ns/op | 0.79 |
| Buffer.toString(base64) | 144.20 ns/op | 188.57 ns/op | 0.76 |
| nodejs block root to RootHex using toHex | 125.86 ns/op | 155.30 ns/op | 0.81 |
| nodejs block root to RootHex using toRootHex | 79.001 ns/op | 97.786 ns/op | 0.81 |
| browser block root to RootHex using the deprecated toHexString | 213.33 ns/op | 231.54 ns/op | 0.92 |
| browser block root to RootHex using toHex | 172.21 ns/op | 182.97 ns/op | 0.94 |
| browser block root to RootHex using toRootHex | 149.33 ns/op | 167.49 ns/op | 0.89 |
by benchmarkbot/action
Can I get 1 more quick check on this so it deploys with v1.23.1 please? @nflaig @ensi321
Can I get 1 more quick check on this so it deploys with v1.23.1 please? @nflaig @ensi321
We don't have to include docs changes in the release as we can just deploy from unstable branch
@philknows web3_provider.node.test.ts is blocking the PR from being merged. Need to rebase this branch to skip that test
:tada: This PR is included in v1.24.0 :tada: