ChainSafe / lodestar

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

chore: remove apis that are no longer part of beacon spec #6901

Closed nflaig closed 1 week ago

nflaig commented 1 week ago

Motivation

All the removed apis have been replaced by more forward compatible apis (v2) and are no longer part of beacon spec.

Description

Remove apis that are no longer part of beacon spec

Closes https://github.com/ChainSafe/lodestar/issues/6839

codecov[bot] commented 1 week ago

Codecov Report

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

Project coverage is 62.67%. Comparing base (a122876) to head (695b23c).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## unstable #6901 +/- ## ============================================ - Coverage 62.75% 62.67% -0.09% ============================================ Files 578 578 Lines 61355 61222 -133 Branches 2125 2111 -14 ============================================ - Hits 38503 38370 -133 - Misses 22813 22814 +1 + Partials 39 38 -1 ```
github-actions[bot] commented 1 week ago

Performance Report

✔️ no performance regression detected

Full benchmark results | Benchmark suite | Current: f7818c84dc849fcf85b1fe26f4d8dceb22ac55cb | Previous: a1228762d4567f0daa33163b4d62a59344e57993 | Ratio | |-|-|-|-| | getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 462.88 us/op | 932.06 us/op | 0.50 | | getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 49.981 us/op | 63.329 us/op | 0.79 | | BLS verify - blst-native | 1.3231 ms/op | 1.7038 ms/op | 0.78 | | BLS verifyMultipleSignatures 3 - blst-native | 2.8072 ms/op | 4.5114 ms/op | 0.62 | | BLS verifyMultipleSignatures 8 - blst-native | 6.2479 ms/op | 7.6280 ms/op | 0.82 | | BLS verifyMultipleSignatures 32 - blst-native | 24.209 ms/op | 24.018 ms/op | 1.01 | | BLS verifyMultipleSignatures 64 - blst-native | 48.726 ms/op | 52.011 ms/op | 0.94 | | BLS verifyMultipleSignatures 128 - blst-native | 96.168 ms/op | 100.19 ms/op | 0.96 | | BLS deserializing 10000 signatures | 962.47 ms/op | 1.0395 s/op | 0.93 | | BLS deserializing 100000 signatures | 9.8777 s/op | 12.252 s/op | 0.81 | | BLS verifyMultipleSignatures - same message - 3 - blst-native | 1.3506 ms/op | 1.5704 ms/op | 0.86 | | BLS verifyMultipleSignatures - same message - 8 - blst-native | 1.5536 ms/op | 1.8379 ms/op | 0.85 | | BLS verifyMultipleSignatures - same message - 32 - blst-native | 2.6974 ms/op | 2.8917 ms/op | 0.93 | | BLS verifyMultipleSignatures - same message - 64 - blst-native | 3.9655 ms/op | 5.7955 ms/op | 0.68 | | BLS verifyMultipleSignatures - same message - 128 - blst-native | 6.3638 ms/op | 7.8644 ms/op | 0.81 | | BLS aggregatePubkeys 32 - blst-native | 31.307 us/op | 31.852 us/op | 0.98 | | BLS aggregatePubkeys 128 - blst-native | 115.05 us/op | 116.55 us/op | 0.99 | | notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 80.723 ms/op | 83.789 ms/op | 0.96 | | notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 60.451 ms/op | 101.39 ms/op | 0.60 | | notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 41.780 ms/op | 59.477 ms/op | 0.70 | | getSlashingsAndExits - default max | 102.12 us/op | 180.09 us/op | 0.57 | | getSlashingsAndExits - 2k | 337.13 us/op | 392.30 us/op | 0.86 | | proposeBlockBody type=full, size=empty | 6.0372 ms/op | 12.519 ms/op | 0.48 | | isKnown best case - 1 super set check | 317.00 ns/op | 692.00 ns/op | 0.46 | | isKnown normal case - 2 super set checks | 334.00 ns/op | 649.00 ns/op | 0.51 | | isKnown worse case - 16 super set checks | 291.00 ns/op | 524.00 ns/op | 0.56 | | InMemoryCheckpointStateCache - add get delete | 5.9730 us/op | 9.9660 us/op | 0.60 | | validate api signedAggregateAndProof - struct | 2.8955 ms/op | 5.2413 ms/op | 0.55 | | validate gossip signedAggregateAndProof - struct | 2.8320 ms/op | 5.7192 ms/op | 0.50 | | validate gossip attestation - vc 640000 | 1.4131 ms/op | 2.3253 ms/op | 0.61 | | batch validate gossip attestation - vc 640000 - chunk 32 | 180.92 us/op | 214.95 us/op | 0.84 | | batch validate gossip attestation - vc 640000 - chunk 64 | 157.95 us/op | 195.28 us/op | 0.81 | | batch validate gossip attestation - vc 640000 - chunk 128 | 155.15 us/op | 162.03 us/op | 0.96 | | batch validate gossip attestation - vc 640000 - chunk 256 | 159.14 us/op | 154.84 us/op | 1.03 | | pickEth1Vote - no votes | 1.4142 ms/op | 1.6736 ms/op | 0.85 | | pickEth1Vote - max votes | 13.352 ms/op | 12.059 ms/op | 1.11 | | pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 20.598 ms/op | 24.560 ms/op | 0.84 | | pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 28.356 ms/op | 31.134 ms/op | 0.91 | | pickEth1Vote - Eth1Data fastSerialize value x2048 | 700.74 us/op | 868.93 us/op | 0.81 | | pickEth1Vote - Eth1Data fastSerialize tree x2048 | 5.6849 ms/op | 10.140 ms/op | 0.56 | | bytes32 toHexString | 667.00 ns/op | 764.00 ns/op | 0.87 | | bytes32 Buffer.toString(hex) | 275.00 ns/op | 423.00 ns/op | 0.65 | | bytes32 Buffer.toString(hex) from Uint8Array | 509.00 ns/op | 637.00 ns/op | 0.80 | | bytes32 Buffer.toString(hex) + 0x | 279.00 ns/op | 345.00 ns/op | 0.81 | | Object access 1 prop | 0.20500 ns/op | 0.19300 ns/op | 1.06 | | Map access 1 prop | 0.15900 ns/op | 0.18200 ns/op | 0.87 | | Object get x1000 | 6.9480 ns/op | 8.8280 ns/op | 0.79 | | Map get x1000 | 7.4520 ns/op | 10.192 ns/op | 0.73 | | Object set x1000 | 51.701 ns/op | 43.141 ns/op | 1.20 | | Map set x1000 | 36.913 ns/op | 34.027 ns/op | 1.08 | | Return object 10000 times | 0.33970 ns/op | 0.38220 ns/op | 0.89 | | Throw Error 10000 times | 3.9833 us/op | 4.4605 us/op | 0.89 | | fastMsgIdFn sha256 / 200 bytes | 2.6200 us/op | 2.9230 us/op | 0.90 | | fastMsgIdFn h32 xxhash / 200 bytes | 356.00 ns/op | 315.00 ns/op | 1.13 | | fastMsgIdFn h64 xxhash / 200 bytes | 317.00 ns/op | 357.00 ns/op | 0.89 | | fastMsgIdFn sha256 / 1000 bytes | 7.9530 us/op | 9.2750 us/op | 0.86 | | fastMsgIdFn h32 xxhash / 1000 bytes | 545.00 ns/op | 538.00 ns/op | 1.01 | | fastMsgIdFn h64 xxhash / 1000 bytes | 450.00 ns/op | 550.00 ns/op | 0.82 | | fastMsgIdFn sha256 / 10000 bytes | 76.467 us/op | 93.927 us/op | 0.81 | | fastMsgIdFn h32 xxhash / 10000 bytes | 2.2360 us/op | 2.9630 us/op | 0.75 | | fastMsgIdFn h64 xxhash / 10000 bytes | 1.6260 us/op | 1.6220 us/op | 1.00 | | send data - 1000 256B messages | 16.791 ms/op | 16.817 ms/op | 1.00 | | send data - 1000 512B messages | 20.412 ms/op | 19.543 ms/op | 1.04 | | send data - 1000 1024B messages | 32.483 ms/op | 31.385 ms/op | 1.03 | | send data - 1000 1200B messages | 29.769 ms/op | 30.823 ms/op | 0.97 | | send data - 1000 2048B messages | 37.929 ms/op | 41.383 ms/op | 0.92 | | send data - 1000 4096B messages | 38.288 ms/op | 46.092 ms/op | 0.83 | | send data - 1000 16384B messages | 87.392 ms/op | 96.357 ms/op | 0.91 | | send data - 1000 65536B messages | 281.55 ms/op | 384.31 ms/op | 0.73 | | enrSubnets - fastDeserialize 64 bits | 1.4520 us/op | 2.4010 us/op | 0.60 | | enrSubnets - ssz BitVector 64 bits | 467.00 ns/op | 1.0170 us/op | 0.46 | | enrSubnets - fastDeserialize 4 bits | 203.00 ns/op | 291.00 ns/op | 0.70 | | enrSubnets - ssz BitVector 4 bits | 431.00 ns/op | 631.00 ns/op | 0.68 | | prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 218.61 us/op | 195.46 us/op | 1.12 | | prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 199.79 us/op | 317.07 us/op | 0.63 | | prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 357.63 us/op | 577.79 us/op | 0.62 | | prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 575.19 us/op | 742.28 us/op | 0.77 | | prioritizePeers score 0:0 att 64-1 sync 4-1 | 1.0266 ms/op | 1.2730 ms/op | 0.81 | | array of 16000 items push then shift | 1.8402 us/op | 2.2832 us/op | 0.81 | | LinkedList of 16000 items push then shift | 9.4490 ns/op | 14.736 ns/op | 0.64 | | array of 16000 items push then pop | 151.90 ns/op | 178.13 ns/op | 0.85 | | LinkedList of 16000 items push then pop | 8.9680 ns/op | 10.685 ns/op | 0.84 | | array of 24000 items push then shift | 2.8654 us/op | 3.0965 us/op | 0.93 | | LinkedList of 24000 items push then shift | 9.6810 ns/op | 8.9230 ns/op | 1.08 | | array of 24000 items push then pop | 213.90 ns/op | 307.16 ns/op | 0.70 | | LinkedList of 24000 items push then pop | 8.5720 ns/op | 12.472 ns/op | 0.69 | | intersect bitArray bitLen 8 | 7.9180 ns/op | 12.864 ns/op | 0.62 | | intersect array and set length 8 | 80.485 ns/op | 86.138 ns/op | 0.93 | | intersect bitArray bitLen 128 | 38.400 ns/op | 48.202 ns/op | 0.80 | | intersect array and set length 128 | 1.0515 us/op | 1.3644 us/op | 0.77 | | bitArray.getTrueBitIndexes() bitLen 128 | 2.7050 us/op | 3.1620 us/op | 0.86 | | bitArray.getTrueBitIndexes() bitLen 248 | 4.5390 us/op | 4.3900 us/op | 1.03 | | bitArray.getTrueBitIndexes() bitLen 512 | 10.798 us/op | 12.721 us/op | 0.85 | | Buffer.concat 32 items | 1.2260 us/op | 2.1010 us/op | 0.58 | | Uint8Array.set 32 items | 2.1830 us/op | 2.3600 us/op | 0.93 | | Buffer.copy | 2.4350 us/op | 2.8670 us/op | 0.85 | | Uint8Array.set - with subarray | 3.5850 us/op | 4.6270 us/op | 0.77 | | Uint8Array.set - without subarray | 2.0930 us/op | 2.0980 us/op | 1.00 | | Set add up to 64 items then delete first | 3.3708 us/op | 3.9412 us/op | 0.86 | | OrderedSet add up to 64 items then delete first | 5.1564 us/op | 5.3481 us/op | 0.96 | | Set add up to 64 items then delete last | 3.7581 us/op | 5.4798 us/op | 0.69 | | OrderedSet add up to 64 items then delete last | 5.2564 us/op | 8.6402 us/op | 0.61 | | Set add up to 64 items then delete middle | 3.5530 us/op | 6.4341 us/op | 0.55 | | OrderedSet add up to 64 items then delete middle | 7.2357 us/op | 8.4479 us/op | 0.86 | | Set add up to 128 items then delete first | 7.4140 us/op | 8.2149 us/op | 0.90 | | OrderedSet add up to 128 items then delete first | 12.090 us/op | 17.919 us/op | 0.67 | | Set add up to 128 items then delete last | 7.3228 us/op | 10.909 us/op | 0.67 | | OrderedSet add up to 128 items then delete last | 11.538 us/op | 15.470 us/op | 0.75 | | Set add up to 128 items then delete middle | 6.9928 us/op | 8.4124 us/op | 0.83 | | OrderedSet add up to 128 items then delete middle | 17.504 us/op | 26.613 us/op | 0.66 | | Set add up to 256 items then delete first | 14.507 us/op | 22.612 us/op | 0.64 | | OrderedSet add up to 256 items then delete first | 23.014 us/op | 36.048 us/op | 0.64 | | Set add up to 256 items then delete last | 14.020 us/op | 19.398 us/op | 0.72 | | OrderedSet add up to 256 items then delete last | 21.762 us/op | 31.222 us/op | 0.70 | | Set add up to 256 items then delete middle | 13.599 us/op | 16.712 us/op | 0.81 | | OrderedSet add up to 256 items then delete middle | 50.146 us/op | 87.938 us/op | 0.57 | | transfer serialized Status (84 B) | 1.5170 us/op | 3.3120 us/op | 0.46 | | copy serialized Status (84 B) | 1.4140 us/op | 2.4770 us/op | 0.57 | | transfer serialized SignedVoluntaryExit (112 B) | 1.7010 us/op | 2.9260 us/op | 0.58 | | copy serialized SignedVoluntaryExit (112 B) | 1.5330 us/op | 2.4080 us/op | 0.64 | | transfer serialized ProposerSlashing (416 B) | 2.2810 us/op | 3.1840 us/op | 0.72 | | copy serialized ProposerSlashing (416 B) | 2.3320 us/op | 3.3510 us/op | 0.70 | | transfer serialized Attestation (485 B) | 2.1180 us/op | 3.7490 us/op | 0.56 | | copy serialized Attestation (485 B) | 1.9120 us/op | 3.1960 us/op | 0.60 | | transfer serialized AttesterSlashing (33232 B) | 2.8780 us/op | 4.2530 us/op | 0.68 | | copy serialized AttesterSlashing (33232 B) | 10.405 us/op | 13.243 us/op | 0.79 | | transfer serialized Small SignedBeaconBlock (128000 B) | 3.6330 us/op | 7.4400 us/op | 0.49 | | copy serialized Small SignedBeaconBlock (128000 B) | 29.380 us/op | 39.095 us/op | 0.75 | | transfer serialized Avg SignedBeaconBlock (200000 B) | 4.1390 us/op | 6.4500 us/op | 0.64 | | copy serialized Avg SignedBeaconBlock (200000 B) | 41.733 us/op | 49.697 us/op | 0.84 | | transfer serialized BlobsSidecar (524380 B) | 5.2330 us/op | 7.1830 us/op | 0.73 | | copy serialized BlobsSidecar (524380 B) | 102.29 us/op | 118.32 us/op | 0.86 | | transfer serialized Big SignedBeaconBlock (1000000 B) | 4.6560 us/op | 8.0190 us/op | 0.58 | | copy serialized Big SignedBeaconBlock (1000000 B) | 336.12 us/op | 230.63 us/op | 1.46 | | pass gossip attestations to forkchoice per slot | 3.7165 ms/op | 7.7450 ms/op | 0.48 | | forkChoice updateHead vc 100000 bc 64 eq 0 | 599.84 us/op | 878.47 us/op | 0.68 | | forkChoice updateHead vc 600000 bc 64 eq 0 | 3.7801 ms/op | 5.3049 ms/op | 0.71 | | forkChoice updateHead vc 1000000 bc 64 eq 0 | 6.2267 ms/op | 12.353 ms/op | 0.50 | | forkChoice updateHead vc 600000 bc 320 eq 0 | 3.7697 ms/op | 6.4293 ms/op | 0.59 | | forkChoice updateHead vc 600000 bc 1200 eq 0 | 3.8238 ms/op | 7.5264 ms/op | 0.51 | | forkChoice updateHead vc 600000 bc 7200 eq 0 | 4.6482 ms/op | 8.5520 ms/op | 0.54 | | forkChoice updateHead vc 600000 bc 64 eq 1000 | 12.629 ms/op | 30.491 ms/op | 0.41 | | forkChoice updateHead vc 600000 bc 64 eq 10000 | 12.676 ms/op | 20.856 ms/op | 0.61 | | forkChoice updateHead vc 600000 bc 64 eq 300000 | 19.822 ms/op | 27.098 ms/op | 0.73 | | computeDeltas 500000 validators 300 proto nodes | 4.6881 ms/op | 6.8130 ms/op | 0.69 | | computeDeltas 500000 validators 1200 proto nodes | 4.6643 ms/op | 7.6014 ms/op | 0.61 | | computeDeltas 500000 validators 7200 proto nodes | 4.9303 ms/op | 8.2439 ms/op | 0.60 | | computeDeltas 750000 validators 300 proto nodes | 6.9510 ms/op | 12.632 ms/op | 0.55 | | computeDeltas 750000 validators 1200 proto nodes | 6.9594 ms/op | 11.147 ms/op | 0.62 | | computeDeltas 750000 validators 7200 proto nodes | 8.5559 ms/op | 15.754 ms/op | 0.54 | | computeDeltas 1400000 validators 300 proto nodes | 15.642 ms/op | 26.598 ms/op | 0.59 | | computeDeltas 1400000 validators 1200 proto nodes | 14.154 ms/op | 21.270 ms/op | 0.67 | | computeDeltas 1400000 validators 7200 proto nodes | 12.399 ms/op | 22.615 ms/op | 0.55 | | computeDeltas 2100000 validators 300 proto nodes | 18.144 ms/op | 27.099 ms/op | 0.67 | | computeDeltas 2100000 validators 1200 proto nodes | 18.092 ms/op | 23.944 ms/op | 0.76 | | computeDeltas 2100000 validators 7200 proto nodes | 18.286 ms/op | 20.864 ms/op | 0.88 | | altair processAttestation - 250000 vs - 7PWei normalcase | 1.8023 ms/op | 2.8226 ms/op | 0.64 | | altair processAttestation - 250000 vs - 7PWei worstcase | 2.6700 ms/op | 3.2877 ms/op | 0.81 | | altair processAttestation - setStatus - 1/6 committees join | 94.562 us/op | 156.45 us/op | 0.60 | | altair processAttestation - setStatus - 1/3 committees join | 183.59 us/op | 280.98 us/op | 0.65 | | altair processAttestation - setStatus - 1/2 committees join | 256.22 us/op | 429.99 us/op | 0.60 | | altair processAttestation - setStatus - 2/3 committees join | 342.53 us/op | 533.32 us/op | 0.64 | | altair processAttestation - setStatus - 4/5 committees join | 482.78 us/op | 725.88 us/op | 0.67 | | altair processAttestation - setStatus - 100% committees join | 578.02 us/op | 860.95 us/op | 0.67 | | altair processBlock - 250000 vs - 7PWei normalcase | 4.2307 ms/op | 5.8844 ms/op | 0.72 | | altair processBlock - 250000 vs - 7PWei normalcase hashState | 25.474 ms/op | 28.379 ms/op | 0.90 | | altair processBlock - 250000 vs - 7PWei worstcase | 48.868 ms/op | 46.513 ms/op | 1.05 | | altair processBlock - 250000 vs - 7PWei worstcase hashState | 81.855 ms/op | 94.690 ms/op | 0.86 | | phase0 processBlock - 250000 vs - 7PWei normalcase | 2.3439 ms/op | 2.2857 ms/op | 1.03 | | phase0 processBlock - 250000 vs - 7PWei worstcase | 28.211 ms/op | 34.826 ms/op | 0.81 | | altair processEth1Data - 250000 vs - 7PWei normalcase | 308.84 us/op | 341.20 us/op | 0.91 | | getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 4.7700 us/op | 6.9530 us/op | 0.69 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 29.639 us/op | 28.346 us/op | 1.05 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 10.962 us/op | 8.8030 us/op | 1.25 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 10.311 us/op | 9.3510 us/op | 1.10 | | getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 95.462 us/op | 93.074 us/op | 1.03 | | getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 1.0816 ms/op | 926.23 us/op | 1.17 | | getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 865.12 us/op | 1.1889 ms/op | 0.73 | | getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 970.47 us/op | 1.3220 ms/op | 0.73 | | getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 2.4244 ms/op | 3.4293 ms/op | 0.71 | | getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 2.4487 ms/op | 2.2438 ms/op | 1.09 | | getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 3.8577 ms/op | 4.5965 ms/op | 0.84 | | Tree 40 250000 create | 235.61 ms/op | 257.60 ms/op | 0.91 | | Tree 40 250000 get(125000) | 150.36 ns/op | 167.03 ns/op | 0.90 | | Tree 40 250000 set(125000) | 634.91 ns/op | 792.55 ns/op | 0.80 | | Tree 40 250000 toArray() | 16.354 ms/op | 18.550 ms/op | 0.88 | | Tree 40 250000 iterate all - toArray() + loop | 16.313 ms/op | 18.497 ms/op | 0.88 | | Tree 40 250000 iterate all - get(i) | 52.738 ms/op | 62.524 ms/op | 0.84 | | MutableVector 250000 create | 9.6520 ms/op | 15.717 ms/op | 0.61 | | MutableVector 250000 get(125000) | 6.4800 ns/op | 9.4380 ns/op | 0.69 | | MutableVector 250000 set(125000) | 211.14 ns/op | 252.09 ns/op | 0.84 | | MutableVector 250000 toArray() | 3.6531 ms/op | 4.3365 ms/op | 0.84 | | MutableVector 250000 iterate all - toArray() + loop | 3.7582 ms/op | 4.5860 ms/op | 0.82 | | MutableVector 250000 iterate all - get(i) | 1.8496 ms/op | 1.7780 ms/op | 1.04 | | Array 250000 create | 2.9898 ms/op | 3.1335 ms/op | 0.95 | | Array 250000 clone - spread | 1.5441 ms/op | 1.5148 ms/op | 1.02 | | Array 250000 get(125000) | 0.40900 ns/op | 0.43800 ns/op | 0.93 | | Array 250000 set(125000) | 0.44000 ns/op | 0.45500 ns/op | 0.97 | | Array 250000 iterate all - loop | 111.06 us/op | 102.35 us/op | 1.09 | | effectiveBalanceIncrements clone Uint8Array 300000 | 31.021 us/op | 30.239 us/op | 1.03 | | effectiveBalanceIncrements clone MutableVector 300000 | 126.00 ns/op | 127.00 ns/op | 0.99 | | effectiveBalanceIncrements rw all Uint8Array 300000 | 202.23 us/op | 211.65 us/op | 0.96 | | effectiveBalanceIncrements rw all MutableVector 300000 | 69.899 ms/op | 65.690 ms/op | 1.06 | | phase0 afterProcessEpoch - 250000 vs - 7PWei | 90.337 ms/op | 92.863 ms/op | 0.97 | | phase0 beforeProcessEpoch - 250000 vs - 7PWei | 44.307 ms/op | 47.844 ms/op | 0.93 | | altair processEpoch - mainnet_e81889 | 429.10 ms/op | 416.77 ms/op | 1.03 | | mainnet_e81889 - altair beforeProcessEpoch | 64.046 ms/op | 67.138 ms/op | 0.95 | | mainnet_e81889 - altair processJustificationAndFinalization | 17.349 us/op | 19.518 us/op | 0.89 | | mainnet_e81889 - altair processInactivityUpdates | 5.7158 ms/op | 6.7292 ms/op | 0.85 | | mainnet_e81889 - altair processRewardsAndPenalties | 65.493 ms/op | 58.788 ms/op | 1.11 | | mainnet_e81889 - altair processRegistryUpdates | 3.0480 us/op | 2.7780 us/op | 1.10 | | mainnet_e81889 - altair processSlashings | 617.00 ns/op | 627.00 ns/op | 0.98 | | mainnet_e81889 - altair processEth1DataReset | 539.00 ns/op | 490.00 ns/op | 1.10 | | mainnet_e81889 - altair processEffectiveBalanceUpdates | 2.9169 ms/op | 2.9085 ms/op | 1.00 | | mainnet_e81889 - altair processSlashingsReset | 4.2410 us/op | 4.6650 us/op | 0.91 | | mainnet_e81889 - altair processRandaoMixesReset | 5.3280 us/op | 5.7050 us/op | 0.93 | | mainnet_e81889 - altair processHistoricalRootsUpdate | 1.0460 us/op | 483.00 ns/op | 2.17 | | mainnet_e81889 - altair processParticipationFlagUpdates | 2.6840 us/op | 3.5690 us/op | 0.75 | | mainnet_e81889 - altair processSyncCommitteeUpdates | 759.00 ns/op | 738.00 ns/op | 1.03 | | mainnet_e81889 - altair afterProcessEpoch | 91.600 ms/op | 106.37 ms/op | 0.86 | | capella processEpoch - mainnet_e217614 | 1.3082 s/op | 1.3445 s/op | 0.97 | | mainnet_e217614 - capella beforeProcessEpoch | 292.54 ms/op | 252.22 ms/op | 1.16 | | mainnet_e217614 - capella processJustificationAndFinalization | 18.501 us/op | 22.240 us/op | 0.83 | | mainnet_e217614 - capella processInactivityUpdates | 21.957 ms/op | 18.174 ms/op | 1.21 | | mainnet_e217614 - capella processRewardsAndPenalties | 301.96 ms/op | 289.05 ms/op | 1.04 | | mainnet_e217614 - capella processRegistryUpdates | 26.641 us/op | 18.948 us/op | 1.41 | | mainnet_e217614 - capella processSlashings | 1.1550 us/op | 656.00 ns/op | 1.76 | | mainnet_e217614 - capella processEth1DataReset | 688.00 ns/op | 556.00 ns/op | 1.24 | | mainnet_e217614 - capella processEffectiveBalanceUpdates | 7.7021 ms/op | 3.7327 ms/op | 2.06 | | mainnet_e217614 - capella processSlashingsReset | 7.7100 us/op | 6.5420 us/op | 1.18 | | mainnet_e217614 - capella processRandaoMixesReset | 13.779 us/op | 6.6650 us/op | 2.07 | | mainnet_e217614 - capella processHistoricalRootsUpdate | 1.3040 us/op | 559.00 ns/op | 2.33 | | mainnet_e217614 - capella processParticipationFlagUpdates | 4.0910 us/op | 2.2560 us/op | 1.81 | | mainnet_e217614 - capella afterProcessEpoch | 374.13 ms/op | 282.48 ms/op | 1.32 | | phase0 processEpoch - mainnet_e58758 | 504.34 ms/op | 376.04 ms/op | 1.34 | | mainnet_e58758 - phase0 beforeProcessEpoch | 154.31 ms/op | 124.26 ms/op | 1.24 | | mainnet_e58758 - phase0 processJustificationAndFinalization | 29.186 us/op | 23.826 us/op | 1.22 | | mainnet_e58758 - phase0 processRewardsAndPenalties | 41.221 ms/op | 48.761 ms/op | 0.85 | | mainnet_e58758 - phase0 processRegistryUpdates | 16.710 us/op | 11.288 us/op | 1.48 | | mainnet_e58758 - phase0 processSlashings | 1.1460 us/op | 648.00 ns/op | 1.77 | | mainnet_e58758 - phase0 processEth1DataReset | 810.00 ns/op | 505.00 ns/op | 1.60 | | mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 1.5799 ms/op | 1.6133 ms/op | 0.98 | | mainnet_e58758 - phase0 processSlashingsReset | 8.3290 us/op | 4.1380 us/op | 2.01 | | mainnet_e58758 - phase0 processRandaoMixesReset | 11.642 us/op | 5.6050 us/op | 2.08 | | mainnet_e58758 - phase0 processHistoricalRootsUpdate | 1.4000 us/op | 525.00 ns/op | 2.67 | | mainnet_e58758 - phase0 processParticipationRecordUpdates | 8.2720 us/op | 4.0010 us/op | 2.07 | | mainnet_e58758 - phase0 afterProcessEpoch | 104.32 ms/op | 77.484 ms/op | 1.35 | | phase0 processEffectiveBalanceUpdates - 250000 normalcase | 2.5739 ms/op | 1.1135 ms/op | 2.31 | | phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 5.4801 ms/op | 1.9410 ms/op | 2.82 | | altair processInactivityUpdates - 250000 normalcase | 30.936 ms/op | 22.534 ms/op | 1.37 | | altair processInactivityUpdates - 250000 worstcase | 36.014 ms/op | 25.041 ms/op | 1.44 | | phase0 processRegistryUpdates - 250000 normalcase | 17.423 us/op | 8.4360 us/op | 2.07 | | phase0 processRegistryUpdates - 250000 badcase_full_deposits | 486.98 us/op | 450.44 us/op | 1.08 | | phase0 processRegistryUpdates - 250000 worstcase 0.5 | 228.36 ms/op | 117.91 ms/op | 1.94 | | altair processRewardsAndPenalties - 250000 normalcase | 65.026 ms/op | 32.598 ms/op | 1.99 | | altair processRewardsAndPenalties - 250000 worstcase | 66.358 ms/op | 38.959 ms/op | 1.70 | | phase0 getAttestationDeltas - 250000 normalcase | 10.071 ms/op | 7.1288 ms/op | 1.41 | | phase0 getAttestationDeltas - 250000 worstcase | 13.708 ms/op | 8.1444 ms/op | 1.68 | | phase0 processSlashings - 250000 worstcase | 128.32 us/op | 108.07 us/op | 1.19 | | altair processSyncCommitteeUpdates - 250000 | 200.52 ms/op | 167.87 ms/op | 1.19 | | BeaconState.hashTreeRoot - No change | 494.00 ns/op | 307.00 ns/op | 1.61 | | BeaconState.hashTreeRoot - 1 full validator | 173.26 us/op | 106.35 us/op | 1.63 | | BeaconState.hashTreeRoot - 32 full validator | 1.5492 ms/op | 1.0588 ms/op | 1.46 | | BeaconState.hashTreeRoot - 512 full validator | 18.734 ms/op | 10.208 ms/op | 1.84 | | BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 198.08 us/op | 123.21 us/op | 1.61 | | BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 3.2554 ms/op | 1.9176 ms/op | 1.70 | | BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 41.547 ms/op | 32.737 ms/op | 1.27 | | BeaconState.hashTreeRoot - 1 balances | 153.05 us/op | 138.40 us/op | 1.11 | | BeaconState.hashTreeRoot - 32 balances | 1.3733 ms/op | 1.4592 ms/op | 0.94 | | BeaconState.hashTreeRoot - 512 balances | 14.087 ms/op | 13.219 ms/op | 1.07 | | BeaconState.hashTreeRoot - 250000 balances | 274.87 ms/op | 189.24 ms/op | 1.45 | | aggregationBits - 2048 els - zipIndexesInBitList | 45.313 us/op | 27.053 us/op | 1.67 | | byteArrayEquals 32 | 70.785 ns/op | 58.160 ns/op | 1.22 | | Buffer.compare 32 | 23.029 ns/op | 51.600 ns/op | 0.45 | | byteArrayEquals 1024 | 2.0838 us/op | 1.7031 us/op | 1.22 | | Buffer.compare 1024 | 31.025 ns/op | 60.383 ns/op | 0.51 | | byteArrayEquals 16384 | 35.824 us/op | 27.121 us/op | 1.32 | | Buffer.compare 16384 | 268.95 ns/op | 265.75 ns/op | 1.01 | | byteArrayEquals 123687377 | 250.25 ms/op | 225.54 ms/op | 1.11 | | Buffer.compare 123687377 | 11.378 ms/op | 7.6664 ms/op | 1.48 | | byteArrayEquals 32 - diff last byte | 68.883 ns/op | 56.699 ns/op | 1.21 | | Buffer.compare 32 - diff last byte | 22.668 ns/op | 51.644 ns/op | 0.44 | | byteArrayEquals 1024 - diff last byte | 1.9639 us/op | 1.6334 us/op | 1.20 | | Buffer.compare 1024 - diff last byte | 31.646 ns/op | 58.015 ns/op | 0.55 | | byteArrayEquals 16384 - diff last byte | 31.856 us/op | 26.646 us/op | 1.20 | | Buffer.compare 16384 - diff last byte | 236.48 ns/op | 260.08 ns/op | 0.91 | | byteArrayEquals 123687377 - diff last byte | 249.80 ms/op | 214.50 ms/op | 1.16 | | Buffer.compare 123687377 - diff last byte | 7.8610 ms/op | 7.1395 ms/op | 1.10 | | byteArrayEquals 32 - random bytes | 6.0330 ns/op | 6.6990 ns/op | 0.90 | | Buffer.compare 32 - random bytes | 20.625 ns/op | 52.903 ns/op | 0.39 | | byteArrayEquals 1024 - random bytes | 5.9040 ns/op | 5.4750 ns/op | 1.08 | | Buffer.compare 1024 - random bytes | 20.088 ns/op | 50.005 ns/op | 0.40 | | byteArrayEquals 16384 - random bytes | 5.8270 ns/op | 6.1660 ns/op | 0.95 | | Buffer.compare 16384 - random bytes | 20.362 ns/op | 59.588 ns/op | 0.34 | | byteArrayEquals 123687377 - random bytes | 7.0900 ns/op | 8.0300 ns/op | 0.88 | | Buffer.compare 123687377 - random bytes | 21.400 ns/op | 62.520 ns/op | 0.34 | | regular array get 100000 times | 36.797 us/op | 36.400 us/op | 1.01 | | wrappedArray get 100000 times | 34.554 us/op | 34.547 us/op | 1.00 | | arrayWithProxy get 100000 times | 13.169 ms/op | 18.282 ms/op | 0.72 | | ssz.Root.equals | 46.945 ns/op | 53.323 ns/op | 0.88 | | byteArrayEquals | 46.273 ns/op | 53.943 ns/op | 0.86 | | Buffer.compare | 10.687 ns/op | 11.560 ns/op | 0.92 | | shuffle list - 16384 els | 6.5878 ms/op | 6.5439 ms/op | 1.01 | | shuffle list - 250000 els | 98.536 ms/op | 97.996 ms/op | 1.01 | | processSlot - 1 slots | 14.065 us/op | 16.734 us/op | 0.84 | | processSlot - 32 slots | 2.5512 ms/op | 2.4860 ms/op | 1.03 | | getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 42.602 ms/op | 35.483 ms/op | 1.20 | | getCommitteeAssignments - req 1 vs - 250000 vc | 2.1625 ms/op | 2.2436 ms/op | 0.96 | | getCommitteeAssignments - req 100 vs - 250000 vc | 4.1600 ms/op | 4.3460 ms/op | 0.96 | | getCommitteeAssignments - req 1000 vs - 250000 vc | 4.4384 ms/op | 4.6088 ms/op | 0.96 | | findModifiedValidators - 10000 modified validators | 251.86 ms/op | 253.71 ms/op | 0.99 | | findModifiedValidators - 1000 modified validators | 219.83 ms/op | 190.13 ms/op | 1.16 | | findModifiedValidators - 100 modified validators | 200.57 ms/op | 184.59 ms/op | 1.09 | | findModifiedValidators - 10 modified validators | 229.68 ms/op | 191.15 ms/op | 1.20 | | findModifiedValidators - 1 modified validators | 185.21 ms/op | 190.27 ms/op | 0.97 | | findModifiedValidators - no difference | 169.94 ms/op | 187.59 ms/op | 0.91 | | compare ViewDUs | 3.0481 s/op | 3.2765 s/op | 0.93 | | compare each validator Uint8Array | 1.7465 s/op | 1.6520 s/op | 1.06 | | compare ViewDU to Uint8Array | 1.0599 s/op | 1.3571 s/op | 0.78 | | migrate state 1000000 validators, 24 modified, 0 new | 584.53 ms/op | 744.76 ms/op | 0.78 | | migrate state 1000000 validators, 1700 modified, 1000 new | 863.11 ms/op | 1.1086 s/op | 0.78 | | migrate state 1000000 validators, 3400 modified, 2000 new | 1.1234 s/op | 1.6235 s/op | 0.69 | | migrate state 1500000 validators, 24 modified, 0 new | 632.49 ms/op | 707.60 ms/op | 0.89 | | migrate state 1500000 validators, 1700 modified, 1000 new | 754.39 ms/op | 976.87 ms/op | 0.77 | | migrate state 1500000 validators, 3400 modified, 2000 new | 943.96 ms/op | 1.1790 s/op | 0.80 | | RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 4.5300 ns/op | 5.8300 ns/op | 0.78 | | state getBlockRootAtSlot - 250000 vs - 7PWei | 460.88 ns/op | 717.08 ns/op | 0.64 | | computeProposers - vc 250000 | 7.3597 ms/op | 9.7820 ms/op | 0.75 | | computeEpochShuffling - vc 250000 | 97.031 ms/op | 121.99 ms/op | 0.80 | | getNextSyncCommittee - vc 250000 | 124.90 ms/op | 156.12 ms/op | 0.80 | | computeSigningRoot for AttestationData | 21.776 us/op | 25.889 us/op | 0.84 | | hash AttestationData serialized data then Buffer.toString(base64) | 1.5936 us/op | 1.9959 us/op | 0.80 | | toHexString serialized data | 959.54 ns/op | 1.1242 us/op | 0.85 | | Buffer.toString(base64) | 196.17 ns/op | 274.92 ns/op | 0.71 |

by benchmarkbot/action