ChainSafe / lodestar

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

chore: update docker build actions #7014

Closed nflaig closed 3 months ago

nflaig commented 3 months ago

Motivation

Keep workflows up-to-date

Description

github-actions[bot] commented 3 months ago

Performance Report

✔️ no performance regression detected

Full benchmark results | Benchmark suite | Current: a73226e981f5314a70fcba3ed5b90fbfd3bdadd5 | Previous: 64fe1db806050d5d794ad8bdf83554faed84308c | Ratio | |-|-|-|-| | getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 1.8136 ms/op | 1.8003 ms/op | 1.01 | | getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 37.817 us/op | 62.923 us/op | 0.60 | | BLS verify - blst | 855.77 us/op | 856.31 us/op | 1.00 | | BLS verifyMultipleSignatures 3 - blst | 1.2869 ms/op | 1.3452 ms/op | 0.96 | | BLS verifyMultipleSignatures 8 - blst | 2.0372 ms/op | 2.1245 ms/op | 0.96 | | BLS verifyMultipleSignatures 32 - blst | 4.3538 ms/op | 4.6889 ms/op | 0.93 | | BLS verifyMultipleSignatures 64 - blst | 8.0698 ms/op | 8.5742 ms/op | 0.94 | | BLS verifyMultipleSignatures 128 - blst | 15.486 ms/op | 16.264 ms/op | 0.95 | | BLS deserializing 10000 signatures | 579.03 ms/op | 636.46 ms/op | 0.91 | | BLS deserializing 100000 signatures | 5.8431 s/op | 6.3021 s/op | 0.93 | | BLS verifyMultipleSignatures - same message - 3 - blst | 909.68 us/op | 1.0099 ms/op | 0.90 | | BLS verifyMultipleSignatures - same message - 8 - blst | 1.0795 ms/op | 1.0873 ms/op | 0.99 | | BLS verifyMultipleSignatures - same message - 32 - blst | 1.6534 ms/op | 1.7250 ms/op | 0.96 | | BLS verifyMultipleSignatures - same message - 64 - blst | 2.4343 ms/op | 2.5609 ms/op | 0.95 | | BLS verifyMultipleSignatures - same message - 128 - blst | 3.9349 ms/op | 4.1836 ms/op | 0.94 | | BLS aggregatePubkeys 32 - blst | 17.590 us/op | 18.196 us/op | 0.97 | | BLS aggregatePubkeys 128 - blst | 62.129 us/op | 64.035 us/op | 0.97 | | notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 42.525 ms/op | 65.789 ms/op | 0.65 | | notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 52.875 ms/op | 47.840 ms/op | 1.11 | | notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 28.809 ms/op | 32.076 ms/op | 0.90 | | getSlashingsAndExits - default max | 65.257 us/op | 69.649 us/op | 0.94 | | getSlashingsAndExits - 2k | 216.02 us/op | 263.28 us/op | 0.82 | | proposeBlockBody type=full, size=empty | 5.1457 ms/op | 5.2151 ms/op | 0.99 | | isKnown best case - 1 super set check | 448.00 ns/op | 492.00 ns/op | 0.91 | | isKnown normal case - 2 super set checks | 442.00 ns/op | 495.00 ns/op | 0.89 | | isKnown worse case - 16 super set checks | 441.00 ns/op | 474.00 ns/op | 0.93 | | InMemoryCheckpointStateCache - add get delete | 4.3060 us/op | 4.5260 us/op | 0.95 | | validate api signedAggregateAndProof - struct | 1.8096 ms/op | 1.7464 ms/op | 1.04 | | validate gossip signedAggregateAndProof - struct | 1.6099 ms/op | 1.5010 ms/op | 1.07 | | validate gossip attestation - vc 640000 | 970.37 us/op | 1.0377 ms/op | 0.94 | | batch validate gossip attestation - vc 640000 - chunk 32 | 116.71 us/op | 132.93 us/op | 0.88 | | batch validate gossip attestation - vc 640000 - chunk 64 | 103.22 us/op | 114.51 us/op | 0.90 | | batch validate gossip attestation - vc 640000 - chunk 128 | 94.970 us/op | 112.24 us/op | 0.85 | | batch validate gossip attestation - vc 640000 - chunk 256 | 93.047 us/op | 111.62 us/op | 0.83 | | pickEth1Vote - no votes | 818.12 us/op | 1.0398 ms/op | 0.79 | | pickEth1Vote - max votes | 7.8854 ms/op | 11.599 ms/op | 0.68 | | pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 13.956 ms/op | 20.416 ms/op | 0.68 | | pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 19.593 ms/op | 22.145 ms/op | 0.88 | | pickEth1Vote - Eth1Data fastSerialize value x2048 | 377.04 us/op | 597.66 us/op | 0.63 | | pickEth1Vote - Eth1Data fastSerialize tree x2048 | 6.2487 ms/op | 4.4597 ms/op | 1.40 | | bytes32 toHexString | 614.00 ns/op | 840.00 ns/op | 0.73 | | bytes32 Buffer.toString(hex) | 420.00 ns/op | 494.00 ns/op | 0.85 | | bytes32 Buffer.toString(hex) from Uint8Array | 510.00 ns/op | 591.00 ns/op | 0.86 | | bytes32 Buffer.toString(hex) + 0x | 421.00 ns/op | 479.00 ns/op | 0.88 | | Object access 1 prop | 0.31200 ns/op | 0.36000 ns/op | 0.87 | | Map access 1 prop | 0.31100 ns/op | 0.38100 ns/op | 0.82 | | Object get x1000 | 4.8400 ns/op | 5.2660 ns/op | 0.92 | | Map get x1000 | 5.3050 ns/op | 5.9960 ns/op | 0.88 | | Object set x1000 | 21.919 ns/op | 30.727 ns/op | 0.71 | | Map set x1000 | 19.057 ns/op | 26.693 ns/op | 0.71 | | Return object 10000 times | 0.28550 ns/op | 0.32890 ns/op | 0.87 | | Throw Error 10000 times | 2.5868 us/op | 3.1036 us/op | 0.83 | | fastMsgIdFn sha256 / 200 bytes | 1.9240 us/op | 2.1860 us/op | 0.88 | | fastMsgIdFn h32 xxhash / 200 bytes | 403.00 ns/op | 527.00 ns/op | 0.76 | | fastMsgIdFn h64 xxhash / 200 bytes | 455.00 ns/op | 509.00 ns/op | 0.89 | | fastMsgIdFn sha256 / 1000 bytes | 5.7010 us/op | 6.3000 us/op | 0.90 | | fastMsgIdFn h32 xxhash / 1000 bytes | 549.00 ns/op | 654.00 ns/op | 0.84 | | fastMsgIdFn h64 xxhash / 1000 bytes | 513.00 ns/op | 570.00 ns/op | 0.90 | | fastMsgIdFn sha256 / 10000 bytes | 45.861 us/op | 52.322 us/op | 0.88 | | fastMsgIdFn h32 xxhash / 10000 bytes | 1.8350 us/op | 2.0890 us/op | 0.88 | | fastMsgIdFn h64 xxhash / 10000 bytes | 1.2720 us/op | 1.3170 us/op | 0.97 | | send data - 1000 256B messages | 9.7902 ms/op | 12.966 ms/op | 0.76 | | send data - 1000 512B messages | 13.041 ms/op | 19.483 ms/op | 0.67 | | send data - 1000 1024B messages | 23.143 ms/op | 25.797 ms/op | 0.90 | | send data - 1000 1200B messages | 22.863 ms/op | 25.429 ms/op | 0.90 | | send data - 1000 2048B messages | 31.668 ms/op | 37.352 ms/op | 0.85 | | send data - 1000 4096B messages | 27.395 ms/op | 33.505 ms/op | 0.82 | | send data - 1000 16384B messages | 68.799 ms/op | 68.949 ms/op | 1.00 | | send data - 1000 65536B messages | 247.09 ms/op | 286.88 ms/op | 0.86 | | enrSubnets - fastDeserialize 64 bits | 1.1450 us/op | 1.2740 us/op | 0.90 | | enrSubnets - ssz BitVector 64 bits | 504.00 ns/op | 631.00 ns/op | 0.80 | | enrSubnets - fastDeserialize 4 bits | 328.00 ns/op | 383.00 ns/op | 0.86 | | enrSubnets - ssz BitVector 4 bits | 510.00 ns/op | 630.00 ns/op | 0.81 | | prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 118.75 us/op | 118.18 us/op | 1.00 | | prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 168.95 us/op | 131.81 us/op | 1.28 | | prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 254.08 us/op | 232.95 us/op | 1.09 | | prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 439.79 us/op | 505.56 us/op | 0.87 | | prioritizePeers score 0:0 att 64-1 sync 4-1 | 712.27 us/op | 739.96 us/op | 0.96 | | array of 16000 items push then shift | 1.2673 us/op | 1.4520 us/op | 0.87 | | LinkedList of 16000 items push then shift | 7.5420 ns/op | 6.8030 ns/op | 1.11 | | array of 16000 items push then pop | 119.57 ns/op | 120.13 ns/op | 1.00 | | LinkedList of 16000 items push then pop | 6.3780 ns/op | 6.3790 ns/op | 1.00 | | array of 24000 items push then shift | 1.8482 us/op | 1.9434 us/op | 0.95 | | LinkedList of 24000 items push then shift | 7.1040 ns/op | 6.9240 ns/op | 1.03 | | array of 24000 items push then pop | 166.82 ns/op | 132.65 ns/op | 1.26 | | LinkedList of 24000 items push then pop | 6.4240 ns/op | 6.4250 ns/op | 1.00 | | intersect bitArray bitLen 8 | 5.3480 ns/op | 5.6920 ns/op | 0.94 | | intersect array and set length 8 | 42.075 ns/op | 42.036 ns/op | 1.00 | | intersect bitArray bitLen 128 | 25.875 ns/op | 26.879 ns/op | 0.96 | | intersect array and set length 128 | 589.52 ns/op | 607.83 ns/op | 0.97 | | bitArray.getTrueBitIndexes() bitLen 128 | 2.2770 us/op | 2.4000 us/op | 0.95 | | bitArray.getTrueBitIndexes() bitLen 248 | 3.1900 us/op | 3.5530 us/op | 0.90 | | bitArray.getTrueBitIndexes() bitLen 512 | 5.5610 us/op | 8.8160 us/op | 0.63 | | Buffer.concat 32 items | 1.0410 us/op | 1.1880 us/op | 0.88 | | Uint8Array.set 32 items | 1.5550 us/op | 1.7700 us/op | 0.88 | | Buffer.copy | 1.9990 us/op | 2.3830 us/op | 0.84 | | Uint8Array.set - with subarray | 2.3850 us/op | 3.2580 us/op | 0.73 | | Uint8Array.set - without subarray | 1.6490 us/op | 1.9690 us/op | 0.84 | | getUint32 - dataview | 393.00 ns/op | 515.00 ns/op | 0.76 | | getUint32 - manual | 342.00 ns/op | 416.00 ns/op | 0.82 | | Set add up to 64 items then delete first | 1.8373 us/op | 1.8459 us/op | 1.00 | | OrderedSet add up to 64 items then delete first | 2.5830 us/op | 2.9095 us/op | 0.89 | | Set add up to 64 items then delete last | 1.8679 us/op | 2.0943 us/op | 0.89 | | OrderedSet add up to 64 items then delete last | 3.1101 us/op | 3.1956 us/op | 0.97 | | Set add up to 64 items then delete middle | 2.0785 us/op | 2.0910 us/op | 0.99 | | OrderedSet add up to 64 items then delete middle | 4.5141 us/op | 4.6970 us/op | 0.96 | | Set add up to 128 items then delete first | 4.1257 us/op | 4.2091 us/op | 0.98 | | OrderedSet add up to 128 items then delete first | 6.3867 us/op | 6.4835 us/op | 0.99 | | Set add up to 128 items then delete last | 3.9828 us/op | 4.1051 us/op | 0.97 | | OrderedSet add up to 128 items then delete last | 6.0449 us/op | 6.1582 us/op | 0.98 | | Set add up to 128 items then delete middle | 3.9615 us/op | 4.0013 us/op | 0.99 | | OrderedSet add up to 128 items then delete middle | 11.489 us/op | 11.806 us/op | 0.97 | | Set add up to 256 items then delete first | 8.0537 us/op | 8.0984 us/op | 0.99 | | OrderedSet add up to 256 items then delete first | 12.647 us/op | 12.644 us/op | 1.00 | | Set add up to 256 items then delete last | 7.8280 us/op | 7.8239 us/op | 1.00 | | OrderedSet add up to 256 items then delete last | 11.911 us/op | 12.012 us/op | 0.99 | | Set add up to 256 items then delete middle | 7.7805 us/op | 7.8280 us/op | 0.99 | | OrderedSet add up to 256 items then delete middle | 34.096 us/op | 34.473 us/op | 0.99 | | transfer serialized Status (84 B) | 1.4480 us/op | 1.3820 us/op | 1.05 | | copy serialized Status (84 B) | 1.2020 us/op | 1.1740 us/op | 1.02 | | transfer serialized SignedVoluntaryExit (112 B) | 1.5620 us/op | 1.4620 us/op | 1.07 | | copy serialized SignedVoluntaryExit (112 B) | 1.2640 us/op | 1.2060 us/op | 1.05 | | transfer serialized ProposerSlashing (416 B) | 2.2200 us/op | 1.5520 us/op | 1.43 | | copy serialized ProposerSlashing (416 B) | 1.9480 us/op | 1.3760 us/op | 1.42 | | transfer serialized Attestation (485 B) | 1.9290 us/op | 1.5580 us/op | 1.24 | | copy serialized Attestation (485 B) | 1.9030 us/op | 1.4470 us/op | 1.32 | | transfer serialized AttesterSlashing (33232 B) | 2.7880 us/op | 1.7540 us/op | 1.59 | | copy serialized AttesterSlashing (33232 B) | 4.3730 us/op | 3.7900 us/op | 1.15 | | transfer serialized Small SignedBeaconBlock (128000 B) | 1.8820 us/op | 2.2270 us/op | 0.85 | | copy serialized Small SignedBeaconBlock (128000 B) | 33.999 us/op | 9.4900 us/op | 3.58 | | transfer serialized Avg SignedBeaconBlock (200000 B) | 3.2440 us/op | 2.3660 us/op | 1.37 | | copy serialized Avg SignedBeaconBlock (200000 B) | 13.688 us/op | 13.623 us/op | 1.00 | | transfer serialized BlobsSidecar (524380 B) | 3.2160 us/op | 2.9430 us/op | 1.09 | | copy serialized BlobsSidecar (524380 B) | 71.981 us/op | 75.550 us/op | 0.95 | | transfer serialized Big SignedBeaconBlock (1000000 B) | 3.0470 us/op | 2.9160 us/op | 1.04 | | copy serialized Big SignedBeaconBlock (1000000 B) | 147.91 us/op | 154.13 us/op | 0.96 | | pass gossip attestations to forkchoice per slot | 2.7683 ms/op | 2.7926 ms/op | 0.99 | | forkChoice updateHead vc 100000 bc 64 eq 0 | 432.41 us/op | 426.91 us/op | 1.01 | | forkChoice updateHead vc 600000 bc 64 eq 0 | 2.5389 ms/op | 2.5391 ms/op | 1.00 | | forkChoice updateHead vc 1000000 bc 64 eq 0 | 4.2514 ms/op | 4.3560 ms/op | 0.98 | | forkChoice updateHead vc 600000 bc 320 eq 0 | 2.5049 ms/op | 2.6182 ms/op | 0.96 | | forkChoice updateHead vc 600000 bc 1200 eq 0 | 2.5989 ms/op | 2.7149 ms/op | 0.96 | | forkChoice updateHead vc 600000 bc 7200 eq 0 | 2.9158 ms/op | 3.7385 ms/op | 0.78 | | forkChoice updateHead vc 600000 bc 64 eq 1000 | 9.5022 ms/op | 9.6213 ms/op | 0.99 | | forkChoice updateHead vc 600000 bc 64 eq 10000 | 9.3854 ms/op | 9.4834 ms/op | 0.99 | | forkChoice updateHead vc 600000 bc 64 eq 300000 | 11.417 ms/op | 11.980 ms/op | 0.95 | | computeDeltas 500000 validators 300 proto nodes | 3.0572 ms/op | 3.0627 ms/op | 1.00 | | computeDeltas 500000 validators 1200 proto nodes | 3.0309 ms/op | 3.0399 ms/op | 1.00 | | computeDeltas 500000 validators 7200 proto nodes | 3.0283 ms/op | 2.9911 ms/op | 1.01 | | computeDeltas 750000 validators 300 proto nodes | 4.6174 ms/op | 4.7289 ms/op | 0.98 | | computeDeltas 750000 validators 1200 proto nodes | 4.5911 ms/op | 4.6347 ms/op | 0.99 | | computeDeltas 750000 validators 7200 proto nodes | 4.5189 ms/op | 4.6151 ms/op | 0.98 | | computeDeltas 1400000 validators 300 proto nodes | 8.1390 ms/op | 8.3119 ms/op | 0.98 | | computeDeltas 1400000 validators 1200 proto nodes | 8.2038 ms/op | 8.1609 ms/op | 1.01 | | computeDeltas 1400000 validators 7200 proto nodes | 8.2143 ms/op | 8.2134 ms/op | 1.00 | | computeDeltas 2100000 validators 300 proto nodes | 12.085 ms/op | 12.282 ms/op | 0.98 | | computeDeltas 2100000 validators 1200 proto nodes | 12.096 ms/op | 12.577 ms/op | 0.96 | | computeDeltas 2100000 validators 7200 proto nodes | 12.220 ms/op | 12.910 ms/op | 0.95 | | altair processAttestation - 250000 vs - 7PWei normalcase | 1.5438 ms/op | 1.5401 ms/op | 1.00 | | altair processAttestation - 250000 vs - 7PWei worstcase | 2.2656 ms/op | 2.2254 ms/op | 1.02 | | altair processAttestation - setStatus - 1/6 committees join | 98.540 us/op | 74.810 us/op | 1.32 | | altair processAttestation - setStatus - 1/3 committees join | 195.11 us/op | 142.85 us/op | 1.37 | | altair processAttestation - setStatus - 1/2 committees join | 261.50 us/op | 216.25 us/op | 1.21 | | altair processAttestation - setStatus - 2/3 committees join | 361.71 us/op | 273.63 us/op | 1.32 | | altair processAttestation - setStatus - 4/5 committees join | 497.44 us/op | 394.40 us/op | 1.26 | | altair processAttestation - setStatus - 100% committees join | 565.06 us/op | 467.08 us/op | 1.21 | | altair processBlock - 250000 vs - 7PWei normalcase | 4.0640 ms/op | 3.1173 ms/op | 1.30 | | altair processBlock - 250000 vs - 7PWei normalcase hashState | 32.029 ms/op | 20.148 ms/op | 1.59 | | altair processBlock - 250000 vs - 7PWei worstcase | 37.294 ms/op | 35.478 ms/op | 1.05 | | altair processBlock - 250000 vs - 7PWei worstcase hashState | 68.269 ms/op | 70.610 ms/op | 0.97 | | phase0 processBlock - 250000 vs - 7PWei normalcase | 1.8614 ms/op | 1.9545 ms/op | 0.95 | | phase0 processBlock - 250000 vs - 7PWei worstcase | 22.413 ms/op | 25.429 ms/op | 0.88 | | altair processEth1Data - 250000 vs - 7PWei normalcase | 241.86 us/op | 247.95 us/op | 0.98 | | getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 5.4950 us/op | 6.0540 us/op | 0.91 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 22.041 us/op | 16.441 us/op | 1.34 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 6.7530 us/op | 8.2150 us/op | 0.82 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 4.6370 us/op | 5.7670 us/op | 0.80 | | getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 75.725 us/op | 85.160 us/op | 0.89 | | getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 756.19 us/op | 662.79 us/op | 1.14 | | getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 981.71 us/op | 1.1798 ms/op | 0.83 | | getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 567.79 us/op | 652.58 us/op | 0.87 | | getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 2.0124 ms/op | 2.0388 ms/op | 0.99 | | getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 1.2451 ms/op | 1.2019 ms/op | 1.04 | | getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 2.6943 ms/op | 3.1490 ms/op | 0.86 | | Tree 40 250000 create | 186.31 ms/op | 194.30 ms/op | 0.96 | | Tree 40 250000 get(125000) | 119.96 ns/op | 149.67 ns/op | 0.80 | | Tree 40 250000 set(125000) | 478.64 ns/op | 634.88 ns/op | 0.75 | | Tree 40 250000 toArray() | 12.014 ms/op | 12.248 ms/op | 0.98 | | Tree 40 250000 iterate all - toArray() + loop | 11.946 ms/op | 11.756 ms/op | 1.02 | | Tree 40 250000 iterate all - get(i) | 38.087 ms/op | 47.107 ms/op | 0.81 | | MutableVector 250000 create | 8.8581 ms/op | 17.297 ms/op | 0.51 | | MutableVector 250000 get(125000) | 5.4580 ns/op | 6.3670 ns/op | 0.86 | | MutableVector 250000 set(125000) | 162.92 ns/op | 368.82 ns/op | 0.44 | | MutableVector 250000 toArray() | 2.5714 ms/op | 5.3246 ms/op | 0.48 | | MutableVector 250000 iterate all - toArray() + loop | 2.6661 ms/op | 4.2869 ms/op | 0.62 | | MutableVector 250000 iterate all - get(i) | 1.4088 ms/op | 1.5370 ms/op | 0.92 | | Array 250000 create | 2.2529 ms/op | 3.3638 ms/op | 0.67 | | Array 250000 clone - spread | 1.1521 ms/op | 1.2673 ms/op | 0.91 | | Array 250000 get(125000) | 0.56700 ns/op | 0.61800 ns/op | 0.92 | | Array 250000 set(125000) | 0.58200 ns/op | 0.65400 ns/op | 0.89 | | Array 250000 iterate all - loop | 75.780 us/op | 77.773 us/op | 0.97 | | effectiveBalanceIncrements clone Uint8Array 300000 | 13.194 us/op | 61.961 us/op | 0.21 | | effectiveBalanceIncrements clone MutableVector 300000 | 311.00 ns/op | 334.00 ns/op | 0.93 | | effectiveBalanceIncrements rw all Uint8Array 300000 | 164.71 us/op | 171.20 us/op | 0.96 | | effectiveBalanceIncrements rw all MutableVector 300000 | 52.602 ms/op | 63.577 ms/op | 0.83 | | phase0 afterProcessEpoch - 250000 vs - 7PWei | 73.965 ms/op | 78.179 ms/op | 0.95 | | Array.fill - length 1000000 | 2.4079 ms/op | 2.7179 ms/op | 0.89 | | Array push - length 1000000 | 14.757 ms/op | 19.537 ms/op | 0.76 | | Array.get | 0.24141 ns/op | 0.31950 ns/op | 0.76 | | Uint8Array.get | 0.31279 ns/op | 0.35816 ns/op | 0.87 | | phase0 beforeProcessEpoch - 250000 vs - 7PWei | 15.107 ms/op | 23.994 ms/op | 0.63 | | altair processEpoch - mainnet_e81889 | 298.40 ms/op | 380.53 ms/op | 0.78 | | mainnet_e81889 - altair beforeProcessEpoch | 15.217 ms/op | 23.390 ms/op | 0.65 | | mainnet_e81889 - altair processJustificationAndFinalization | 6.5400 us/op | 22.569 us/op | 0.29 | | mainnet_e81889 - altair processInactivityUpdates | 3.8790 ms/op | 10.437 ms/op | 0.37 | | mainnet_e81889 - altair processRewardsAndPenalties | 56.383 ms/op | 69.232 ms/op | 0.81 | | mainnet_e81889 - altair processRegistryUpdates | 1.8410 us/op | 4.7740 us/op | 0.39 | | mainnet_e81889 - altair processSlashings | 803.00 ns/op | 1.0420 us/op | 0.77 | | mainnet_e81889 - altair processEth1DataReset | 762.00 ns/op | 995.00 ns/op | 0.77 | | mainnet_e81889 - altair processEffectiveBalanceUpdates | 1.3135 ms/op | 2.8388 ms/op | 0.46 | | mainnet_e81889 - altair processSlashingsReset | 2.2410 us/op | 5.7720 us/op | 0.39 | | mainnet_e81889 - altair processRandaoMixesReset | 2.6380 us/op | 7.4340 us/op | 0.35 | | mainnet_e81889 - altair processHistoricalRootsUpdate | 694.00 ns/op | 1.5050 us/op | 0.46 | | mainnet_e81889 - altair processParticipationFlagUpdates | 2.8640 us/op | 2.0870 us/op | 1.37 | | mainnet_e81889 - altair processSyncCommitteeUpdates | 707.00 ns/op | 741.00 ns/op | 0.95 | | mainnet_e81889 - altair afterProcessEpoch | 77.558 ms/op | 75.074 ms/op | 1.03 | | capella processEpoch - mainnet_e217614 | 1.0710 s/op | 1.1964 s/op | 0.90 | | mainnet_e217614 - capella beforeProcessEpoch | 61.333 ms/op | 73.537 ms/op | 0.83 | | mainnet_e217614 - capella processJustificationAndFinalization | 11.466 us/op | 13.446 us/op | 0.85 | | mainnet_e217614 - capella processInactivityUpdates | 11.901 ms/op | 16.759 ms/op | 0.71 | | mainnet_e217614 - capella processRewardsAndPenalties | 256.30 ms/op | 248.65 ms/op | 1.03 | | mainnet_e217614 - capella processRegistryUpdates | 10.773 us/op | 11.336 us/op | 0.95 | | mainnet_e217614 - capella processSlashings | 792.00 ns/op | 866.00 ns/op | 0.91 | | mainnet_e217614 - capella processEth1DataReset | 750.00 ns/op | 682.00 ns/op | 1.10 | | mainnet_e217614 - capella processEffectiveBalanceUpdates | 4.4779 ms/op | 11.665 ms/op | 0.38 | | mainnet_e217614 - capella processSlashingsReset | 2.5620 us/op | 2.4620 us/op | 1.04 | | mainnet_e217614 - capella processRandaoMixesReset | 3.4140 us/op | 3.5970 us/op | 0.95 | | mainnet_e217614 - capella processHistoricalRootsUpdate | 731.00 ns/op | 704.00 ns/op | 1.04 | | mainnet_e217614 - capella processParticipationFlagUpdates | 1.6080 us/op | 1.8100 us/op | 0.89 | | mainnet_e217614 - capella afterProcessEpoch | 194.71 ms/op | 196.48 ms/op | 0.99 | | phase0 processEpoch - mainnet_e58758 | 322.16 ms/op | 345.84 ms/op | 0.93 | | mainnet_e58758 - phase0 beforeProcessEpoch | 65.810 ms/op | 70.299 ms/op | 0.94 | | mainnet_e58758 - phase0 processJustificationAndFinalization | 12.992 us/op | 12.206 us/op | 1.06 | | mainnet_e58758 - phase0 processRewardsAndPenalties | 37.732 ms/op | 33.229 ms/op | 1.14 | | mainnet_e58758 - phase0 processRegistryUpdates | 5.9700 us/op | 7.9050 us/op | 0.76 | | mainnet_e58758 - phase0 processSlashings | 791.00 ns/op | 429.00 ns/op | 1.84 | | mainnet_e58758 - phase0 processEth1DataReset | 755.00 ns/op | 436.00 ns/op | 1.73 | | mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 1.7242 ms/op | 787.93 us/op | 2.19 | | mainnet_e58758 - phase0 processSlashingsReset | 2.4980 us/op | 5.7780 us/op | 0.43 | | mainnet_e58758 - phase0 processRandaoMixesReset | 3.0590 us/op | 3.4520 us/op | 0.89 | | mainnet_e58758 - phase0 processHistoricalRootsUpdate | 694.00 ns/op | 812.00 ns/op | 0.85 | | mainnet_e58758 - phase0 processParticipationRecordUpdates | 3.1240 us/op | 3.4280 us/op | 0.91 | | mainnet_e58758 - phase0 afterProcessEpoch | 60.325 ms/op | 61.985 ms/op | 0.97 | | phase0 processEffectiveBalanceUpdates - 250000 normalcase | 724.34 us/op | 835.28 us/op | 0.87 | | phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 1.1009 ms/op | 1.7232 ms/op | 0.64 | | altair processInactivityUpdates - 250000 normalcase | 14.694 ms/op | 16.160 ms/op | 0.91 | | altair processInactivityUpdates - 250000 worstcase | 18.123 ms/op | 17.038 ms/op | 1.06 | | phase0 processRegistryUpdates - 250000 normalcase | 3.0110 us/op | 6.2790 us/op | 0.48 | | phase0 processRegistryUpdates - 250000 badcase_full_deposits | 297.38 us/op | 307.56 us/op | 0.97 | | phase0 processRegistryUpdates - 250000 worstcase 0.5 | 99.802 ms/op | 110.64 ms/op | 0.90 | | altair processRewardsAndPenalties - 250000 normalcase | 36.037 ms/op | 40.407 ms/op | 0.89 | | altair processRewardsAndPenalties - 250000 worstcase | 43.102 ms/op | 45.614 ms/op | 0.94 | | phase0 getAttestationDeltas - 250000 normalcase | 5.2218 ms/op | 9.7247 ms/op | 0.54 | | phase0 getAttestationDeltas - 250000 worstcase | 5.7390 ms/op | 7.3208 ms/op | 0.78 | | phase0 processSlashings - 250000 worstcase | 48.919 us/op | 91.465 us/op | 0.53 | | altair processSyncCommitteeUpdates - 250000 | 97.293 ms/op | 93.373 ms/op | 1.04 | | BeaconState.hashTreeRoot - No change | 452.00 ns/op | 483.00 ns/op | 0.94 | | BeaconState.hashTreeRoot - 1 full validator | 137.25 us/op | 81.728 us/op | 1.68 | | BeaconState.hashTreeRoot - 32 full validator | 1.5027 ms/op | 1.1766 ms/op | 1.28 | | BeaconState.hashTreeRoot - 512 full validator | 14.422 ms/op | 13.484 ms/op | 1.07 | | BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 143.97 us/op | 130.36 us/op | 1.10 | | BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 1.8453 ms/op | 2.2585 ms/op | 0.82 | | BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 25.472 ms/op | 23.216 ms/op | 1.10 | | BeaconState.hashTreeRoot - 1 balances | 124.19 us/op | 105.60 us/op | 1.18 | | BeaconState.hashTreeRoot - 32 balances | 1.2761 ms/op | 1.0965 ms/op | 1.16 | | BeaconState.hashTreeRoot - 512 balances | 11.650 ms/op | 6.0743 ms/op | 1.92 | | BeaconState.hashTreeRoot - 250000 balances | 159.61 ms/op | 143.85 ms/op | 1.11 | | aggregationBits - 2048 els - zipIndexesInBitList | 19.726 us/op | 21.135 us/op | 0.93 | | byteArrayEquals 32 | 48.028 ns/op | 49.621 ns/op | 0.97 | | Buffer.compare 32 | 16.990 ns/op | 16.255 ns/op | 1.05 | | byteArrayEquals 1024 | 1.2391 us/op | 1.3090 us/op | 0.95 | | Buffer.compare 1024 | 22.803 ns/op | 24.463 ns/op | 0.93 | | byteArrayEquals 16384 | 19.645 us/op | 20.403 us/op | 0.96 | | Buffer.compare 16384 | 186.04 ns/op | 208.14 ns/op | 0.89 | | byteArrayEquals 123687377 | 147.98 ms/op | 148.76 ms/op | 0.99 | | Buffer.compare 123687377 | 3.6397 ms/op | 4.9662 ms/op | 0.73 | | byteArrayEquals 32 - diff last byte | 46.497 ns/op | 48.030 ns/op | 0.97 | | Buffer.compare 32 - diff last byte | 16.128 ns/op | 18.063 ns/op | 0.89 | | byteArrayEquals 1024 - diff last byte | 1.2296 us/op | 1.2652 us/op | 0.97 | | Buffer.compare 1024 - diff last byte | 24.008 ns/op | 23.671 ns/op | 1.01 | | byteArrayEquals 16384 - diff last byte | 19.556 us/op | 20.175 us/op | 0.97 | | Buffer.compare 16384 - diff last byte | 194.49 ns/op | 209.97 ns/op | 0.93 | | byteArrayEquals 123687377 - diff last byte | 147.50 ms/op | 151.42 ms/op | 0.97 | | Buffer.compare 123687377 - diff last byte | 3.6923 ms/op | 4.1535 ms/op | 0.89 | | byteArrayEquals 32 - random bytes | 4.7510 ns/op | 4.9080 ns/op | 0.97 | | Buffer.compare 32 - random bytes | 16.071 ns/op | 16.164 ns/op | 0.99 | | byteArrayEquals 1024 - random bytes | 4.9730 ns/op | 4.9000 ns/op | 1.01 | | Buffer.compare 1024 - random bytes | 16.459 ns/op | 16.341 ns/op | 1.01 | | byteArrayEquals 16384 - random bytes | 4.7650 ns/op | 4.9340 ns/op | 0.97 | | Buffer.compare 16384 - random bytes | 15.857 ns/op | 15.898 ns/op | 1.00 | | byteArrayEquals 123687377 - random bytes | 7.5200 ns/op | 7.9300 ns/op | 0.95 | | Buffer.compare 123687377 - random bytes | 19.470 ns/op | 19.980 ns/op | 0.97 | | regular array get 100000 times | 29.946 us/op | 30.721 us/op | 0.97 | | wrappedArray get 100000 times | 29.926 us/op | 30.744 us/op | 0.97 | | arrayWithProxy get 100000 times | 10.260 ms/op | 10.097 ms/op | 1.02 | | ssz.Root.equals | 42.730 ns/op | 42.737 ns/op | 1.00 | | byteArrayEquals | 42.398 ns/op | 41.315 ns/op | 1.03 | | Buffer.compare | 9.5470 ns/op | 8.5290 ns/op | 1.12 | | shuffle list - 16384 els | 4.8939 ms/op | 5.3619 ms/op | 0.91 | | shuffle list - 250000 els | 72.441 ms/op | 78.890 ms/op | 0.92 | | processSlot - 1 slots | 11.957 us/op | 13.035 us/op | 0.92 | | processSlot - 32 slots | 2.9944 ms/op | 2.7752 ms/op | 1.08 | | getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 42.135 ms/op | 41.244 ms/op | 1.02 | | getCommitteeAssignments - req 1 vs - 250000 vc | 1.6379 ms/op | 1.8990 ms/op | 0.86 | | getCommitteeAssignments - req 100 vs - 250000 vc | 3.2140 ms/op | 3.5554 ms/op | 0.90 | | getCommitteeAssignments - req 1000 vs - 250000 vc | 3.4761 ms/op | 3.8388 ms/op | 0.91 | | findModifiedValidators - 10000 modified validators | 212.56 ms/op | 242.77 ms/op | 0.88 | | findModifiedValidators - 1000 modified validators | 135.33 ms/op | 139.23 ms/op | 0.97 | | findModifiedValidators - 100 modified validators | 132.03 ms/op | 134.75 ms/op | 0.98 | | findModifiedValidators - 10 modified validators | 142.82 ms/op | 130.98 ms/op | 1.09 | | findModifiedValidators - 1 modified validators | 114.04 ms/op | 149.37 ms/op | 0.76 | | findModifiedValidators - no difference | 134.02 ms/op | 160.25 ms/op | 0.84 | | compare ViewDUs | 2.9887 s/op | 3.0351 s/op | 0.98 | | compare each validator Uint8Array | 1.4101 s/op | 1.5140 s/op | 0.93 | | compare ViewDU to Uint8Array | 675.58 ms/op | 651.28 ms/op | 1.04 | | migrate state 1000000 validators, 24 modified, 0 new | 580.00 ms/op | 524.51 ms/op | 1.11 | | migrate state 1000000 validators, 1700 modified, 1000 new | 827.27 ms/op | 727.18 ms/op | 1.14 | | migrate state 1000000 validators, 3400 modified, 2000 new | 1.0509 s/op | 906.29 ms/op | 1.16 | | migrate state 1500000 validators, 24 modified, 0 new | 607.84 ms/op | 485.80 ms/op | 1.25 | | migrate state 1500000 validators, 1700 modified, 1000 new | 820.53 ms/op | 816.74 ms/op | 1.00 | | migrate state 1500000 validators, 3400 modified, 2000 new | 1.0237 s/op | 1.0334 s/op | 0.99 | | RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 5.8800 ns/op | 6.0800 ns/op | 0.97 | | state getBlockRootAtSlot - 250000 vs - 7PWei | 795.34 ns/op | 652.34 ns/op | 1.22 | | computeProposers - vc 250000 | 6.1764 ms/op | 6.1335 ms/op | 1.01 | | computeEpochShuffling - vc 250000 | 74.725 ms/op | 76.014 ms/op | 0.98 | | getNextSyncCommittee - vc 250000 | 96.871 ms/op | 104.99 ms/op | 0.92 | | computeSigningRoot for AttestationData | 22.479 us/op | 20.805 us/op | 1.08 | | hash AttestationData serialized data then Buffer.toString(base64) | 1.1009 us/op | 1.1798 us/op | 0.93 | | toHexString serialized data | 699.18 ns/op | 792.81 ns/op | 0.88 | | Buffer.toString(base64) | 124.79 ns/op | 132.86 ns/op | 0.94 |

by benchmarkbot/action

codecov[bot] commented 3 months ago

Codecov Report

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

Project coverage is 49.23%. Comparing base (64fe1db) to head (c7ff369).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## unstable #7014 +/- ## ============================================ - Coverage 49.23% 49.23% -0.01% ============================================ Files 578 578 Lines 37426 37426 Branches 2165 2162 -3 ============================================ - Hits 18426 18425 -1 - Misses 18960 18961 +1 Partials 40 40 ```
wemeetagain commented 2 months ago

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