ChainSafe / lodestar

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

docs: update api package readme example #6915

Closed nflaig closed 3 months ago

nflaig commented 3 months ago

Motivation

Adapt example after refactoring done in https://github.com/ChainSafe/lodestar/pull/6749.

Description

Update api package readme example

codecov[bot] commented 3 months ago

Codecov Report

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

Project coverage is 62.55%. Comparing base (8cb08ff) to head (6d2d25b).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## unstable #6915 +/- ## ========================================= Coverage 62.55% 62.55% ========================================= Files 575 575 Lines 61045 61045 Branches 2117 2120 +3 ========================================= Hits 38186 38186 Misses 22820 22820 Partials 39 39 ```
github-actions[bot] commented 3 months ago

Performance Report

✔️ no performance regression detected

Full benchmark results | Benchmark suite | Current: 24bde232ee6e3164321a1290ead262caa5d77dd1 | Previous: 8cb08ff56f66022c84d8ca1a91e82dba290e644a | Ratio | |-|-|-|-| | getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 970.15 us/op | 512.16 us/op | 1.89 | | getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 49.233 us/op | 52.922 us/op | 0.93 | | BLS verify - blst-native | 1.2235 ms/op | 1.2685 ms/op | 0.96 | | BLS verifyMultipleSignatures 3 - blst-native | 2.5933 ms/op | 2.7120 ms/op | 0.96 | | BLS verifyMultipleSignatures 8 - blst-native | 5.7164 ms/op | 6.2377 ms/op | 0.92 | | BLS verifyMultipleSignatures 32 - blst-native | 20.990 ms/op | 21.928 ms/op | 0.96 | | BLS verifyMultipleSignatures 64 - blst-native | 41.931 ms/op | 43.220 ms/op | 0.97 | | BLS verifyMultipleSignatures 128 - blst-native | 83.293 ms/op | 85.380 ms/op | 0.98 | | BLS deserializing 10000 signatures | 861.12 ms/op | 880.27 ms/op | 0.98 | | BLS deserializing 100000 signatures | 8.6657 s/op | 9.1411 s/op | 0.95 | | BLS verifyMultipleSignatures - same message - 3 - blst-native | 1.1954 ms/op | 1.4734 ms/op | 0.81 | | BLS verifyMultipleSignatures - same message - 8 - blst-native | 1.4201 ms/op | 1.4626 ms/op | 0.97 | | BLS verifyMultipleSignatures - same message - 32 - blst-native | 2.2157 ms/op | 2.2858 ms/op | 0.97 | | BLS verifyMultipleSignatures - same message - 64 - blst-native | 3.2727 ms/op | 3.3979 ms/op | 0.96 | | BLS verifyMultipleSignatures - same message - 128 - blst-native | 5.3939 ms/op | 5.6372 ms/op | 0.96 | | BLS aggregatePubkeys 32 - blst-native | 25.130 us/op | 27.246 us/op | 0.92 | | BLS aggregatePubkeys 128 - blst-native | 97.574 us/op | 104.98 us/op | 0.93 | | notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 75.874 ms/op | 117.82 ms/op | 0.64 | | notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 68.027 ms/op | 88.175 ms/op | 0.77 | | notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 34.521 ms/op | 48.857 ms/op | 0.71 | | getSlashingsAndExits - default max | 96.059 us/op | 229.04 us/op | 0.42 | | getSlashingsAndExits - 2k | 305.55 us/op | 329.09 us/op | 0.93 | | proposeBlockBody type=full, size=empty | 5.8432 ms/op | 5.9373 ms/op | 0.98 | | isKnown best case - 1 super set check | 287.00 ns/op | 358.00 ns/op | 0.80 | | isKnown normal case - 2 super set checks | 286.00 ns/op | 364.00 ns/op | 0.79 | | isKnown worse case - 16 super set checks | 276.00 ns/op | 431.00 ns/op | 0.64 | | InMemoryCheckpointStateCache - add get delete | 4.6820 us/op | 6.2000 us/op | 0.76 | | validate api signedAggregateAndProof - struct | 2.7146 ms/op | 2.7497 ms/op | 0.99 | | validate gossip signedAggregateAndProof - struct | 2.6922 ms/op | 2.7804 ms/op | 0.97 | | validate gossip attestation - vc 640000 | 1.3001 ms/op | 1.3453 ms/op | 0.97 | | batch validate gossip attestation - vc 640000 - chunk 32 | 158.63 us/op | 168.19 us/op | 0.94 | | batch validate gossip attestation - vc 640000 - chunk 64 | 149.63 us/op | 142.56 us/op | 1.05 | | batch validate gossip attestation - vc 640000 - chunk 128 | 136.32 us/op | 129.18 us/op | 1.06 | | batch validate gossip attestation - vc 640000 - chunk 256 | 130.45 us/op | 130.02 us/op | 1.00 | | pickEth1Vote - no votes | 1.2048 ms/op | 1.1812 ms/op | 1.02 | | pickEth1Vote - max votes | 9.7898 ms/op | 9.4035 ms/op | 1.04 | | pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 18.017 ms/op | 14.288 ms/op | 1.26 | | pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 20.435 ms/op | 19.294 ms/op | 1.06 | | pickEth1Vote - Eth1Data fastSerialize value x2048 | 555.44 us/op | 506.48 us/op | 1.10 | | pickEth1Vote - Eth1Data fastSerialize tree x2048 | 4.0399 ms/op | 3.9629 ms/op | 1.02 | | bytes32 toHexString | 526.00 ns/op | 482.00 ns/op | 1.09 | | bytes32 Buffer.toString(hex) | 273.00 ns/op | 256.00 ns/op | 1.07 | | bytes32 Buffer.toString(hex) from Uint8Array | 410.00 ns/op | 429.00 ns/op | 0.96 | | bytes32 Buffer.toString(hex) + 0x | 248.00 ns/op | 259.00 ns/op | 0.96 | | Object access 1 prop | 0.16000 ns/op | 0.15000 ns/op | 1.07 | | Map access 1 prop | 0.14000 ns/op | 0.14800 ns/op | 0.95 | | Object get x1000 | 6.5090 ns/op | 6.2920 ns/op | 1.03 | | Map get x1000 | 6.7250 ns/op | 6.6470 ns/op | 1.01 | | Object set x1000 | 40.435 ns/op | 40.221 ns/op | 1.01 | | Map set x1000 | 28.216 ns/op | 24.523 ns/op | 1.15 | | Return object 10000 times | 0.30710 ns/op | 0.31090 ns/op | 0.99 | | Throw Error 10000 times | 3.5503 us/op | 3.5789 us/op | 0.99 | | fastMsgIdFn sha256 / 200 bytes | 2.4460 us/op | 2.4260 us/op | 1.01 | | fastMsgIdFn h32 xxhash / 200 bytes | 283.00 ns/op | 300.00 ns/op | 0.94 | | fastMsgIdFn h64 xxhash / 200 bytes | 294.00 ns/op | 280.00 ns/op | 1.05 | | fastMsgIdFn sha256 / 1000 bytes | 8.4760 us/op | 7.7530 us/op | 1.09 | | fastMsgIdFn h32 xxhash / 1000 bytes | 457.00 ns/op | 430.00 ns/op | 1.06 | | fastMsgIdFn h64 xxhash / 1000 bytes | 379.00 ns/op | 355.00 ns/op | 1.07 | | fastMsgIdFn sha256 / 10000 bytes | 68.312 us/op | 67.572 us/op | 1.01 | | fastMsgIdFn h32 xxhash / 10000 bytes | 2.0120 us/op | 1.9540 us/op | 1.03 | | fastMsgIdFn h64 xxhash / 10000 bytes | 1.3500 us/op | 1.2440 us/op | 1.09 | | send data - 1000 256B messages | 15.344 ms/op | 14.346 ms/op | 1.07 | | send data - 1000 512B messages | 19.933 ms/op | 19.241 ms/op | 1.04 | | send data - 1000 1024B messages | 29.535 ms/op | 27.767 ms/op | 1.06 | | send data - 1000 1200B messages | 30.587 ms/op | 29.112 ms/op | 1.05 | | send data - 1000 2048B messages | 35.781 ms/op | 35.354 ms/op | 1.01 | | send data - 1000 4096B messages | 36.645 ms/op | 34.994 ms/op | 1.05 | | send data - 1000 16384B messages | 87.701 ms/op | 77.988 ms/op | 1.12 | | send data - 1000 65536B messages | 255.11 ms/op | 214.44 ms/op | 1.19 | | enrSubnets - fastDeserialize 64 bits | 1.3380 us/op | 1.2640 us/op | 1.06 | | enrSubnets - ssz BitVector 64 bits | 461.00 ns/op | 419.00 ns/op | 1.10 | | enrSubnets - fastDeserialize 4 bits | 220.00 ns/op | 194.00 ns/op | 1.13 | | enrSubnets - ssz BitVector 4 bits | 476.00 ns/op | 417.00 ns/op | 1.14 | | prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 229.00 us/op | 159.58 us/op | 1.43 | | prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 195.30 us/op | 189.04 us/op | 1.03 | | prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 385.90 us/op | 279.24 us/op | 1.38 | | prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 519.37 us/op | 452.19 us/op | 1.15 | | prioritizePeers score 0:0 att 64-1 sync 4-1 | 962.18 us/op | 653.60 us/op | 1.47 | | array of 16000 items push then shift | 1.8394 us/op | 1.6961 us/op | 1.08 | | LinkedList of 16000 items push then shift | 8.8280 ns/op | 7.4700 ns/op | 1.18 | | array of 16000 items push then pop | 139.48 ns/op | 125.73 ns/op | 1.11 | | LinkedList of 16000 items push then pop | 7.9800 ns/op | 7.4480 ns/op | 1.07 | | array of 24000 items push then shift | 2.6620 us/op | 2.5110 us/op | 1.06 | | LinkedList of 24000 items push then shift | 8.3380 ns/op | 7.5860 ns/op | 1.10 | | array of 24000 items push then pop | 180.04 ns/op | 168.94 ns/op | 1.07 | | LinkedList of 24000 items push then pop | 8.0480 ns/op | 8.5620 ns/op | 0.94 | | intersect bitArray bitLen 8 | 7.2870 ns/op | 7.1940 ns/op | 1.01 | | intersect array and set length 8 | 67.128 ns/op | 50.250 ns/op | 1.34 | | intersect bitArray bitLen 128 | 32.354 ns/op | 32.219 ns/op | 1.00 | | intersect array and set length 128 | 981.57 ns/op | 804.14 ns/op | 1.22 | | bitArray.getTrueBitIndexes() bitLen 128 | 2.6260 us/op | 1.6680 us/op | 1.57 | | bitArray.getTrueBitIndexes() bitLen 248 | 4.5330 us/op | 2.8610 us/op | 1.58 | | bitArray.getTrueBitIndexes() bitLen 512 | 10.129 us/op | 5.6520 us/op | 1.79 | | Buffer.concat 32 items | 1.1770 us/op | 1.0530 us/op | 1.12 | | Uint8Array.set 32 items | 2.0660 us/op | 1.6480 us/op | 1.25 | | Buffer.copy | 2.3700 us/op | 2.0870 us/op | 1.14 | | Uint8Array.set - with subarray | 3.7660 us/op | 3.1450 us/op | 1.20 | | Uint8Array.set - without subarray | 1.9570 us/op | 2.1470 us/op | 0.91 | | Set add up to 64 items then delete first | 3.2034 us/op | 2.4040 us/op | 1.33 | | OrderedSet add up to 64 items then delete first | 4.9997 us/op | 3.8233 us/op | 1.31 | | Set add up to 64 items then delete last | 3.6867 us/op | 2.8666 us/op | 1.29 | | OrderedSet add up to 64 items then delete last | 5.5819 us/op | 4.0678 us/op | 1.37 | | Set add up to 64 items then delete middle | 3.7262 us/op | 2.9891 us/op | 1.25 | | OrderedSet add up to 64 items then delete middle | 7.3450 us/op | 5.5580 us/op | 1.32 | | Set add up to 128 items then delete first | 7.6350 us/op | 6.1967 us/op | 1.23 | | OrderedSet add up to 128 items then delete first | 12.129 us/op | 9.2171 us/op | 1.32 | | Set add up to 128 items then delete last | 7.4502 us/op | 5.9352 us/op | 1.26 | | OrderedSet add up to 128 items then delete last | 10.953 us/op | 9.9482 us/op | 1.10 | | Set add up to 128 items then delete middle | 6.8955 us/op | 6.5788 us/op | 1.05 | | OrderedSet add up to 128 items then delete middle | 18.057 us/op | 16.918 us/op | 1.07 | | Set add up to 256 items then delete first | 15.370 us/op | 13.968 us/op | 1.10 | | OrderedSet add up to 256 items then delete first | 23.506 us/op | 18.672 us/op | 1.26 | | Set add up to 256 items then delete last | 14.332 us/op | 12.917 us/op | 1.11 | | OrderedSet add up to 256 items then delete last | 22.052 us/op | 18.707 us/op | 1.18 | | Set add up to 256 items then delete middle | 15.081 us/op | 12.528 us/op | 1.20 | | OrderedSet add up to 256 items then delete middle | 52.175 us/op | 46.636 us/op | 1.12 | | transfer serialized Status (84 B) | 1.6110 us/op | 1.6150 us/op | 1.00 | | copy serialized Status (84 B) | 1.3900 us/op | 1.3580 us/op | 1.02 | | transfer serialized SignedVoluntaryExit (112 B) | 1.6880 us/op | 1.7250 us/op | 0.98 | | copy serialized SignedVoluntaryExit (112 B) | 1.4370 us/op | 1.3390 us/op | 1.07 | | transfer serialized ProposerSlashing (416 B) | 2.2390 us/op | 2.5470 us/op | 0.88 | | copy serialized ProposerSlashing (416 B) | 2.2910 us/op | 2.7390 us/op | 0.84 | | transfer serialized Attestation (485 B) | 2.3230 us/op | 2.4160 us/op | 0.96 | | copy serialized Attestation (485 B) | 2.3070 us/op | 2.5210 us/op | 0.92 | | transfer serialized AttesterSlashing (33232 B) | 2.6120 us/op | 2.3410 us/op | 1.12 | | copy serialized AttesterSlashing (33232 B) | 11.255 us/op | 7.8020 us/op | 1.44 | | transfer serialized Small SignedBeaconBlock (128000 B) | 2.8600 us/op | 3.0030 us/op | 0.95 | | copy serialized Small SignedBeaconBlock (128000 B) | 33.924 us/op | 22.073 us/op | 1.54 | | transfer serialized Avg SignedBeaconBlock (200000 B) | 3.1790 us/op | 3.9160 us/op | 0.81 | | copy serialized Avg SignedBeaconBlock (200000 B) | 91.258 us/op | 29.607 us/op | 3.08 | | transfer serialized BlobsSidecar (524380 B) | 4.9880 us/op | 3.7580 us/op | 1.33 | | copy serialized BlobsSidecar (524380 B) | 175.34 us/op | 140.72 us/op | 1.25 | | transfer serialized Big SignedBeaconBlock (1000000 B) | 4.9420 us/op | 4.4420 us/op | 1.11 | | copy serialized Big SignedBeaconBlock (1000000 B) | 265.52 us/op | 210.33 us/op | 1.26 | | pass gossip attestations to forkchoice per slot | 4.2584 ms/op | 3.2589 ms/op | 1.31 | | forkChoice updateHead vc 100000 bc 64 eq 0 | 599.30 us/op | 521.16 us/op | 1.15 | | forkChoice updateHead vc 600000 bc 64 eq 0 | 4.2893 ms/op | 4.1609 ms/op | 1.03 | | forkChoice updateHead vc 1000000 bc 64 eq 0 | 7.6559 ms/op | 6.1514 ms/op | 1.24 | | forkChoice updateHead vc 600000 bc 320 eq 0 | 4.1316 ms/op | 3.3919 ms/op | 1.22 | | forkChoice updateHead vc 600000 bc 1200 eq 0 | 3.9631 ms/op | 3.5644 ms/op | 1.11 | | forkChoice updateHead vc 600000 bc 7200 eq 0 | 5.0058 ms/op | 4.0178 ms/op | 1.25 | | forkChoice updateHead vc 600000 bc 64 eq 1000 | 11.956 ms/op | 11.662 ms/op | 1.03 | | forkChoice updateHead vc 600000 bc 64 eq 10000 | 11.926 ms/op | 11.331 ms/op | 1.05 | | forkChoice updateHead vc 600000 bc 64 eq 300000 | 16.530 ms/op | 23.090 ms/op | 0.72 | | computeDeltas 500000 validators 300 proto nodes | 4.3881 ms/op | 4.3691 ms/op | 1.00 | | computeDeltas 500000 validators 1200 proto nodes | 4.0642 ms/op | 4.7592 ms/op | 0.85 | | computeDeltas 500000 validators 7200 proto nodes | 4.1308 ms/op | 4.4505 ms/op | 0.93 | | computeDeltas 750000 validators 300 proto nodes | 5.7064 ms/op | 5.5877 ms/op | 1.02 | | computeDeltas 750000 validators 1200 proto nodes | 5.6080 ms/op | 5.7548 ms/op | 0.97 | | computeDeltas 750000 validators 7200 proto nodes | 5.8175 ms/op | 5.8303 ms/op | 1.00 | | computeDeltas 1400000 validators 300 proto nodes | 11.638 ms/op | 10.517 ms/op | 1.11 | | computeDeltas 1400000 validators 1200 proto nodes | 11.543 ms/op | 10.867 ms/op | 1.06 | | computeDeltas 1400000 validators 7200 proto nodes | 10.442 ms/op | 11.474 ms/op | 0.91 | | computeDeltas 2100000 validators 300 proto nodes | 15.666 ms/op | 18.107 ms/op | 0.87 | | computeDeltas 2100000 validators 1200 proto nodes | 15.281 ms/op | 20.169 ms/op | 0.76 | | computeDeltas 2100000 validators 7200 proto nodes | 15.667 ms/op | 18.247 ms/op | 0.86 | | altair processAttestation - 250000 vs - 7PWei normalcase | 1.7530 ms/op | 2.8655 ms/op | 0.61 | | altair processAttestation - 250000 vs - 7PWei worstcase | 2.5944 ms/op | 3.4938 ms/op | 0.74 | | altair processAttestation - setStatus - 1/6 committees join | 109.11 us/op | 142.64 us/op | 0.76 | | altair processAttestation - setStatus - 1/3 committees join | 199.94 us/op | 259.36 us/op | 0.77 | | altair processAttestation - setStatus - 1/2 committees join | 252.91 us/op | 378.15 us/op | 0.67 | | altair processAttestation - setStatus - 2/3 committees join | 375.32 us/op | 460.29 us/op | 0.82 | | altair processAttestation - setStatus - 4/5 committees join | 506.37 us/op | 657.73 us/op | 0.77 | | altair processAttestation - setStatus - 100% committees join | 608.68 us/op | 792.31 us/op | 0.77 | | altair processBlock - 250000 vs - 7PWei normalcase | 5.6507 ms/op | 4.7554 ms/op | 1.19 | | altair processBlock - 250000 vs - 7PWei normalcase hashState | 28.427 ms/op | 30.897 ms/op | 0.92 | | altair processBlock - 250000 vs - 7PWei worstcase | 47.388 ms/op | 48.156 ms/op | 0.98 | | altair processBlock - 250000 vs - 7PWei worstcase hashState | 87.858 ms/op | 88.419 ms/op | 0.99 | | phase0 processBlock - 250000 vs - 7PWei normalcase | 2.4307 ms/op | 2.8621 ms/op | 0.85 | | phase0 processBlock - 250000 vs - 7PWei worstcase | 30.766 ms/op | 30.536 ms/op | 1.01 | | altair processEth1Data - 250000 vs - 7PWei normalcase | 395.53 us/op | 391.14 us/op | 1.01 | | getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 7.6860 us/op | 7.7250 us/op | 0.99 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 32.540 us/op | 27.056 us/op | 1.20 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 10.641 us/op | 12.743 us/op | 0.84 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 6.9170 us/op | 9.2640 us/op | 0.75 | | getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 144.19 us/op | 149.26 us/op | 0.97 | | getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 731.24 us/op | 798.23 us/op | 0.92 | | getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 1.2759 ms/op | 1.1867 ms/op | 1.08 | | getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 1.0078 ms/op | 1.1645 ms/op | 0.87 | | getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 2.5207 ms/op | 2.5502 ms/op | 0.99 | | getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 2.2781 ms/op | 2.0610 ms/op | 1.11 | | getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 4.0274 ms/op | 4.5036 ms/op | 0.89 | | Tree 40 250000 create | 238.27 ms/op | 260.90 ms/op | 0.91 | | Tree 40 250000 get(125000) | 148.75 ns/op | 166.49 ns/op | 0.89 | | Tree 40 250000 set(125000) | 688.61 ns/op | 768.87 ns/op | 0.90 | | Tree 40 250000 toArray() | 18.867 ms/op | 21.085 ms/op | 0.89 | | Tree 40 250000 iterate all - toArray() + loop | 14.950 ms/op | 19.344 ms/op | 0.77 | | Tree 40 250000 iterate all - get(i) | 50.885 ms/op | 58.681 ms/op | 0.87 | | MutableVector 250000 create | 13.179 ms/op | 10.160 ms/op | 1.30 | | MutableVector 250000 get(125000) | 6.2690 ns/op | 11.924 ns/op | 0.53 | | MutableVector 250000 set(125000) | 195.21 ns/op | 212.76 ns/op | 0.92 | | MutableVector 250000 toArray() | 3.8887 ms/op | 3.9661 ms/op | 0.98 | | MutableVector 250000 iterate all - toArray() + loop | 4.0132 ms/op | 3.9903 ms/op | 1.01 | | MutableVector 250000 iterate all - get(i) | 1.8853 ms/op | 1.6893 ms/op | 1.12 | | Array 250000 create | 3.4733 ms/op | 3.1815 ms/op | 1.09 | | Array 250000 clone - spread | 1.4336 ms/op | 1.3949 ms/op | 1.03 | | Array 250000 get(125000) | 0.41000 ns/op | 0.42600 ns/op | 0.96 | | Array 250000 set(125000) | 0.42900 ns/op | 0.44300 ns/op | 0.97 | | Array 250000 iterate all - loop | 106.80 us/op | 86.300 us/op | 1.24 | | effectiveBalanceIncrements clone Uint8Array 300000 | 28.817 us/op | 36.500 us/op | 0.79 | | effectiveBalanceIncrements clone MutableVector 300000 | 121.00 ns/op | 126.00 ns/op | 0.96 | | effectiveBalanceIncrements rw all Uint8Array 300000 | 177.36 us/op | 204.11 us/op | 0.87 | | effectiveBalanceIncrements rw all MutableVector 300000 | 67.163 ms/op | 80.371 ms/op | 0.84 | | phase0 afterProcessEpoch - 250000 vs - 7PWei | 84.463 ms/op | 92.844 ms/op | 0.91 | | phase0 beforeProcessEpoch - 250000 vs - 7PWei | 44.468 ms/op | 42.567 ms/op | 1.04 | | altair processEpoch - mainnet_e81889 | 412.66 ms/op | 453.51 ms/op | 0.91 | | mainnet_e81889 - altair beforeProcessEpoch | 66.290 ms/op | 71.026 ms/op | 0.93 | | mainnet_e81889 - altair processJustificationAndFinalization | 22.388 us/op | 19.023 us/op | 1.18 | | mainnet_e81889 - altair processInactivityUpdates | 5.9322 ms/op | 7.4185 ms/op | 0.80 | | mainnet_e81889 - altair processRewardsAndPenalties | 57.657 ms/op | 54.610 ms/op | 1.06 | | mainnet_e81889 - altair processRegistryUpdates | 2.8520 us/op | 2.6370 us/op | 1.08 | | mainnet_e81889 - altair processSlashings | 697.00 ns/op | 658.00 ns/op | 1.06 | | mainnet_e81889 - altair processEth1DataReset | 523.00 ns/op | 587.00 ns/op | 0.89 | | mainnet_e81889 - altair processEffectiveBalanceUpdates | 2.9226 ms/op | 2.2126 ms/op | 1.32 | | mainnet_e81889 - altair processSlashingsReset | 2.6710 us/op | 3.9370 us/op | 0.68 | | mainnet_e81889 - altair processRandaoMixesReset | 5.1640 us/op | 7.2480 us/op | 0.71 | | mainnet_e81889 - altair processHistoricalRootsUpdate | 716.00 ns/op | 634.00 ns/op | 1.13 | | mainnet_e81889 - altair processParticipationFlagUpdates | 2.6100 us/op | 3.0200 us/op | 0.86 | | mainnet_e81889 - altair processSyncCommitteeUpdates | 597.00 ns/op | 422.00 ns/op | 1.41 | | mainnet_e81889 - altair afterProcessEpoch | 91.531 ms/op | 95.619 ms/op | 0.96 | | capella processEpoch - mainnet_e217614 | 1.3411 s/op | 1.5241 s/op | 0.88 | | mainnet_e217614 - capella beforeProcessEpoch | 237.30 ms/op | 307.40 ms/op | 0.77 | | mainnet_e217614 - capella processJustificationAndFinalization | 19.011 us/op | 24.349 us/op | 0.78 | | mainnet_e217614 - capella processInactivityUpdates | 19.441 ms/op | 20.315 ms/op | 0.96 | | mainnet_e217614 - capella processRewardsAndPenalties | 265.95 ms/op | 253.57 ms/op | 1.05 | | mainnet_e217614 - capella processRegistryUpdates | 19.600 us/op | 27.355 us/op | 0.72 | | mainnet_e217614 - capella processSlashings | 722.00 ns/op | 862.00 ns/op | 0.84 | | mainnet_e217614 - capella processEth1DataReset | 513.00 ns/op | 1.1810 us/op | 0.43 | | mainnet_e217614 - capella processEffectiveBalanceUpdates | 4.9575 ms/op | 4.3216 ms/op | 1.15 | | mainnet_e217614 - capella processSlashingsReset | 5.7220 us/op | 6.7000 us/op | 0.85 | | mainnet_e217614 - capella processRandaoMixesReset | 5.8770 us/op | 8.4330 us/op | 0.70 | | mainnet_e217614 - capella processHistoricalRootsUpdate | 615.00 ns/op | 1.2130 us/op | 0.51 | | mainnet_e217614 - capella processParticipationFlagUpdates | 4.2330 us/op | 5.0960 us/op | 0.83 | | mainnet_e217614 - capella afterProcessEpoch | 284.34 ms/op | 364.51 ms/op | 0.78 | | phase0 processEpoch - mainnet_e58758 | 399.95 ms/op | 519.46 ms/op | 0.77 | | mainnet_e58758 - phase0 beforeProcessEpoch | 116.72 ms/op | 180.67 ms/op | 0.65 | | mainnet_e58758 - phase0 processJustificationAndFinalization | 22.042 us/op | 35.434 us/op | 0.62 | | mainnet_e58758 - phase0 processRewardsAndPenalties | 33.699 ms/op | 46.268 ms/op | 0.73 | | mainnet_e58758 - phase0 processRegistryUpdates | 10.209 us/op | 21.155 us/op | 0.48 | | mainnet_e58758 - phase0 processSlashings | 561.00 ns/op | 1.1210 us/op | 0.50 | | mainnet_e58758 - phase0 processEth1DataReset | 491.00 ns/op | 1.1960 us/op | 0.41 | | mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 1.1875 ms/op | 1.4624 ms/op | 0.81 | | mainnet_e58758 - phase0 processSlashingsReset | 3.9810 us/op | 7.5180 us/op | 0.53 | | mainnet_e58758 - phase0 processRandaoMixesReset | 6.0370 us/op | 17.020 us/op | 0.35 | | mainnet_e58758 - phase0 processHistoricalRootsUpdate | 931.00 ns/op | 1.8460 us/op | 0.50 | | mainnet_e58758 - phase0 processParticipationRecordUpdates | 4.7630 us/op | 7.8430 us/op | 0.61 | | mainnet_e58758 - phase0 afterProcessEpoch | 74.996 ms/op | 97.829 ms/op | 0.77 | | phase0 processEffectiveBalanceUpdates - 250000 normalcase | 1.2676 ms/op | 2.1485 ms/op | 0.59 | | phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 2.1648 ms/op | 5.5777 ms/op | 0.39 | | altair processInactivityUpdates - 250000 normalcase | 21.244 ms/op | 44.582 ms/op | 0.48 | | altair processInactivityUpdates - 250000 worstcase | 20.208 ms/op | 41.648 ms/op | 0.49 | | phase0 processRegistryUpdates - 250000 normalcase | 6.9780 us/op | 24.392 us/op | 0.29 | | phase0 processRegistryUpdates - 250000 badcase_full_deposits | 323.53 us/op | 575.85 us/op | 0.56 | | phase0 processRegistryUpdates - 250000 worstcase 0.5 | 140.58 ms/op | 248.18 ms/op | 0.57 | | altair processRewardsAndPenalties - 250000 normalcase | 43.628 ms/op | 69.419 ms/op | 0.63 | | altair processRewardsAndPenalties - 250000 worstcase | 45.860 ms/op | 62.825 ms/op | 0.73 | | phase0 getAttestationDeltas - 250000 normalcase | 7.0623 ms/op | 9.0118 ms/op | 0.78 | | phase0 getAttestationDeltas - 250000 worstcase | 7.2647 ms/op | 12.416 ms/op | 0.59 | | phase0 processSlashings - 250000 worstcase | 124.05 us/op | 143.38 us/op | 0.87 | | altair processSyncCommitteeUpdates - 250000 | 122.48 ms/op | 165.87 ms/op | 0.74 | | BeaconState.hashTreeRoot - No change | 303.00 ns/op | 550.00 ns/op | 0.55 | | BeaconState.hashTreeRoot - 1 full validator | 135.31 us/op | 171.25 us/op | 0.79 | | BeaconState.hashTreeRoot - 32 full validator | 1.7072 ms/op | 1.6724 ms/op | 1.02 | | BeaconState.hashTreeRoot - 512 full validator | 13.667 ms/op | 16.993 ms/op | 0.80 | | BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 124.00 us/op | 197.98 us/op | 0.63 | | BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 1.6120 ms/op | 3.1747 ms/op | 0.51 | | BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 22.002 ms/op | 42.084 ms/op | 0.52 | | BeaconState.hashTreeRoot - 1 balances | 97.285 us/op | 168.96 us/op | 0.58 | | BeaconState.hashTreeRoot - 32 balances | 824.83 us/op | 1.3825 ms/op | 0.60 | | BeaconState.hashTreeRoot - 512 balances | 7.4822 ms/op | 13.760 ms/op | 0.54 | | BeaconState.hashTreeRoot - 250000 balances | 166.97 ms/op | 259.23 ms/op | 0.64 | | aggregationBits - 2048 els - zipIndexesInBitList | 23.905 us/op | 52.278 us/op | 0.46 | | byteArrayEquals 32 | 55.349 ns/op | 72.331 ns/op | 0.77 | | Buffer.compare 32 | 17.259 ns/op | 20.177 ns/op | 0.86 | | byteArrayEquals 1024 | 1.5948 us/op | 1.8296 us/op | 0.87 | | Buffer.compare 1024 | 26.920 ns/op | 33.251 ns/op | 0.81 | | byteArrayEquals 16384 | 26.198 us/op | 34.748 us/op | 0.75 | | Buffer.compare 16384 | 203.90 ns/op | 238.54 ns/op | 0.85 | | byteArrayEquals 123687377 | 195.51 ms/op | 221.47 ms/op | 0.88 | | Buffer.compare 123687377 | 6.4598 ms/op | 10.757 ms/op | 0.60 | | byteArrayEquals 32 - diff last byte | 53.367 ns/op | 64.749 ns/op | 0.82 | | Buffer.compare 32 - diff last byte | 17.860 ns/op | 21.449 ns/op | 0.83 | | byteArrayEquals 1024 - diff last byte | 1.6210 us/op | 1.8331 us/op | 0.88 | | Buffer.compare 1024 - diff last byte | 25.893 ns/op | 31.130 ns/op | 0.83 | | byteArrayEquals 16384 - diff last byte | 25.304 us/op | 28.638 us/op | 0.88 | | Buffer.compare 16384 - diff last byte | 193.04 ns/op | 251.13 ns/op | 0.77 | | byteArrayEquals 123687377 - diff last byte | 196.04 ms/op | 222.92 ms/op | 0.88 | | Buffer.compare 123687377 - diff last byte | 6.6607 ms/op | 10.907 ms/op | 0.61 | | byteArrayEquals 32 - random bytes | 5.2030 ns/op | 5.8090 ns/op | 0.90 | | Buffer.compare 32 - random bytes | 17.423 ns/op | 19.579 ns/op | 0.89 | | byteArrayEquals 1024 - random bytes | 5.2560 ns/op | 5.7900 ns/op | 0.91 | | Buffer.compare 1024 - random bytes | 17.642 ns/op | 19.606 ns/op | 0.90 | | byteArrayEquals 16384 - random bytes | 5.2570 ns/op | 6.3260 ns/op | 0.83 | | Buffer.compare 16384 - random bytes | 17.534 ns/op | 21.721 ns/op | 0.81 | | byteArrayEquals 123687377 - random bytes | 7.6800 ns/op | 7.6200 ns/op | 1.01 | | Buffer.compare 123687377 - random bytes | 20.000 ns/op | 23.150 ns/op | 0.86 | | regular array get 100000 times | 43.534 us/op | 51.564 us/op | 0.84 | | wrappedArray get 100000 times | 33.886 us/op | 48.475 us/op | 0.70 | | arrayWithProxy get 100000 times | 13.305 ms/op | 14.610 ms/op | 0.91 | | ssz.Root.equals | 47.438 ns/op | 61.906 ns/op | 0.77 | | byteArrayEquals | 46.559 ns/op | 60.564 ns/op | 0.77 | | Buffer.compare | 10.692 ns/op | 11.986 ns/op | 0.89 | | shuffle list - 16384 els | 6.3909 ms/op | 7.4740 ms/op | 0.86 | | shuffle list - 250000 els | 95.212 ms/op | 107.55 ms/op | 0.89 | | processSlot - 1 slots | 15.817 us/op | 17.694 us/op | 0.89 | | processSlot - 32 slots | 3.7206 ms/op | 4.2606 ms/op | 0.87 | | getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 38.877 ms/op | 45.651 ms/op | 0.85 | | getCommitteeAssignments - req 1 vs - 250000 vc | 2.2666 ms/op | 2.4114 ms/op | 0.94 | | getCommitteeAssignments - req 100 vs - 250000 vc | 4.2685 ms/op | 4.7120 ms/op | 0.91 | | getCommitteeAssignments - req 1000 vs - 250000 vc | 4.5009 ms/op | 5.1846 ms/op | 0.87 | | findModifiedValidators - 10000 modified validators | 260.03 ms/op | 402.36 ms/op | 0.65 | | findModifiedValidators - 1000 modified validators | 216.12 ms/op | 274.93 ms/op | 0.79 | | findModifiedValidators - 100 modified validators | 212.59 ms/op | 273.87 ms/op | 0.78 | | findModifiedValidators - 10 modified validators | 237.73 ms/op | 300.46 ms/op | 0.79 | | findModifiedValidators - 1 modified validators | 254.85 ms/op | 293.70 ms/op | 0.87 | | findModifiedValidators - no difference | 241.86 ms/op | 251.25 ms/op | 0.96 | | compare ViewDUs | 4.1078 s/op | 3.7823 s/op | 1.09 | | compare each validator Uint8Array | 1.5905 s/op | 1.4968 s/op | 1.06 | | compare ViewDU to Uint8Array | 1.3051 s/op | 1.3891 s/op | 0.94 | | migrate state 1000000 validators, 24 modified, 0 new | 800.56 ms/op | 644.09 ms/op | 1.24 | | migrate state 1000000 validators, 1700 modified, 1000 new | 1.2598 s/op | 940.56 ms/op | 1.34 | | migrate state 1000000 validators, 3400 modified, 2000 new | 1.5705 s/op | 1.1098 s/op | 1.42 | | migrate state 1500000 validators, 24 modified, 0 new | 817.25 ms/op | 666.40 ms/op | 1.23 | | migrate state 1500000 validators, 1700 modified, 1000 new | 906.75 ms/op | 875.14 ms/op | 1.04 | | migrate state 1500000 validators, 3400 modified, 2000 new | 1.1121 s/op | 1.1537 s/op | 0.96 | | RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 5.2100 ns/op | 5.4900 ns/op | 0.95 | | state getBlockRootAtSlot - 250000 vs - 7PWei | 586.24 ns/op | 925.59 ns/op | 0.63 | | computeProposers - vc 250000 | 8.5398 ms/op | 9.4029 ms/op | 0.91 | | computeEpochShuffling - vc 250000 | 106.30 ms/op | 99.655 ms/op | 1.07 | | getNextSyncCommittee - vc 250000 | 146.47 ms/op | 143.49 ms/op | 1.02 | | computeSigningRoot for AttestationData | 29.991 us/op | 24.238 us/op | 1.24 | | hash AttestationData serialized data then Buffer.toString(base64) | 1.7629 us/op | 1.6802 us/op | 1.05 | | toHexString serialized data | 1.0760 us/op | 1.1644 us/op | 0.92 | | Buffer.toString(base64) | 236.13 ns/op | 229.40 ns/op | 1.03 |

by benchmarkbot/action

wemeetagain commented 2 months ago

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