Conversation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Code Review
This pull request implements support for the Gloas hardfork, specifically incorporating EIP-7843 and EIP-7928. It updates the Engine API with new method versions, adds slotNumber and blockAccessList to execution payloads, and extends SSZ types and serialization logic. A review comment suggests improving type safety in the block production logic by using a more specific type cast for payload attributes.
e14f7cf to
8120218
Compare
|
| Benchmark suite | Current: 19d9e13 | Previous: 4fb05c5 | Ratio |
|---|---|---|---|
| send data - 1000 16384B messages | 46.237 ms/op | 13.836 ms/op | 3.34 |
| enrSubnets - fastDeserialize 4 bits | 317.00 ns/op | 100.00 ns/op | 3.17 |
Full benchmark results
| Benchmark suite | Current: 19d9e13 | Previous: 4fb05c5 | Ratio |
|---|---|---|---|
| getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 1.4215 ms/op | 1.3569 ms/op | 1.05 |
| getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 42.895 us/op | 47.166 us/op | 0.91 |
| BLS verify - blst | 769.28 us/op | 773.05 us/op | 1.00 |
| BLS verifyMultipleSignatures 3 - blst | 1.4427 ms/op | 1.4107 ms/op | 1.02 |
| BLS verifyMultipleSignatures 8 - blst | 2.2965 ms/op | 2.2779 ms/op | 1.01 |
| BLS verifyMultipleSignatures 32 - blst | 7.1932 ms/op | 7.3560 ms/op | 0.98 |
| BLS verifyMultipleSignatures 64 - blst | 13.847 ms/op | 14.488 ms/op | 0.96 |
| BLS verifyMultipleSignatures 128 - blst | 26.780 ms/op | 27.032 ms/op | 0.99 |
| BLS deserializing 10000 signatures | 641.83 ms/op | 666.59 ms/op | 0.96 |
| BLS deserializing 100000 signatures | 6.7085 s/op | 6.5810 s/op | 1.02 |
| BLS verifyMultipleSignatures - same message - 3 - blst | 840.80 us/op | 779.87 us/op | 1.08 |
| BLS verifyMultipleSignatures - same message - 8 - blst | 1.0099 ms/op | 924.45 us/op | 1.09 |
| BLS verifyMultipleSignatures - same message - 32 - blst | 1.7127 ms/op | 1.6123 ms/op | 1.06 |
| BLS verifyMultipleSignatures - same message - 64 - blst | 2.6427 ms/op | 2.3969 ms/op | 1.10 |
| BLS verifyMultipleSignatures - same message - 128 - blst | 4.5496 ms/op | 4.1267 ms/op | 1.10 |
| BLS aggregatePubkeys 32 - blst | 18.665 us/op | 18.297 us/op | 1.02 |
| BLS aggregatePubkeys 128 - blst | 65.396 us/op | 65.060 us/op | 1.01 |
| getSlashingsAndExits - default max | 53.204 us/op | 49.628 us/op | 1.07 |
| getSlashingsAndExits - 2k | 394.55 us/op | 373.58 us/op | 1.06 |
| proposeBlockBody type=full, size=empty | 777.12 us/op | 680.36 us/op | 1.14 |
| isKnown best case - 1 super set check | 404.00 ns/op | 169.00 ns/op | 2.39 |
| isKnown normal case - 2 super set checks | 398.00 ns/op | 172.00 ns/op | 2.31 |
| isKnown worse case - 16 super set checks | 386.00 ns/op | 168.00 ns/op | 2.30 |
| validate api signedAggregateAndProof - struct | 1.6367 ms/op | 1.5480 ms/op | 1.06 |
| validate gossip signedAggregateAndProof - struct | 1.6518 ms/op | 1.5459 ms/op | 1.07 |
| batch validate gossip attestation - vc 640000 - chunk 32 | 116.72 us/op | 107.19 us/op | 1.09 |
| batch validate gossip attestation - vc 640000 - chunk 64 | 104.12 us/op | 95.828 us/op | 1.09 |
| batch validate gossip attestation - vc 640000 - chunk 128 | 95.503 us/op | 87.181 us/op | 1.10 |
| batch validate gossip attestation - vc 640000 - chunk 256 | 91.977 us/op | 83.579 us/op | 1.10 |
| bytes32 toHexString | 527.00 ns/op | 292.00 ns/op | 1.80 |
| bytes32 Buffer.toString(hex) | 404.00 ns/op | 173.00 ns/op | 2.34 |
| bytes32 Buffer.toString(hex) from Uint8Array | 481.00 ns/op | 240.00 ns/op | 2.00 |
| bytes32 Buffer.toString(hex) + 0x | 413.00 ns/op | 172.00 ns/op | 2.40 |
| Return object 10000 times | 0.23940 ns/op | 0.21490 ns/op | 1.11 |
| Throw Error 10000 times | 3.4249 us/op | 3.3482 us/op | 1.02 |
| toHex | 95.881 ns/op | 103.62 ns/op | 0.93 |
| Buffer.from | 87.636 ns/op | 89.105 ns/op | 0.98 |
| shared Buffer | 58.961 ns/op | 59.319 ns/op | 0.99 |
| fastMsgIdFn sha256 / 200 bytes | 1.7730 us/op | 1.4900 us/op | 1.19 |
| fastMsgIdFn h32 xxhash / 200 bytes | 365.00 ns/op | 152.00 ns/op | 2.40 |
| fastMsgIdFn h64 xxhash / 200 bytes | 430.00 ns/op | 201.00 ns/op | 2.14 |
| fastMsgIdFn sha256 / 1000 bytes | 5.1240 us/op | 4.7900 us/op | 1.07 |
| fastMsgIdFn h32 xxhash / 1000 bytes | 469.00 ns/op | 243.00 ns/op | 1.93 |
| fastMsgIdFn h64 xxhash / 1000 bytes | 479.00 ns/op | 255.00 ns/op | 1.88 |
| fastMsgIdFn sha256 / 10000 bytes | 43.574 us/op | 42.327 us/op | 1.03 |
| fastMsgIdFn h32 xxhash / 10000 bytes | 1.5000 us/op | 1.2990 us/op | 1.15 |
| fastMsgIdFn h64 xxhash / 10000 bytes | 1.0520 us/op | 850.00 ns/op | 1.24 |
| send data - 1000 256B messages | 4.7166 ms/op | 4.0820 ms/op | 1.16 |
| send data - 1000 512B messages | 5.0860 ms/op | 4.2060 ms/op | 1.21 |
| send data - 1000 1024B messages | 4.7513 ms/op | 4.5136 ms/op | 1.05 |
| send data - 1000 1200B messages | 5.0678 ms/op | 4.7220 ms/op | 1.07 |
| send data - 1000 2048B messages | 4.8473 ms/op | 5.0305 ms/op | 0.96 |
| send data - 1000 4096B messages | 6.1225 ms/op | 5.9688 ms/op | 1.03 |
| send data - 1000 16384B messages | 46.237 ms/op | 13.836 ms/op | 3.34 |
| send data - 1000 65536B messages | 221.67 ms/op | 239.18 ms/op | 0.93 |
| enrSubnets - fastDeserialize 64 bits | 1.0550 us/op | 748.00 ns/op | 1.41 |
| enrSubnets - ssz BitVector 64 bits | 513.00 ns/op | 270.00 ns/op | 1.90 |
| enrSubnets - fastDeserialize 4 bits | 317.00 ns/op | 100.00 ns/op | 3.17 |
| enrSubnets - ssz BitVector 4 bits | 503.00 ns/op | 264.00 ns/op | 1.91 |
| prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 229.49 us/op | 209.72 us/op | 1.09 |
| prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 252.59 us/op | 242.15 us/op | 1.04 |
| prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 381.47 us/op | 337.23 us/op | 1.13 |
| prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 636.24 us/op | 605.43 us/op | 1.05 |
| prioritizePeers score 0:0 att 64-1 sync 4-1 | 754.29 us/op | 705.50 us/op | 1.07 |
| array of 16000 items push then shift | 1.3933 us/op | 1.3215 us/op | 1.05 |
| LinkedList of 16000 items push then shift | 8.2320 ns/op | 7.1840 ns/op | 1.15 |
| array of 16000 items push then pop | 76.999 ns/op | 71.996 ns/op | 1.07 |
| LinkedList of 16000 items push then pop | 6.6450 ns/op | 6.2030 ns/op | 1.07 |
| array of 24000 items push then shift | 2.0155 us/op | 1.9716 us/op | 1.02 |
| LinkedList of 24000 items push then shift | 7.5330 ns/op | 7.2600 ns/op | 1.04 |
| array of 24000 items push then pop | 106.04 ns/op | 98.798 ns/op | 1.07 |
| LinkedList of 24000 items push then pop | 6.5930 ns/op | 6.3030 ns/op | 1.05 |
| intersect bitArray bitLen 8 | 5.0990 ns/op | 4.8720 ns/op | 1.05 |
| intersect array and set length 8 | 30.842 ns/op | 30.366 ns/op | 1.02 |
| intersect bitArray bitLen 128 | 25.223 ns/op | 25.034 ns/op | 1.01 |
| intersect array and set length 128 | 531.24 ns/op | 516.79 ns/op | 1.03 |
| bitArray.getTrueBitIndexes() bitLen 128 | 1.3610 us/op | 1.0420 us/op | 1.31 |
| bitArray.getTrueBitIndexes() bitLen 248 | 2.1920 us/op | 1.8700 us/op | 1.17 |
| bitArray.getTrueBitIndexes() bitLen 512 | 4.3470 us/op | 3.7900 us/op | 1.15 |
| Full columns - reconstruct all 6 blobs | 144.27 us/op | 166.79 us/op | 0.86 |
| Full columns - reconstruct half of the blobs out of 6 | 70.031 us/op | 75.104 us/op | 0.93 |
| Full columns - reconstruct single blob out of 6 | 36.174 us/op | 33.252 us/op | 1.09 |
| Half columns - reconstruct all 6 blobs | 414.45 ms/op | 403.13 ms/op | 1.03 |
| Half columns - reconstruct half of the blobs out of 6 | 207.14 ms/op | 205.57 ms/op | 1.01 |
| Half columns - reconstruct single blob out of 6 | 76.134 ms/op | 72.994 ms/op | 1.04 |
| Full columns - reconstruct all 10 blobs | 218.52 us/op | 256.37 us/op | 0.85 |
| Full columns - reconstruct half of the blobs out of 10 | 113.92 us/op | 139.46 us/op | 0.82 |
| Full columns - reconstruct single blob out of 10 | 36.054 us/op | 34.188 us/op | 1.05 |
| Half columns - reconstruct all 10 blobs | 695.68 ms/op | 644.53 ms/op | 1.08 |
| Half columns - reconstruct half of the blobs out of 10 | 356.58 ms/op | 321.91 ms/op | 1.11 |
| Half columns - reconstruct single blob out of 10 | 76.388 ms/op | 67.780 ms/op | 1.13 |
| Full columns - reconstruct all 20 blobs | 1.9894 ms/op | 1.0364 ms/op | 1.92 |
| Full columns - reconstruct half of the blobs out of 20 | 286.61 us/op | 201.71 us/op | 1.42 |
| Full columns - reconstruct single blob out of 20 | 32.672 us/op | 31.154 us/op | 1.05 |
| Half columns - reconstruct all 20 blobs | 1.3990 s/op | 1.3095 s/op | 1.07 |
| Half columns - reconstruct half of the blobs out of 20 | 699.59 ms/op | 657.10 ms/op | 1.06 |
| Half columns - reconstruct single blob out of 20 | 75.081 ms/op | 71.630 ms/op | 1.05 |
| Set add up to 64 items then delete first | 2.1546 us/op | 2.1927 us/op | 0.98 |
| OrderedSet add up to 64 items then delete first | 3.4137 us/op | 3.4686 us/op | 0.98 |
| Set add up to 64 items then delete last | 2.2694 us/op | 2.1945 us/op | 1.03 |
| OrderedSet add up to 64 items then delete last | 4.4768 us/op | 3.3398 us/op | 1.34 |
| Set add up to 64 items then delete middle | 3.4672 us/op | 2.1821 us/op | 1.59 |
| OrderedSet add up to 64 items then delete middle | 7.9670 us/op | 4.8863 us/op | 1.63 |
| Set add up to 128 items then delete first | 5.0372 us/op | 4.4261 us/op | 1.14 |
| OrderedSet add up to 128 items then delete first | 7.7199 us/op | 6.8144 us/op | 1.13 |
| Set add up to 128 items then delete last | 5.3373 us/op | 4.0533 us/op | 1.32 |
| OrderedSet add up to 128 items then delete last | 8.4189 us/op | 6.0594 us/op | 1.39 |
| Set add up to 128 items then delete middle | 5.3764 us/op | 4.0742 us/op | 1.32 |
| OrderedSet add up to 128 items then delete middle | 14.872 us/op | 12.123 us/op | 1.23 |
| Set add up to 256 items then delete first | 10.680 us/op | 8.0918 us/op | 1.32 |
| OrderedSet add up to 256 items then delete first | 16.580 us/op | 12.504 us/op | 1.33 |
| Set add up to 256 items then delete last | 10.910 us/op | 7.9010 us/op | 1.38 |
| OrderedSet add up to 256 items then delete last | 17.786 us/op | 11.947 us/op | 1.49 |
| Set add up to 256 items then delete middle | 11.124 us/op | 7.8269 us/op | 1.42 |
| OrderedSet add up to 256 items then delete middle | 43.459 us/op | 35.751 us/op | 1.22 |
| pass gossip attestations to forkchoice per slot | 2.8544 ms/op | 2.6328 ms/op | 1.08 |
| forkChoice updateHead vc 100000 bc 64 eq 0 | 437.15 us/op | 417.57 us/op | 1.05 |
| forkChoice updateHead vc 600000 bc 64 eq 0 | 2.8048 ms/op | 2.4894 ms/op | 1.13 |
| forkChoice updateHead vc 1000000 bc 64 eq 0 | 4.4441 ms/op | 4.2059 ms/op | 1.06 |
| forkChoice updateHead vc 600000 bc 320 eq 0 | 2.7166 ms/op | 2.5002 ms/op | 1.09 |
| forkChoice updateHead vc 600000 bc 1200 eq 0 | 2.7013 ms/op | 2.5647 ms/op | 1.05 |
| forkChoice updateHead vc 600000 bc 7200 eq 0 | 3.9262 ms/op | 2.8578 ms/op | 1.37 |
| forkChoice updateHead vc 600000 bc 64 eq 1000 | 3.0783 ms/op | 3.0038 ms/op | 1.02 |
| forkChoice updateHead vc 600000 bc 64 eq 10000 | 3.1942 ms/op | 3.1151 ms/op | 1.03 |
| forkChoice updateHead vc 600000 bc 64 eq 300000 | 8.1292 ms/op | 7.7914 ms/op | 1.04 |
| computeDeltas 1400000 validators 0% inactive | 13.079 ms/op | 12.932 ms/op | 1.01 |
| computeDeltas 1400000 validators 10% inactive | 12.247 ms/op | 12.049 ms/op | 1.02 |
| computeDeltas 1400000 validators 20% inactive | 11.283 ms/op | 11.062 ms/op | 1.02 |
| computeDeltas 1400000 validators 50% inactive | 8.7024 ms/op | 8.5213 ms/op | 1.02 |
| computeDeltas 2100000 validators 0% inactive | 19.681 ms/op | 19.379 ms/op | 1.02 |
| computeDeltas 2100000 validators 10% inactive | 18.858 ms/op | 18.466 ms/op | 1.02 |
| computeDeltas 2100000 validators 20% inactive | 16.647 ms/op | 16.742 ms/op | 0.99 |
| computeDeltas 2100000 validators 50% inactive | 13.034 ms/op | 12.777 ms/op | 1.02 |
| altair processAttestation - 250000 vs - 7PWei normalcase | 3.5078 ms/op | 3.3473 ms/op | 1.05 |
| altair processAttestation - 250000 vs - 7PWei worstcase | 4.8667 ms/op | 2.8215 ms/op | 1.72 |
| altair processAttestation - setStatus - 1/6 committees join | 122.09 us/op | 104.79 us/op | 1.17 |
| altair processAttestation - setStatus - 1/3 committees join | 219.13 us/op | 207.38 us/op | 1.06 |
| altair processAttestation - setStatus - 1/2 committees join | 306.55 us/op | 292.23 us/op | 1.05 |
| altair processAttestation - setStatus - 2/3 committees join | 404.61 us/op | 379.88 us/op | 1.07 |
| altair processAttestation - setStatus - 4/5 committees join | 532.42 us/op | 525.67 us/op | 1.01 |
| altair processAttestation - setStatus - 100% committees join | 637.48 us/op | 618.56 us/op | 1.03 |
| altair processBlock - 250000 vs - 7PWei normalcase | 4.6913 ms/op | 3.6971 ms/op | 1.27 |
| altair processBlock - 250000 vs - 7PWei normalcase hashState | 17.691 ms/op | 16.606 ms/op | 1.07 |
| altair processBlock - 250000 vs - 7PWei worstcase | 23.150 ms/op | 22.196 ms/op | 1.04 |
| altair processBlock - 250000 vs - 7PWei worstcase hashState | 49.815 ms/op | 45.500 ms/op | 1.09 |
| phase0 processBlock - 250000 vs - 7PWei normalcase | 1.6361 ms/op | 1.4276 ms/op | 1.15 |
| phase0 processBlock - 250000 vs - 7PWei worstcase | 18.602 ms/op | 17.896 ms/op | 1.04 |
| altair processEth1Data - 250000 vs - 7PWei normalcase | 312.35 us/op | 309.65 us/op | 1.01 |
| getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:16 | 13.191 us/op | 8.7550 us/op | 1.51 |
| getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:220 | 23.923 us/op | 23.184 us/op | 1.03 |
| getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:43 | 6.1640 us/op | 10.441 us/op | 0.59 |
| getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:19 | 4.0660 us/op | 6.8640 us/op | 0.59 |
| getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1021 | 95.941 us/op | 102.03 us/op | 0.94 |
| getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11778 | 1.5845 ms/op | 1.4913 ms/op | 1.06 |
| getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 1.9789 ms/op | 1.9423 ms/op | 1.02 |
| getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 1.9603 ms/op | 1.9532 ms/op | 1.00 |
| getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 4.4752 ms/op | 4.3045 ms/op | 1.04 |
| getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 2.2782 ms/op | 2.1852 ms/op | 1.04 |
| getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 4.4078 ms/op | 4.6036 ms/op | 0.96 |
| Tree 40 250000 create | 429.69 ms/op | 359.15 ms/op | 1.20 |
| Tree 40 250000 get(125000) | 91.974 ns/op | 95.588 ns/op | 0.96 |
| Tree 40 250000 set(125000) | 1.0002 us/op | 1.0690 us/op | 0.94 |
| Tree 40 250000 toArray() | 17.282 ms/op | 15.105 ms/op | 1.14 |
| Tree 40 250000 iterate all - toArray() + loop | 18.120 ms/op | 13.101 ms/op | 1.38 |
| Tree 40 250000 iterate all - get(i) | 40.150 ms/op | 40.911 ms/op | 0.98 |
| Array 250000 create | 2.3744 ms/op | 2.3062 ms/op | 1.03 |
| Array 250000 clone - spread | 718.08 us/op | 711.68 us/op | 1.01 |
| Array 250000 get(125000) | 0.50100 ns/op | 0.30700 ns/op | 1.63 |
| Array 250000 set(125000) | 0.51200 ns/op | 0.31400 ns/op | 1.63 |
| Array 250000 iterate all - loop | 58.417 us/op | 59.588 us/op | 0.98 |
| phase0 afterProcessEpoch - 250000 vs - 7PWei | 55.961 ms/op | 53.375 ms/op | 1.05 |
| Array.fill - length 1000000 | 2.3423 ms/op | 2.3322 ms/op | 1.00 |
| Array push - length 1000000 | 10.696 ms/op | 9.1287 ms/op | 1.17 |
| Array.get | 0.21476 ns/op | 0.21534 ns/op | 1.00 |
| Uint8Array.get | 0.25127 ns/op | 0.25110 ns/op | 1.00 |
| phase0 beforeProcessEpoch - 250000 vs - 7PWei | 28.059 ms/op | 16.563 ms/op | 1.69 |
| altair processEpoch - mainnet_e81889 | 347.85 ms/op | 278.38 ms/op | 1.25 |
| mainnet_e81889 - altair beforeProcessEpoch | 36.847 ms/op | 16.172 ms/op | 2.28 |
| mainnet_e81889 - altair processJustificationAndFinalization | 7.1150 us/op | 5.9590 us/op | 1.19 |
| mainnet_e81889 - altair processInactivityUpdates | 4.1539 ms/op | 4.5829 ms/op | 0.91 |
| mainnet_e81889 - altair processRewardsAndPenalties | 19.589 ms/op | 20.980 ms/op | 0.93 |
| mainnet_e81889 - altair processRegistryUpdates | 780.00 ns/op | 561.00 ns/op | 1.39 |
| mainnet_e81889 - altair processSlashings | 355.00 ns/op | 145.00 ns/op | 2.45 |
| mainnet_e81889 - altair processEth1DataReset | 352.00 ns/op | 135.00 ns/op | 2.61 |
| mainnet_e81889 - altair processEffectiveBalanceUpdates | 2.4554 ms/op | 1.3573 ms/op | 1.81 |
| mainnet_e81889 - altair processSlashingsReset | 934.00 ns/op | 714.00 ns/op | 1.31 |
| mainnet_e81889 - altair processRandaoMixesReset | 1.5700 us/op | 1.2940 us/op | 1.21 |
| mainnet_e81889 - altair processHistoricalRootsUpdate | 353.00 ns/op | 136.00 ns/op | 2.60 |
| mainnet_e81889 - altair processParticipationFlagUpdates | 658.00 ns/op | 476.00 ns/op | 1.38 |
| mainnet_e81889 - altair processSyncCommitteeUpdates | 323.00 ns/op | 110.00 ns/op | 2.94 |
| mainnet_e81889 - altair afterProcessEpoch | 40.508 ms/op | 43.635 ms/op | 0.93 |
| capella processEpoch - mainnet_e217614 | 1.0632 s/op | 901.92 ms/op | 1.18 |
| mainnet_e217614 - capella beforeProcessEpoch | 67.100 ms/op | 69.926 ms/op | 0.96 |
| mainnet_e217614 - capella processJustificationAndFinalization | 9.2200 us/op | 6.6530 us/op | 1.39 |
| mainnet_e217614 - capella processInactivityUpdates | 18.704 ms/op | 16.566 ms/op | 1.13 |
| mainnet_e217614 - capella processRewardsAndPenalties | 108.69 ms/op | 97.629 ms/op | 1.11 |
| mainnet_e217614 - capella processRegistryUpdates | 4.7610 us/op | 4.6500 us/op | 1.02 |
| mainnet_e217614 - capella processSlashings | 364.00 ns/op | 143.00 ns/op | 2.55 |
| mainnet_e217614 - capella processEth1DataReset | 363.00 ns/op | 137.00 ns/op | 2.65 |
| mainnet_e217614 - capella processEffectiveBalanceUpdates | 6.1219 ms/op | 7.5314 ms/op | 0.81 |
| mainnet_e217614 - capella processSlashingsReset | 949.00 ns/op | 704.00 ns/op | 1.35 |
| mainnet_e217614 - capella processRandaoMixesReset | 1.6000 us/op | 1.2520 us/op | 1.28 |
| mainnet_e217614 - capella processHistoricalRootsUpdate | 357.00 ns/op | 138.00 ns/op | 2.59 |
| mainnet_e217614 - capella processParticipationFlagUpdates | 677.00 ns/op | 461.00 ns/op | 1.47 |
| mainnet_e217614 - capella afterProcessEpoch | 108.62 ms/op | 116.51 ms/op | 0.93 |
| phase0 processEpoch - mainnet_e58758 | 338.13 ms/op | 309.87 ms/op | 1.09 |
| mainnet_e58758 - phase0 beforeProcessEpoch | 64.630 ms/op | 62.093 ms/op | 1.04 |
| mainnet_e58758 - phase0 processJustificationAndFinalization | 6.7160 us/op | 6.3070 us/op | 1.06 |
| mainnet_e58758 - phase0 processRewardsAndPenalties | 17.548 ms/op | 17.746 ms/op | 0.99 |
| mainnet_e58758 - phase0 processRegistryUpdates | 2.5450 us/op | 2.3680 us/op | 1.07 |
| mainnet_e58758 - phase0 processSlashings | 365.00 ns/op | 314.00 ns/op | 1.16 |
| mainnet_e58758 - phase0 processEth1DataReset | 359.00 ns/op | 146.00 ns/op | 2.46 |
| mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 896.57 us/op | 854.03 us/op | 1.05 |
| mainnet_e58758 - phase0 processSlashingsReset | 1.0810 us/op | 971.00 ns/op | 1.11 |
| mainnet_e58758 - phase0 processRandaoMixesReset | 2.3820 us/op | 1.3200 us/op | 1.80 |
| mainnet_e58758 - phase0 processHistoricalRootsUpdate | 358.00 ns/op | 149.00 ns/op | 2.40 |
| mainnet_e58758 - phase0 processParticipationRecordUpdates | 1.4360 us/op | 1.2340 us/op | 1.16 |
| mainnet_e58758 - phase0 afterProcessEpoch | 33.342 ms/op | 36.239 ms/op | 0.92 |
| phase0 processEffectiveBalanceUpdates - 250000 normalcase | 1.0965 ms/op | 1.2963 ms/op | 0.85 |
| phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 1.7863 ms/op | 1.6135 ms/op | 1.11 |
| altair processInactivityUpdates - 250000 normalcase | 11.457 ms/op | 12.696 ms/op | 0.90 |
| altair processInactivityUpdates - 250000 worstcase | 11.503 ms/op | 12.857 ms/op | 0.89 |
| phase0 processRegistryUpdates - 250000 normalcase | 2.6910 us/op | 2.9880 us/op | 0.90 |
| phase0 processRegistryUpdates - 250000 badcase_full_deposits | 162.26 us/op | 152.40 us/op | 1.06 |
| phase0 processRegistryUpdates - 250000 worstcase 0.5 | 64.923 ms/op | 60.868 ms/op | 1.07 |
| altair processRewardsAndPenalties - 250000 normalcase | 17.318 ms/op | 14.264 ms/op | 1.21 |
| altair processRewardsAndPenalties - 250000 worstcase | 16.621 ms/op | 13.896 ms/op | 1.20 |
| phase0 getAttestationDeltas - 250000 normalcase | 5.4539 ms/op | 5.4700 ms/op | 1.00 |
| phase0 getAttestationDeltas - 250000 worstcase | 7.3059 ms/op | 5.4804 ms/op | 1.33 |
| phase0 processSlashings - 250000 worstcase | 60.615 us/op | 61.976 us/op | 0.98 |
| altair processSyncCommitteeUpdates - 250000 | 12.329 ms/op | 10.259 ms/op | 1.20 |
| BeaconState.hashTreeRoot - No change | 431.00 ns/op | 203.00 ns/op | 2.12 |
| BeaconState.hashTreeRoot - 1 full validator | 100.44 us/op | 65.360 us/op | 1.54 |
| BeaconState.hashTreeRoot - 32 full validator | 762.25 us/op | 720.97 us/op | 1.06 |
| BeaconState.hashTreeRoot - 512 full validator | 9.6253 ms/op | 6.6075 ms/op | 1.46 |
| BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 111.05 us/op | 76.656 us/op | 1.45 |
| BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 1.6915 ms/op | 1.1429 ms/op | 1.48 |
| BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 22.668 ms/op | 14.039 ms/op | 1.61 |
| BeaconState.hashTreeRoot - 1 balances | 102.12 us/op | 60.357 us/op | 1.69 |
| BeaconState.hashTreeRoot - 32 balances | 1.1163 ms/op | 622.04 us/op | 1.79 |
| BeaconState.hashTreeRoot - 512 balances | 7.3589 ms/op | 4.9122 ms/op | 1.50 |
| BeaconState.hashTreeRoot - 250000 balances | 189.42 ms/op | 161.70 ms/op | 1.17 |
| aggregationBits - 2048 els - zipIndexesInBitList | 20.330 us/op | 19.183 us/op | 1.06 |
| regular array get 100000 times | 23.442 us/op | 22.999 us/op | 1.02 |
| wrappedArray get 100000 times | 23.448 us/op | 23.095 us/op | 1.02 |
| arrayWithProxy get 100000 times | 14.413 ms/op | 10.171 ms/op | 1.42 |
| ssz.Root.equals | 22.263 ns/op | 21.821 ns/op | 1.02 |
| byteArrayEquals | 22.045 ns/op | 21.608 ns/op | 1.02 |
| Buffer.compare | 9.4700 ns/op | 9.0010 ns/op | 1.05 |
| processSlot - 1 slots | 11.947 us/op | 9.4920 us/op | 1.26 |
| processSlot - 32 slots | 2.5055 ms/op | 2.2934 ms/op | 1.09 |
| getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 4.8694 ms/op | 4.1513 ms/op | 1.17 |
| getCommitteeAssignments - req 1 vs - 250000 vc | 1.6833 ms/op | 1.7102 ms/op | 0.98 |
| getCommitteeAssignments - req 100 vs - 250000 vc | 3.4373 ms/op | 3.5058 ms/op | 0.98 |
| getCommitteeAssignments - req 1000 vs - 250000 vc | 3.7518 ms/op | 3.7562 ms/op | 1.00 |
| findModifiedValidators - 10000 modified validators | 918.41 ms/op | 785.51 ms/op | 1.17 |
| findModifiedValidators - 1000 modified validators | 503.21 ms/op | 459.88 ms/op | 1.09 |
| findModifiedValidators - 100 modified validators | 293.27 ms/op | 307.10 ms/op | 0.95 |
| findModifiedValidators - 10 modified validators | 159.89 ms/op | 149.08 ms/op | 1.07 |
| findModifiedValidators - 1 modified validators | 173.00 ms/op | 183.37 ms/op | 0.94 |
| findModifiedValidators - no difference | 146.18 ms/op | 132.30 ms/op | 1.10 |
| migrate state 1500000 validators, 3400 modified, 2000 new | 3.8394 s/op | 2.9053 s/op | 1.32 |
| RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 5.7400 ns/op | 3.7700 ns/op | 1.52 |
| state getBlockRootAtSlot - 250000 vs - 7PWei | 458.57 ns/op | 385.70 ns/op | 1.19 |
| computeProposerIndex 100000 validators | 1.3540 ms/op | 1.3463 ms/op | 1.01 |
| getNextSyncCommitteeIndices 1000 validators | 2.8862 ms/op | 2.9240 ms/op | 0.99 |
| getNextSyncCommitteeIndices 10000 validators | 25.943 ms/op | 25.791 ms/op | 1.01 |
| getNextSyncCommitteeIndices 100000 validators | 87.365 ms/op | 88.820 ms/op | 0.98 |
| computeProposers - vc 250000 | 548.82 us/op | 563.93 us/op | 0.97 |
| computeEpochShuffling - vc 250000 | 39.779 ms/op | 39.484 ms/op | 1.01 |
| getNextSyncCommittee - vc 250000 | 9.4330 ms/op | 9.6793 ms/op | 0.97 |
| nodejs block root to RootHex using toHex | 91.542 ns/op | 100.88 ns/op | 0.91 |
| nodejs block root to RootHex using toRootHex | 55.662 ns/op | 62.280 ns/op | 0.89 |
| nodejs fromHex(blob) | 835.41 us/op | 800.84 us/op | 1.04 |
| nodejs fromHexInto(blob) | 673.10 us/op | 647.21 us/op | 1.04 |
| nodejs block root to RootHex using the deprecated toHexString | 527.99 ns/op | 527.80 ns/op | 1.00 |
| nodejs byteArrayEquals 32 bytes (block root) | 26.521 ns/op | 26.438 ns/op | 1.00 |
| nodejs byteArrayEquals 48 bytes (pubkey) | 38.453 ns/op | 38.266 ns/op | 1.00 |
| nodejs byteArrayEquals 96 bytes (signature) | 40.560 ns/op | 36.892 ns/op | 1.10 |
| nodejs byteArrayEquals 1024 bytes | 45.279 ns/op | 46.392 ns/op | 0.98 |
| nodejs byteArrayEquals 131072 bytes (blob) | 1.7958 us/op | 1.7940 us/op | 1.00 |
| browser block root to RootHex using toHex | 149.85 ns/op | 147.56 ns/op | 1.02 |
| browser block root to RootHex using toRootHex | 135.60 ns/op | 133.21 ns/op | 1.02 |
| browser fromHex(blob) | 1.6693 ms/op | 1.6216 ms/op | 1.03 |
| browser fromHexInto(blob) | 685.55 us/op | 647.02 us/op | 1.06 |
| browser block root to RootHex using the deprecated toHexString | 359.68 ns/op | 359.16 ns/op | 1.00 |
| browser byteArrayEquals 32 bytes (block root) | 28.584 ns/op | 28.578 ns/op | 1.00 |
| browser byteArrayEquals 48 bytes (pubkey) | 40.271 ns/op | 40.397 ns/op | 1.00 |
| browser byteArrayEquals 96 bytes (signature) | 75.283 ns/op | 75.080 ns/op | 1.00 |
| browser byteArrayEquals 1024 bytes | 773.99 ns/op | 770.86 ns/op | 1.00 |
| browser byteArrayEquals 131072 bytes (blob) | 97.288 us/op | 98.001 us/op | 0.99 |
by benchmarkbot/action
Co-authored-by: Nico Flaig <nflaig@protonmail.com>
nflaig
left a comment
There was a problem hiding this comment.
need alpha.5 spec changes to pass
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## unstable #9226 +/- ##
=========================================
Coverage 52.53% 52.54%
=========================================
Files 848 848
Lines 61402 61388 -14
Branches 4525 4519 -6
=========================================
- Hits 32256 32254 -2
+ Misses 29081 29069 -12
Partials 65 65 🚀 New features to boost your workflow:
|
Based on changes from
bal-devnet-4branch.