ChainSafe / lodestar

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

chore: remove signing domain for consolidations #7092

Closed nflaig closed 6 days ago

nflaig commented 1 week ago
codecov[bot] commented 1 week ago

Codecov Report

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

Project coverage is 50.83%. Comparing base (f1a77ea) to head (5d841d2). Report is 1 commits behind head on unstable.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## unstable #7092 +/- ## ============================================ - Coverage 50.83% 50.83% -0.01% ============================================ Files 597 597 Lines 39789 39789 Branches 2064 2061 -3 ============================================ - Hits 20226 20225 -1 - Misses 19563 19564 +1 ```
github-actions[bot] commented 1 week ago

Performance Report

✔️ no performance regression detected

Full benchmark results | Benchmark suite | Current: 2b498d92bf2b752eccf3813362557ad8959cfd6b | Previous: f1a77eadb7b00218bd8b4eecbbf6ca638ffe3552 | Ratio | |-|-|-|-| | getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 2.9605 ms/op | 2.8686 ms/op | 1.03 | | getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 83.210 us/op | 78.729 us/op | 1.06 | | BLS verify - blst | 993.11 us/op | 1.0313 ms/op | 0.96 | | BLS verifyMultipleSignatures 3 - blst | 1.5449 ms/op | 1.4293 ms/op | 1.08 | | BLS verifyMultipleSignatures 8 - blst | 2.0610 ms/op | 1.9776 ms/op | 1.04 | | BLS verifyMultipleSignatures 32 - blst | 6.4806 ms/op | 6.9649 ms/op | 0.93 | | BLS verifyMultipleSignatures 64 - blst | 11.989 ms/op | 11.008 ms/op | 1.09 | | BLS verifyMultipleSignatures 128 - blst | 19.603 ms/op | 20.146 ms/op | 0.97 | | BLS deserializing 10000 signatures | 804.28 ms/op | 713.94 ms/op | 1.13 | | BLS deserializing 100000 signatures | 7.7464 s/op | 7.0199 s/op | 1.10 | | BLS verifyMultipleSignatures - same message - 3 - blst | 1.1265 ms/op | 1.1196 ms/op | 1.01 | | BLS verifyMultipleSignatures - same message - 8 - blst | 1.3912 ms/op | 1.2619 ms/op | 1.10 | | BLS verifyMultipleSignatures - same message - 32 - blst | 2.1173 ms/op | 1.8403 ms/op | 1.15 | | BLS verifyMultipleSignatures - same message - 64 - blst | 3.0127 ms/op | 2.9611 ms/op | 1.02 | | BLS verifyMultipleSignatures - same message - 128 - blst | 5.3386 ms/op | 4.6390 ms/op | 1.15 | | BLS aggregatePubkeys 32 - blst | 23.156 us/op | 22.217 us/op | 1.04 | | BLS aggregatePubkeys 128 - blst | 79.733 us/op | 76.371 us/op | 1.04 | | notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 96.319 ms/op | 64.272 ms/op | 1.50 | | notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 77.228 ms/op | 64.463 ms/op | 1.20 | | notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 63.531 ms/op | 40.359 ms/op | 1.57 | | getSlashingsAndExits - default max | 133.13 us/op | 162.41 us/op | 0.82 | | getSlashingsAndExits - 2k | 864.35 us/op | 369.75 us/op | 2.34 | | proposeBlockBody type=full, size=empty | 11.393 ms/op | 6.4067 ms/op | 1.78 | | isKnown best case - 1 super set check | 1.0260 us/op | 520.00 ns/op | 1.97 | | isKnown normal case - 2 super set checks | 1.1440 us/op | 451.00 ns/op | 2.54 | | isKnown worse case - 16 super set checks | 1.1970 us/op | 462.00 ns/op | 2.59 | | InMemoryCheckpointStateCache - add get delete | 7.7230 us/op | 3.5340 us/op | 2.19 | | updateUnfinalizedPubkeys - updating 10 pubkeys | 2.5878 ms/op | 1.6913 ms/op | 1.53 | | updateUnfinalizedPubkeys - updating 100 pubkeys | 9.0205 ms/op | 4.7361 ms/op | 1.90 | | updateUnfinalizedPubkeys - updating 1000 pubkeys | 94.189 ms/op | 63.816 ms/op | 1.48 | | validate api signedAggregateAndProof - struct | 2.1804 ms/op | 1.9389 ms/op | 1.12 | | validate gossip signedAggregateAndProof - struct | 2.1512 ms/op | 1.8010 ms/op | 1.19 | | validate gossip attestation - vc 640000 | 1.2643 ms/op | 1.1347 ms/op | 1.11 | | batch validate gossip attestation - vc 640000 - chunk 32 | 164.43 us/op | 151.05 us/op | 1.09 | | batch validate gossip attestation - vc 640000 - chunk 64 | 134.53 us/op | 133.20 us/op | 1.01 | | batch validate gossip attestation - vc 640000 - chunk 128 | 136.55 us/op | 124.02 us/op | 1.10 | | batch validate gossip attestation - vc 640000 - chunk 256 | 143.59 us/op | 126.32 us/op | 1.14 | | pickEth1Vote - no votes | 1.3792 ms/op | 1.3825 ms/op | 1.00 | | pickEth1Vote - max votes | 10.628 ms/op | 11.229 ms/op | 0.95 | | pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 18.089 ms/op | 19.632 ms/op | 0.92 | | pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 29.032 ms/op | 35.562 ms/op | 0.82 | | pickEth1Vote - Eth1Data fastSerialize value x2048 | 685.52 us/op | 747.64 us/op | 0.92 | | pickEth1Vote - Eth1Data fastSerialize tree x2048 | 4.1705 ms/op | 4.1037 ms/op | 1.02 | | bytes32 toHexString | 805.00 ns/op | 814.00 ns/op | 0.99 | | bytes32 Buffer.toString(hex) | 323.00 ns/op | 291.00 ns/op | 1.11 | | bytes32 Buffer.toString(hex) from Uint8Array | 575.00 ns/op | 589.00 ns/op | 0.98 | | bytes32 Buffer.toString(hex) + 0x | 341.00 ns/op | 313.00 ns/op | 1.09 | | Object access 1 prop | 0.23100 ns/op | 0.24700 ns/op | 0.94 | | Map access 1 prop | 0.17400 ns/op | 0.16400 ns/op | 1.06 | | Object get x1000 | 7.4040 ns/op | 6.8150 ns/op | 1.09 | | Map get x1000 | 7.6320 ns/op | 7.6080 ns/op | 1.00 | | Object set x1000 | 62.632 ns/op | 71.734 ns/op | 0.87 | | Map set x1000 | 41.126 ns/op | 59.195 ns/op | 0.69 | | Return object 10000 times | 0.35480 ns/op | 0.39660 ns/op | 0.89 | | Throw Error 10000 times | 4.0194 us/op | 4.3009 us/op | 0.93 | | toHex | 193.51 ns/op | 219.56 ns/op | 0.88 | | Buffer.from | 187.51 ns/op | 198.08 ns/op | 0.95 | | shared Buffer | 122.31 ns/op | 120.63 ns/op | 1.01 | | fastMsgIdFn sha256 / 200 bytes | 2.6980 us/op | 2.8540 us/op | 0.95 | | fastMsgIdFn h32 xxhash / 200 bytes | 344.00 ns/op | 366.00 ns/op | 0.94 | | fastMsgIdFn h64 xxhash / 200 bytes | 400.00 ns/op | 703.00 ns/op | 0.57 | | fastMsgIdFn sha256 / 1000 bytes | 9.5170 us/op | 13.307 us/op | 0.72 | | fastMsgIdFn h32 xxhash / 1000 bytes | 518.00 ns/op | 1.1840 us/op | 0.44 | | fastMsgIdFn h64 xxhash / 1000 bytes | 431.00 ns/op | 588.00 ns/op | 0.73 | | fastMsgIdFn sha256 / 10000 bytes | 79.405 us/op | 80.162 us/op | 0.99 | | fastMsgIdFn h32 xxhash / 10000 bytes | 2.3080 us/op | 3.1480 us/op | 0.73 | | fastMsgIdFn h64 xxhash / 10000 bytes | 1.6060 us/op | 1.5220 us/op | 1.06 | | send data - 1000 256B messages | 17.856 ms/op | 19.647 ms/op | 0.91 | | send data - 1000 512B messages | 30.104 ms/op | 24.321 ms/op | 1.24 | | send data - 1000 1024B messages | 36.784 ms/op | 45.331 ms/op | 0.81 | | send data - 1000 1200B messages | 41.750 ms/op | 42.138 ms/op | 0.99 | | send data - 1000 2048B messages | 60.448 ms/op | 46.660 ms/op | 1.30 | | send data - 1000 4096B messages | 57.447 ms/op | 47.203 ms/op | 1.22 | | send data - 1000 16384B messages | 201.57 ms/op | 141.20 ms/op | 1.43 | | send data - 1000 65536B messages | 920.70 ms/op | 850.96 ms/op | 1.08 | | enrSubnets - fastDeserialize 64 bits | 2.4110 us/op | 1.9500 us/op | 1.24 | | enrSubnets - ssz BitVector 64 bits | 742.00 ns/op | 501.00 ns/op | 1.48 | | enrSubnets - fastDeserialize 4 bits | 299.00 ns/op | 236.00 ns/op | 1.27 | | enrSubnets - ssz BitVector 4 bits | 873.00 ns/op | 545.00 ns/op | 1.60 | | prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 338.56 us/op | 258.75 us/op | 1.31 | | prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 319.43 us/op | 314.08 us/op | 1.02 | | prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 638.62 us/op | 415.00 us/op | 1.54 | | prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 877.81 us/op | 608.14 us/op | 1.44 | | prioritizePeers score 0:0 att 64-1 sync 4-1 | 1.4907 ms/op | 1.1963 ms/op | 1.25 | | array of 16000 items push then shift | 2.5368 us/op | 1.9656 us/op | 1.29 | | LinkedList of 16000 items push then shift | 18.428 ns/op | 12.725 ns/op | 1.45 | | array of 16000 items push then pop | 232.85 ns/op | 162.75 ns/op | 1.43 | | LinkedList of 16000 items push then pop | 17.601 ns/op | 9.0280 ns/op | 1.95 | | array of 24000 items push then shift | 4.9192 us/op | 2.9142 us/op | 1.69 | | LinkedList of 24000 items push then shift | 21.195 ns/op | 11.417 ns/op | 1.86 | | array of 24000 items push then pop | 354.57 ns/op | 202.43 ns/op | 1.75 | | LinkedList of 24000 items push then pop | 15.336 ns/op | 9.0880 ns/op | 1.69 | | intersect bitArray bitLen 8 | 11.949 ns/op | 7.9290 ns/op | 1.51 | | intersect array and set length 8 | 140.64 ns/op | 71.003 ns/op | 1.98 | | intersect bitArray bitLen 128 | 71.679 ns/op | 35.112 ns/op | 2.04 | | intersect array and set length 128 | 1.5391 us/op | 923.08 ns/op | 1.67 | | bitArray.getTrueBitIndexes() bitLen 128 | 4.2160 us/op | 2.5400 us/op | 1.66 | | bitArray.getTrueBitIndexes() bitLen 248 | 6.9990 us/op | 4.6620 us/op | 1.50 | | bitArray.getTrueBitIndexes() bitLen 512 | 17.208 us/op | 10.174 us/op | 1.69 | | Buffer.concat 32 items | 2.7100 us/op | 1.2450 us/op | 2.18 | | Uint8Array.set 32 items | 4.0910 us/op | 2.0950 us/op | 1.95 | | Buffer.copy | 5.4060 us/op | 2.2880 us/op | 2.36 | | Uint8Array.set - with subarray | 8.1130 us/op | 3.6310 us/op | 2.23 | | Uint8Array.set - without subarray | 4.0840 us/op | 2.4140 us/op | 1.69 | | getUint32 - dataview | 544.00 ns/op | 467.00 ns/op | 1.16 | | getUint32 - manual | 516.00 ns/op | 493.00 ns/op | 1.05 | | Set add up to 64 items then delete first | 4.9087 us/op | 4.7666 us/op | 1.03 | | OrderedSet add up to 64 items then delete first | 7.9125 us/op | 5.9296 us/op | 1.33 | | Set add up to 64 items then delete last | 6.4893 us/op | 3.8529 us/op | 1.68 | | OrderedSet add up to 64 items then delete last | 10.355 us/op | 6.0971 us/op | 1.70 | | Set add up to 64 items then delete middle | 6.6214 us/op | 4.1024 us/op | 1.61 | | OrderedSet add up to 64 items then delete middle | 13.087 us/op | 7.3792 us/op | 1.77 | | Set add up to 128 items then delete first | 14.011 us/op | 7.5304 us/op | 1.86 | | OrderedSet add up to 128 items then delete first | 18.061 us/op | 12.040 us/op | 1.50 | | Set add up to 128 items then delete last | 10.872 us/op | 8.2237 us/op | 1.32 | | OrderedSet add up to 128 items then delete last | 19.133 us/op | 12.293 us/op | 1.56 | | Set add up to 128 items then delete middle | 10.978 us/op | 7.3139 us/op | 1.50 | | OrderedSet add up to 128 items then delete middle | 29.708 us/op | 19.230 us/op | 1.54 | | Set add up to 256 items then delete first | 22.244 us/op | 17.358 us/op | 1.28 | | OrderedSet add up to 256 items then delete first | 42.932 us/op | 22.267 us/op | 1.93 | | Set add up to 256 items then delete last | 22.360 us/op | 14.256 us/op | 1.57 | | OrderedSet add up to 256 items then delete last | 33.870 us/op | 21.618 us/op | 1.57 | | Set add up to 256 items then delete middle | 26.063 us/op | 13.942 us/op | 1.87 | | OrderedSet add up to 256 items then delete middle | 86.855 us/op | 49.144 us/op | 1.77 | | transfer serialized Status (84 B) | 3.1140 us/op | 1.5270 us/op | 2.04 | | copy serialized Status (84 B) | 3.3830 us/op | 1.3160 us/op | 2.57 | | transfer serialized SignedVoluntaryExit (112 B) | 4.8780 us/op | 1.5900 us/op | 3.07 | | copy serialized SignedVoluntaryExit (112 B) | 6.6450 us/op | 1.4500 us/op | 4.58 | | transfer serialized ProposerSlashing (416 B) | 5.9910 us/op | 2.5710 us/op | 2.33 | | copy serialized ProposerSlashing (416 B) | 6.8760 us/op | 3.3800 us/op | 2.03 | | transfer serialized Attestation (485 B) | 7.3820 us/op | 3.1940 us/op | 2.31 | | copy serialized Attestation (485 B) | 6.2910 us/op | 3.4290 us/op | 1.83 | | transfer serialized AttesterSlashing (33232 B) | 6.2080 us/op | 4.0150 us/op | 1.55 | | copy serialized AttesterSlashing (33232 B) | 17.891 us/op | 11.797 us/op | 1.52 | | transfer serialized Small SignedBeaconBlock (128000 B) | 8.4940 us/op | 4.4680 us/op | 1.90 | | copy serialized Small SignedBeaconBlock (128000 B) | 62.851 us/op | 34.587 us/op | 1.82 | | transfer serialized Avg SignedBeaconBlock (200000 B) | 9.6340 us/op | 5.9170 us/op | 1.63 | | copy serialized Avg SignedBeaconBlock (200000 B) | 85.478 us/op | 51.877 us/op | 1.65 | | transfer serialized BlobsSidecar (524380 B) | 11.858 us/op | 7.6560 us/op | 1.55 | | copy serialized BlobsSidecar (524380 B) | 395.07 us/op | 176.55 us/op | 2.24 | | transfer serialized Big SignedBeaconBlock (1000000 B) | 14.267 us/op | 9.4180 us/op | 1.51 | | copy serialized Big SignedBeaconBlock (1000000 B) | 673.05 us/op | 352.93 us/op | 1.91 | | pass gossip attestations to forkchoice per slot | 8.5952 ms/op | 4.5748 ms/op | 1.88 | | forkChoice updateHead vc 100000 bc 64 eq 0 | 1.4297 ms/op | 789.01 us/op | 1.81 | | forkChoice updateHead vc 600000 bc 64 eq 0 | 12.455 ms/op | 4.4973 ms/op | 2.77 | | forkChoice updateHead vc 1000000 bc 64 eq 0 | 14.348 ms/op | 7.3121 ms/op | 1.96 | | forkChoice updateHead vc 600000 bc 320 eq 0 | 9.2251 ms/op | 3.8353 ms/op | 2.41 | | forkChoice updateHead vc 600000 bc 1200 eq 0 | 9.4132 ms/op | 4.1477 ms/op | 2.27 | | forkChoice updateHead vc 600000 bc 7200 eq 0 | 11.362 ms/op | 5.4128 ms/op | 2.10 | | forkChoice updateHead vc 600000 bc 64 eq 1000 | 19.253 ms/op | 13.893 ms/op | 1.39 | | forkChoice updateHead vc 600000 bc 64 eq 10000 | 22.316 ms/op | 14.583 ms/op | 1.53 | | forkChoice updateHead vc 600000 bc 64 eq 300000 | 134.07 ms/op | 45.959 ms/op | 2.92 | | computeDeltas 500000 validators 300 proto nodes | 8.8210 ms/op | 5.3809 ms/op | 1.64 | | computeDeltas 500000 validators 1200 proto nodes | 8.5424 ms/op | 4.6966 ms/op | 1.82 | | computeDeltas 500000 validators 7200 proto nodes | 8.5460 ms/op | 4.7530 ms/op | 1.80 | | computeDeltas 750000 validators 300 proto nodes | 12.226 ms/op | 7.1832 ms/op | 1.70 | | computeDeltas 750000 validators 1200 proto nodes | 12.032 ms/op | 6.7528 ms/op | 1.78 | | computeDeltas 750000 validators 7200 proto nodes | 11.125 ms/op | 6.4241 ms/op | 1.73 | | computeDeltas 1400000 validators 300 proto nodes | 14.365 ms/op | 12.143 ms/op | 1.18 | | computeDeltas 1400000 validators 1200 proto nodes | 11.514 ms/op | 11.922 ms/op | 0.97 | | computeDeltas 1400000 validators 7200 proto nodes | 10.861 ms/op | 11.774 ms/op | 0.92 | | computeDeltas 2100000 validators 300 proto nodes | 16.279 ms/op | 16.759 ms/op | 0.97 | | computeDeltas 2100000 validators 1200 proto nodes | 16.504 ms/op | 16.732 ms/op | 0.99 | | computeDeltas 2100000 validators 7200 proto nodes | 17.751 ms/op | 17.918 ms/op | 0.99 | | altair processAttestation - 250000 vs - 7PWei normalcase | 2.7624 ms/op | 3.0669 ms/op | 0.90 | | altair processAttestation - 250000 vs - 7PWei worstcase | 3.4157 ms/op | 3.5484 ms/op | 0.96 | | altair processAttestation - setStatus - 1/6 committees join | 118.47 us/op | 112.93 us/op | 1.05 | | altair processAttestation - setStatus - 1/3 committees join | 226.83 us/op | 214.70 us/op | 1.06 | | altair processAttestation - setStatus - 1/2 committees join | 295.25 us/op | 527.94 us/op | 0.56 | | altair processAttestation - setStatus - 2/3 committees join | 417.85 us/op | 723.02 us/op | 0.58 | | altair processAttestation - setStatus - 4/5 committees join | 604.93 us/op | 904.40 us/op | 0.67 | | altair processAttestation - setStatus - 100% committees join | 710.78 us/op | 817.95 us/op | 0.87 | | altair processBlock - 250000 vs - 7PWei normalcase | 5.6632 ms/op | 10.227 ms/op | 0.55 | | altair processBlock - 250000 vs - 7PWei normalcase hashState | 30.838 ms/op | 46.511 ms/op | 0.66 | | altair processBlock - 250000 vs - 7PWei worstcase | 43.490 ms/op | 48.206 ms/op | 0.90 | | altair processBlock - 250000 vs - 7PWei worstcase hashState | 77.197 ms/op | 107.96 ms/op | 0.72 | | phase0 processBlock - 250000 vs - 7PWei normalcase | 3.2477 ms/op | 4.2096 ms/op | 0.77 | | phase0 processBlock - 250000 vs - 7PWei worstcase | 31.852 ms/op | 34.986 ms/op | 0.91 | | altair processEth1Data - 250000 vs - 7PWei normalcase | 587.33 us/op | 829.75 us/op | 0.71 | | getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 8.9430 us/op | 12.822 us/op | 0.70 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 44.052 us/op | 61.042 us/op | 0.72 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 13.295 us/op | 21.111 us/op | 0.63 | | getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 8.7390 us/op | 14.452 us/op | 0.60 | | getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 185.87 us/op | 245.89 us/op | 0.76 | | getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 1.6951 ms/op | 2.2106 ms/op | 0.77 | | getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 2.1588 ms/op | 3.4809 ms/op | 0.62 | | getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 1.9712 ms/op | 3.1526 ms/op | 0.63 | | getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 5.0567 ms/op | 10.629 ms/op | 0.48 | | getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 2.0997 ms/op | 4.3849 ms/op | 0.48 | | getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 6.3031 ms/op | 9.0926 ms/op | 0.69 | | Tree 40 250000 create | 420.22 ms/op | 875.82 ms/op | 0.48 | | Tree 40 250000 get(125000) | 205.26 ns/op | 318.81 ns/op | 0.64 | | Tree 40 250000 set(125000) | 1.8393 us/op | 2.8930 us/op | 0.64 | | Tree 40 250000 toArray() | 27.563 ms/op | 42.413 ms/op | 0.65 | | Tree 40 250000 iterate all - toArray() + loop | 27.846 ms/op | 42.934 ms/op | 0.65 | | Tree 40 250000 iterate all - get(i) | 81.307 ms/op | 125.81 ms/op | 0.65 | | Array 250000 create | 5.0787 ms/op | 6.4046 ms/op | 0.79 | | Array 250000 clone - spread | 3.1666 ms/op | 6.6288 ms/op | 0.48 | | Array 250000 get(125000) | 0.54500 ns/op | 1.0750 ns/op | 0.51 | | Array 250000 set(125000) | 0.54700 ns/op | 1.1280 ns/op | 0.48 | | Array 250000 iterate all - loop | 120.31 us/op | 212.43 us/op | 0.57 | | phase0 afterProcessEpoch - 250000 vs - 7PWei | 107.45 ms/op | 112.26 ms/op | 0.96 | | Array.fill - length 1000000 | 6.3802 ms/op | 11.680 ms/op | 0.55 | | Array push - length 1000000 | 27.915 ms/op | 44.274 ms/op | 0.63 | | Array.get | 0.37356 ns/op | 0.35411 ns/op | 1.05 | | Uint8Array.get | 0.54031 ns/op | 0.73930 ns/op | 0.73 | | phase0 beforeProcessEpoch - 250000 vs - 7PWei | 27.574 ms/op | 42.320 ms/op | 0.65 | | altair processEpoch - mainnet_e81889 | 436.86 ms/op | 612.32 ms/op | 0.71 | | mainnet_e81889 - altair beforeProcessEpoch | 28.568 ms/op | 46.697 ms/op | 0.61 | | mainnet_e81889 - altair processJustificationAndFinalization | 23.489 us/op | 28.752 us/op | 0.82 | | mainnet_e81889 - altair processInactivityUpdates | 8.6271 ms/op | 15.465 ms/op | 0.56 | | mainnet_e81889 - altair processRewardsAndPenalties | 65.449 ms/op | 72.435 ms/op | 0.90 | | mainnet_e81889 - altair processRegistryUpdates | 6.6270 us/op | 6.6940 us/op | 0.99 | | mainnet_e81889 - altair processSlashings | 1.1310 us/op | 1.6070 us/op | 0.70 | | mainnet_e81889 - altair processEth1DataReset | 833.00 ns/op | 1.3130 us/op | 0.63 | | mainnet_e81889 - altair processEffectiveBalanceUpdates | 2.8499 ms/op | 3.1472 ms/op | 0.91 | | mainnet_e81889 - altair processSlashingsReset | 11.353 us/op | 8.8930 us/op | 1.28 | | mainnet_e81889 - altair processRandaoMixesReset | 13.264 us/op | 10.316 us/op | 1.29 | | mainnet_e81889 - altair processHistoricalRootsUpdate | 1.4470 us/op | 1.3570 us/op | 1.07 | | mainnet_e81889 - altair processParticipationFlagUpdates | 8.6130 us/op | 8.3360 us/op | 1.03 | | mainnet_e81889 - altair processSyncCommitteeUpdates | 1.6120 us/op | 1.4170 us/op | 1.14 | | mainnet_e81889 - altair afterProcessEpoch | 133.24 ms/op | 142.79 ms/op | 0.93 | | capella processEpoch - mainnet_e217614 | 1.9611 s/op | 1.2639 s/op | 1.55 | | mainnet_e217614 - capella beforeProcessEpoch | 114.32 ms/op | 82.728 ms/op | 1.38 | | mainnet_e217614 - capella processJustificationAndFinalization | 45.905 us/op | 24.071 us/op | 1.91 | | mainnet_e217614 - capella processInactivityUpdates | 20.404 ms/op | 19.650 ms/op | 1.04 | | mainnet_e217614 - capella processRewardsAndPenalties | 326.46 ms/op | 247.72 ms/op | 1.32 | | mainnet_e217614 - capella processRegistryUpdates | 17.022 us/op | 14.310 us/op | 1.19 | | mainnet_e217614 - capella processSlashings | 413.00 ns/op | 527.00 ns/op | 0.78 | | mainnet_e217614 - capella processEth1DataReset | 438.00 ns/op | 444.00 ns/op | 0.99 | | mainnet_e217614 - capella processEffectiveBalanceUpdates | 18.129 ms/op | 16.161 ms/op | 1.12 | | mainnet_e217614 - capella processSlashingsReset | 7.7810 us/op | 3.4240 us/op | 2.27 | | mainnet_e217614 - capella processRandaoMixesReset | 11.777 us/op | 5.0690 us/op | 2.32 | | mainnet_e217614 - capella processHistoricalRootsUpdate | 949.00 ns/op | 715.00 ns/op | 1.33 | | mainnet_e217614 - capella processParticipationFlagUpdates | 5.8640 us/op | 2.9530 us/op | 1.99 | | mainnet_e217614 - capella afterProcessEpoch | 293.96 ms/op | 252.30 ms/op | 1.17 | | phase0 processEpoch - mainnet_e58758 | 566.06 ms/op | 372.43 ms/op | 1.52 | | mainnet_e58758 - phase0 beforeProcessEpoch | 132.97 ms/op | 86.887 ms/op | 1.53 | | mainnet_e58758 - phase0 processJustificationAndFinalization | 32.514 us/op | 15.533 us/op | 2.09 | | mainnet_e58758 - phase0 processRewardsAndPenalties | 38.516 ms/op | 39.622 ms/op | 0.97 | | mainnet_e58758 - phase0 processRegistryUpdates | 10.827 us/op | 7.5790 us/op | 1.43 | | mainnet_e58758 - phase0 processSlashings | 618.00 ns/op | 478.00 ns/op | 1.29 | | mainnet_e58758 - phase0 processEth1DataReset | 891.00 ns/op | 540.00 ns/op | 1.65 | | mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 1.5698 ms/op | 1.3792 ms/op | 1.14 | | mainnet_e58758 - phase0 processSlashingsReset | 4.4960 us/op | 3.2900 us/op | 1.37 | | mainnet_e58758 - phase0 processRandaoMixesReset | 10.671 us/op | 6.0310 us/op | 1.77 | | mainnet_e58758 - phase0 processHistoricalRootsUpdate | 705.00 ns/op | 744.00 ns/op | 0.95 | | mainnet_e58758 - phase0 processParticipationRecordUpdates | 4.1310 us/op | 5.1190 us/op | 0.81 | | mainnet_e58758 - phase0 afterProcessEpoch | 101.43 ms/op | 79.205 ms/op | 1.28 | | phase0 processEffectiveBalanceUpdates - 250000 normalcase | 1.5100 ms/op | 1.6916 ms/op | 0.89 | | phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 5.8422 ms/op | 2.4488 ms/op | 2.39 | | altair processInactivityUpdates - 250000 normalcase | 23.027 ms/op | 22.187 ms/op | 1.04 | | altair processInactivityUpdates - 250000 worstcase | 20.606 ms/op | 21.109 ms/op | 0.98 | | phase0 processRegistryUpdates - 250000 normalcase | 9.0230 us/op | 6.5960 us/op | 1.37 | | phase0 processRegistryUpdates - 250000 badcase_full_deposits | 371.50 us/op | 360.77 us/op | 1.03 | | phase0 processRegistryUpdates - 250000 worstcase 0.5 | 148.06 ms/op | 128.71 ms/op | 1.15 | | altair processRewardsAndPenalties - 250000 normalcase | 47.843 ms/op | 52.147 ms/op | 0.92 | | altair processRewardsAndPenalties - 250000 worstcase | 50.162 ms/op | 49.606 ms/op | 1.01 | | phase0 getAttestationDeltas - 250000 normalcase | 9.5035 ms/op | 8.9820 ms/op | 1.06 | | phase0 getAttestationDeltas - 250000 worstcase | 10.743 ms/op | 8.4196 ms/op | 1.28 | | phase0 processSlashings - 250000 worstcase | 96.818 us/op | 101.25 us/op | 0.96 | | altair processSyncCommitteeUpdates - 250000 | 146.01 ms/op | 125.25 ms/op | 1.17 | | BeaconState.hashTreeRoot - No change | 329.00 ns/op | 288.00 ns/op | 1.14 | | BeaconState.hashTreeRoot - 1 full validator | 120.18 us/op | 109.75 us/op | 1.10 | | BeaconState.hashTreeRoot - 32 full validator | 1.3447 ms/op | 1.2775 ms/op | 1.05 | | BeaconState.hashTreeRoot - 512 full validator | 17.192 ms/op | 15.738 ms/op | 1.09 | | BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 210.87 us/op | 163.65 us/op | 1.29 | | BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 2.6654 ms/op | 2.0505 ms/op | 1.30 | | BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 34.922 ms/op | 33.781 ms/op | 1.03 | | BeaconState.hashTreeRoot - 1 balances | 141.13 us/op | 129.36 us/op | 1.09 | | BeaconState.hashTreeRoot - 32 balances | 1.4202 ms/op | 784.03 us/op | 1.81 | | BeaconState.hashTreeRoot - 512 balances | 14.427 ms/op | 7.6066 ms/op | 1.90 | | BeaconState.hashTreeRoot - 250000 balances | 218.38 ms/op | 165.21 ms/op | 1.32 | | aggregationBits - 2048 els - zipIndexesInBitList | 38.545 us/op | 27.610 us/op | 1.40 | | byteArrayEquals 32 | 65.315 ns/op | 54.843 ns/op | 1.19 | | Buffer.compare 32 | 21.805 ns/op | 18.109 ns/op | 1.20 | | byteArrayEquals 1024 | 1.8183 us/op | 1.6423 us/op | 1.11 | | Buffer.compare 1024 | 35.687 ns/op | 26.124 ns/op | 1.37 | | byteArrayEquals 16384 | 31.181 us/op | 25.891 us/op | 1.20 | | Buffer.compare 16384 | 282.94 ns/op | 208.71 ns/op | 1.36 | | byteArrayEquals 123687377 | 240.53 ms/op | 196.65 ms/op | 1.22 | | Buffer.compare 123687377 | 10.318 ms/op | 8.6793 ms/op | 1.19 | | byteArrayEquals 32 - diff last byte | 62.756 ns/op | 54.221 ns/op | 1.16 | | Buffer.compare 32 - diff last byte | 19.089 ns/op | 20.230 ns/op | 0.94 | | byteArrayEquals 1024 - diff last byte | 1.8366 us/op | 1.6790 us/op | 1.09 | | Buffer.compare 1024 - diff last byte | 31.498 ns/op | 29.519 ns/op | 1.07 | | byteArrayEquals 16384 - diff last byte | 29.086 us/op | 26.709 us/op | 1.09 | | Buffer.compare 16384 - diff last byte | 239.05 ns/op | 202.91 ns/op | 1.18 | | byteArrayEquals 123687377 - diff last byte | 231.28 ms/op | 197.07 ms/op | 1.17 | | Buffer.compare 123687377 - diff last byte | 11.974 ms/op | 9.2572 ms/op | 1.29 | | byteArrayEquals 32 - random bytes | 6.9990 ns/op | 5.4570 ns/op | 1.28 | | Buffer.compare 32 - random bytes | 21.539 ns/op | 17.804 ns/op | 1.21 | | byteArrayEquals 1024 - random bytes | 6.4490 ns/op | 5.3630 ns/op | 1.20 | | Buffer.compare 1024 - random bytes | 24.470 ns/op | 18.082 ns/op | 1.35 | | byteArrayEquals 16384 - random bytes | 6.6830 ns/op | 5.3400 ns/op | 1.25 | | Buffer.compare 16384 - random bytes | 20.662 ns/op | 18.077 ns/op | 1.14 | | byteArrayEquals 123687377 - random bytes | 7.8700 ns/op | 7.0000 ns/op | 1.12 | | Buffer.compare 123687377 - random bytes | 22.630 ns/op | 19.250 ns/op | 1.18 | | regular array get 100000 times | 44.123 us/op | 43.647 us/op | 1.01 | | wrappedArray get 100000 times | 39.486 us/op | 46.039 us/op | 0.86 | | arrayWithProxy get 100000 times | 19.844 ms/op | 15.562 ms/op | 1.28 | | ssz.Root.equals | 54.619 ns/op | 46.320 ns/op | 1.18 | | byteArrayEquals | 56.212 ns/op | 45.536 ns/op | 1.23 | | Buffer.compare | 14.240 ns/op | 10.768 ns/op | 1.32 | | shuffle list - 16384 els | 7.6403 ms/op | 6.9302 ms/op | 1.10 | | shuffle list - 250000 els | 109.91 ms/op | 97.284 ms/op | 1.13 | | processSlot - 1 slots | 18.586 us/op | 13.870 us/op | 1.34 | | processSlot - 32 slots | 4.4074 ms/op | 2.8717 ms/op | 1.53 | | getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 45.335 ms/op | 39.482 ms/op | 1.15 | | getCommitteeAssignments - req 1 vs - 250000 vc | 2.7139 ms/op | 2.1405 ms/op | 1.27 | | getCommitteeAssignments - req 100 vs - 250000 vc | 5.0754 ms/op | 4.2128 ms/op | 1.20 | | getCommitteeAssignments - req 1000 vs - 250000 vc | 5.4826 ms/op | 4.5381 ms/op | 1.21 | | findModifiedValidators - 10000 modified validators | 296.82 ms/op | 301.58 ms/op | 0.98 | | findModifiedValidators - 1000 modified validators | 197.72 ms/op | 199.12 ms/op | 0.99 | | findModifiedValidators - 100 modified validators | 237.80 ms/op | 175.00 ms/op | 1.36 | | findModifiedValidators - 10 modified validators | 215.96 ms/op | 191.82 ms/op | 1.13 | | findModifiedValidators - 1 modified validators | 191.10 ms/op | 176.92 ms/op | 1.08 | | findModifiedValidators - no difference | 254.21 ms/op | 190.11 ms/op | 1.34 | | compare ViewDUs | 3.6117 s/op | 4.3331 s/op | 0.83 | | compare each validator Uint8Array | 1.8515 s/op | 1.7353 s/op | 1.07 | | compare ViewDU to Uint8Array | 1.4380 s/op | 1.4566 s/op | 0.99 | | migrate state 1000000 validators, 24 modified, 0 new | 1.0859 s/op | 1.1993 s/op | 0.91 | | migrate state 1000000 validators, 1700 modified, 1000 new | 1.3687 s/op | 1.5145 s/op | 0.90 | | migrate state 1000000 validators, 3400 modified, 2000 new | 1.6129 s/op | 1.8695 s/op | 0.86 | | migrate state 1500000 validators, 24 modified, 0 new | 999.86 ms/op | 1.3261 s/op | 0.75 | | migrate state 1500000 validators, 1700 modified, 1000 new | 1.3970 s/op | 1.5369 s/op | 0.91 | | migrate state 1500000 validators, 3400 modified, 2000 new | 1.4854 s/op | 1.7014 s/op | 0.87 | | RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 5.1100 ns/op | 5.6200 ns/op | 0.91 | | state getBlockRootAtSlot - 250000 vs - 7PWei | 537.19 ns/op | 725.74 ns/op | 0.74 | | computeProposers - vc 250000 | 7.3760 ms/op | 9.9174 ms/op | 0.74 | | computeEpochShuffling - vc 250000 | 103.21 ms/op | 106.31 ms/op | 0.97 | | getNextSyncCommittee - vc 250000 | 137.82 ms/op | 160.16 ms/op | 0.86 | | computeSigningRoot for AttestationData | 25.379 us/op | 34.327 us/op | 0.74 | | hash AttestationData serialized data then Buffer.toString(base64) | 1.7442 us/op | 1.7247 us/op | 1.01 | | toHexString serialized data | 1.1684 us/op | 1.4097 us/op | 0.83 | | Buffer.toString(base64) | 211.65 ns/op | 273.25 ns/op | 0.77 | | nodejs block root to RootHex using toHex | 175.86 ns/op | 201.87 ns/op | 0.87 | | nodejs block root to RootHex using toRootHex | 114.21 ns/op | 116.32 ns/op | 0.98 | | browser block root to RootHex using the deprecated toHexString | 266.19 ns/op | 355.43 ns/op | 0.75 | | browser block root to RootHex using toHex | 230.43 ns/op | 312.88 ns/op | 0.74 | | browser block root to RootHex using toRootHex | 197.68 ns/op | 229.72 ns/op | 0.86 |

by benchmarkbot/action

nflaig commented 1 week ago