lodestar
lodestar copied to clipboard
feat: add proposer boost reorg related grafana panels
Add panels for beacon_weak_head_detected_total and beacon_fork_choice_not_reorged_reason_total inside block production dashboard.
Screenshot of new panels:
Closes #6859
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 62.55%. Comparing base (
b453b37) to head (d151dd9). Report is 2 commits behind head on unstable.
Additional details and impacted files
@@ Coverage Diff @@
## unstable #6910 +/- ##
=========================================
Coverage 62.55% 62.55%
=========================================
Files 575 575
Lines 61045 61045
Branches 2123 2124 +1
=========================================
Hits 38187 38187
Misses 22819 22819
Partials 39 39
Performance Report
✔️ no performance regression detected
🚀🚀 Significant benchmark improvement detected
| Benchmark suite | Current: bf82c16cebcab9d2e34bc96ea724a3c3d74c848b | Previous: fe23f68998cff78ee1e68c0701e9f38405268a36 | Ratio |
|---|---|---|---|
| getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 6.4550 us/op | 19.434 us/op | 0.33 |
Full benchmark results
| Benchmark suite | Current: bf82c16cebcab9d2e34bc96ea724a3c3d74c848b | Previous: fe23f68998cff78ee1e68c0701e9f38405268a36 | Ratio |
|---|---|---|---|
| getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 925.96 us/op | 349.87 us/op | 2.65 |
| getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 71.328 us/op | 37.643 us/op | 1.89 |
| BLS verify - blst-native | 1.1696 ms/op | 1.1240 ms/op | 1.04 |
| BLS verifyMultipleSignatures 3 - blst-native | 2.5231 ms/op | 2.3967 ms/op | 1.05 |
| BLS verifyMultipleSignatures 8 - blst-native | 5.5438 ms/op | 5.3067 ms/op | 1.04 |
| BLS verifyMultipleSignatures 32 - blst-native | 20.089 ms/op | 19.600 ms/op | 1.02 |
| BLS verifyMultipleSignatures 64 - blst-native | 39.202 ms/op | 38.883 ms/op | 1.01 |
| BLS verifyMultipleSignatures 128 - blst-native | 84.125 ms/op | 77.447 ms/op | 1.09 |
| BLS deserializing 10000 signatures | 795.06 ms/op | 800.88 ms/op | 0.99 |
| BLS deserializing 100000 signatures | 8.1456 s/op | 8.2318 s/op | 0.99 |
| BLS verifyMultipleSignatures - same message - 3 - blst-native | 1.1522 ms/op | 1.1537 ms/op | 1.00 |
| BLS verifyMultipleSignatures - same message - 8 - blst-native | 1.3039 ms/op | 1.3220 ms/op | 0.99 |
| BLS verifyMultipleSignatures - same message - 32 - blst-native | 2.3984 ms/op | 2.4824 ms/op | 0.97 |
| BLS verifyMultipleSignatures - same message - 64 - blst-native | 3.7093 ms/op | 3.8784 ms/op | 0.96 |
| BLS verifyMultipleSignatures - same message - 128 - blst-native | 7.0396 ms/op | 5.1882 ms/op | 1.36 |
| BLS aggregatePubkeys 32 - blst-native | 24.642 us/op | 25.061 us/op | 0.98 |
| BLS aggregatePubkeys 128 - blst-native | 91.562 us/op | 95.590 us/op | 0.96 |
| notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 64.315 ms/op | 73.910 ms/op | 0.87 |
| notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 54.438 ms/op | 55.196 ms/op | 0.99 |
| notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 34.657 ms/op | 30.403 ms/op | 1.14 |
| getSlashingsAndExits - default max | 78.594 us/op | 70.567 us/op | 1.11 |
| getSlashingsAndExits - 2k | 319.80 us/op | 346.67 us/op | 0.92 |
| proposeBlockBody type=full, size=empty | 5.1082 ms/op | 5.1237 ms/op | 1.00 |
| isKnown best case - 1 super set check | 549.00 ns/op | 496.00 ns/op | 1.11 |
| isKnown normal case - 2 super set checks | 488.00 ns/op | 466.00 ns/op | 1.05 |
| isKnown worse case - 16 super set checks | 464.00 ns/op | 489.00 ns/op | 0.95 |
| InMemoryCheckpointStateCache - add get delete | 5.0780 us/op | 5.2270 us/op | 0.97 |
| validate api signedAggregateAndProof - struct | 2.3487 ms/op | 2.4574 ms/op | 0.96 |
| validate gossip signedAggregateAndProof - struct | 2.2978 ms/op | 2.4609 ms/op | 0.93 |
| validate gossip attestation - vc 640000 | 1.1420 ms/op | 1.2076 ms/op | 0.95 |
| batch validate gossip attestation - vc 640000 - chunk 32 | 134.67 us/op | 151.68 us/op | 0.89 |
| batch validate gossip attestation - vc 640000 - chunk 64 | 123.04 us/op | 129.29 us/op | 0.95 |
| batch validate gossip attestation - vc 640000 - chunk 128 | 115.13 us/op | 123.64 us/op | 0.93 |
| batch validate gossip attestation - vc 640000 - chunk 256 | 108.62 us/op | 123.06 us/op | 0.88 |
| pickEth1Vote - no votes | 846.58 us/op | 1.0828 ms/op | 0.78 |
| pickEth1Vote - max votes | 6.4327 ms/op | 11.345 ms/op | 0.57 |
| pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 12.004 ms/op | 13.232 ms/op | 0.91 |
| pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 19.429 ms/op | 24.259 ms/op | 0.80 |
| pickEth1Vote - Eth1Data fastSerialize value x2048 | 365.34 us/op | 502.35 us/op | 0.73 |
| pickEth1Vote - Eth1Data fastSerialize tree x2048 | 4.2075 ms/op | 9.4940 ms/op | 0.44 |
| bytes32 toHexString | 588.00 ns/op | 1.0390 us/op | 0.57 |
| bytes32 Buffer.toString(hex) | 462.00 ns/op | 541.00 ns/op | 0.85 |
| bytes32 Buffer.toString(hex) from Uint8Array | 573.00 ns/op | 788.00 ns/op | 0.73 |
| bytes32 Buffer.toString(hex) + 0x | 455.00 ns/op | 611.00 ns/op | 0.74 |
| Object access 1 prop | 0.34200 ns/op | 0.39600 ns/op | 0.86 |
| Map access 1 prop | 0.31600 ns/op | 0.33900 ns/op | 0.93 |
| Object get x1000 | 5.1390 ns/op | 5.2940 ns/op | 0.97 |
| Map get x1000 | 5.8230 ns/op | 6.0580 ns/op | 0.96 |
| Object set x1000 | 22.298 ns/op | 36.006 ns/op | 0.62 |
| Map set x1000 | 18.825 ns/op | 25.832 ns/op | 0.73 |
| Return object 10000 times | 0.29680 ns/op | 0.31560 ns/op | 0.94 |
| Throw Error 10000 times | 2.6948 us/op | 2.8403 us/op | 0.95 |
| fastMsgIdFn sha256 / 200 bytes | 1.9490 us/op | 2.1730 us/op | 0.90 |
| fastMsgIdFn h32 xxhash / 200 bytes | 411.00 ns/op | 500.00 ns/op | 0.82 |
| fastMsgIdFn h64 xxhash / 200 bytes | 440.00 ns/op | 500.00 ns/op | 0.88 |
| fastMsgIdFn sha256 / 1000 bytes | 5.9890 us/op | 6.3540 us/op | 0.94 |
| fastMsgIdFn h32 xxhash / 1000 bytes | 531.00 ns/op | 642.00 ns/op | 0.83 |
| fastMsgIdFn h64 xxhash / 1000 bytes | 508.00 ns/op | 583.00 ns/op | 0.87 |
| fastMsgIdFn sha256 / 10000 bytes | 50.052 us/op | 53.510 us/op | 0.94 |
| fastMsgIdFn h32 xxhash / 10000 bytes | 1.9080 us/op | 2.0520 us/op | 0.93 |
| fastMsgIdFn h64 xxhash / 10000 bytes | 1.3390 us/op | 1.3780 us/op | 0.97 |
| send data - 1000 256B messages | 10.181 ms/op | 13.293 ms/op | 0.77 |
| send data - 1000 512B messages | 12.931 ms/op | 18.265 ms/op | 0.71 |
| send data - 1000 1024B messages | 21.740 ms/op | 27.755 ms/op | 0.78 |
| send data - 1000 1200B messages | 22.233 ms/op | 27.854 ms/op | 0.80 |
| send data - 1000 2048B messages | 27.426 ms/op | 31.655 ms/op | 0.87 |
| send data - 1000 4096B messages | 26.865 ms/op | 27.823 ms/op | 0.97 |
| send data - 1000 16384B messages | 69.375 ms/op | 65.267 ms/op | 1.06 |
| send data - 1000 65536B messages | 267.64 ms/op | 238.50 ms/op | 1.12 |
| enrSubnets - fastDeserialize 64 bits | 1.1290 us/op | 1.1670 us/op | 0.97 |
| enrSubnets - ssz BitVector 64 bits | 559.00 ns/op | 518.00 ns/op | 1.08 |
| enrSubnets - fastDeserialize 4 bits | 365.00 ns/op | 336.00 ns/op | 1.09 |
| enrSubnets - ssz BitVector 4 bits | 559.00 ns/op | 515.00 ns/op | 1.09 |
| prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 115.09 us/op | 127.00 us/op | 0.91 |
| prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 134.38 us/op | 183.45 us/op | 0.73 |
| prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 204.38 us/op | 345.70 us/op | 0.59 |
| prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 484.53 us/op | 502.80 us/op | 0.96 |
| prioritizePeers score 0:0 att 64-1 sync 4-1 | 800.92 us/op | 578.66 us/op | 1.38 |
| array of 16000 items push then shift | 1.3329 us/op | 1.2987 us/op | 1.03 |
| LinkedList of 16000 items push then shift | 6.5470 ns/op | 6.4550 ns/op | 1.01 |
| array of 16000 items push then pop | 101.29 ns/op | 76.527 ns/op | 1.32 |
| LinkedList of 16000 items push then pop | 6.8630 ns/op | 6.3150 ns/op | 1.09 |
| array of 24000 items push then shift | 1.9004 us/op | 1.9005 us/op | 1.00 |
| LinkedList of 24000 items push then shift | 6.7850 ns/op | 6.3750 ns/op | 1.06 |
| array of 24000 items push then pop | 115.53 ns/op | 106.62 ns/op | 1.08 |
| LinkedList of 24000 items push then pop | 6.4060 ns/op | 6.2870 ns/op | 1.02 |
| intersect bitArray bitLen 8 | 5.7070 ns/op | 5.5070 ns/op | 1.04 |
| intersect array and set length 8 | 38.074 ns/op | 38.643 ns/op | 0.99 |
| intersect bitArray bitLen 128 | 26.796 ns/op | 26.731 ns/op | 1.00 |
| intersect array and set length 128 | 574.51 ns/op | 581.51 ns/op | 0.99 |
| bitArray.getTrueBitIndexes() bitLen 128 | 2.1070 us/op | 1.8530 us/op | 1.14 |
| bitArray.getTrueBitIndexes() bitLen 248 | 3.7030 us/op | 2.7610 us/op | 1.34 |
| bitArray.getTrueBitIndexes() bitLen 512 | 8.7440 us/op | 5.6460 us/op | 1.55 |
| Buffer.concat 32 items | 1.0830 us/op | 1.0060 us/op | 1.08 |
| Uint8Array.set 32 items | 1.4750 us/op | 1.2660 us/op | 1.17 |
| Buffer.copy | 1.6710 us/op | 1.3660 us/op | 1.22 |
| Uint8Array.set - with subarray | 1.9360 us/op | 1.8670 us/op | 1.04 |
| Uint8Array.set - without subarray | 1.5340 us/op | 1.2300 us/op | 1.25 |
| Set add up to 64 items then delete first | 1.7865 us/op | 1.8237 us/op | 0.98 |
| OrderedSet add up to 64 items then delete first | 2.8129 us/op | 2.8449 us/op | 0.99 |
| Set add up to 64 items then delete last | 2.8293 us/op | 2.0739 us/op | 1.36 |
| OrderedSet add up to 64 items then delete last | 4.2626 us/op | 3.2709 us/op | 1.30 |
| Set add up to 64 items then delete middle | 2.7386 us/op | 2.1126 us/op | 1.30 |
| OrderedSet add up to 64 items then delete middle | 5.8620 us/op | 4.6643 us/op | 1.26 |
| Set add up to 128 items then delete first | 5.2574 us/op | 4.0977 us/op | 1.28 |
| OrderedSet add up to 128 items then delete first | 9.4550 us/op | 6.2222 us/op | 1.52 |
| Set add up to 128 items then delete last | 4.1193 us/op | 4.0351 us/op | 1.02 |
| OrderedSet add up to 128 items then delete last | 6.1339 us/op | 6.3127 us/op | 0.97 |
| Set add up to 128 items then delete middle | 4.0903 us/op | 4.0287 us/op | 1.02 |
| OrderedSet add up to 128 items then delete middle | 12.299 us/op | 12.340 us/op | 1.00 |
| Set add up to 256 items then delete first | 8.1983 us/op | 8.2002 us/op | 1.00 |
| OrderedSet add up to 256 items then delete first | 13.390 us/op | 12.297 us/op | 1.09 |
| Set add up to 256 items then delete last | 7.7975 us/op | 7.7740 us/op | 1.00 |
| OrderedSet add up to 256 items then delete last | 12.437 us/op | 12.318 us/op | 1.01 |
| Set add up to 256 items then delete middle | 7.8481 us/op | 7.7670 us/op | 1.01 |
| OrderedSet add up to 256 items then delete middle | 35.209 us/op | 34.365 us/op | 1.02 |
| transfer serialized Status (84 B) | 1.4140 us/op | 1.4890 us/op | 0.95 |
| copy serialized Status (84 B) | 1.2950 us/op | 1.2970 us/op | 1.00 |
| transfer serialized SignedVoluntaryExit (112 B) | 1.4920 us/op | 1.5870 us/op | 0.94 |
| copy serialized SignedVoluntaryExit (112 B) | 1.2750 us/op | 1.3780 us/op | 0.93 |
| transfer serialized ProposerSlashing (416 B) | 1.7950 us/op | 2.2280 us/op | 0.81 |
| copy serialized ProposerSlashing (416 B) | 1.6310 us/op | 2.1740 us/op | 0.75 |
| transfer serialized Attestation (485 B) | 1.6570 us/op | 2.3500 us/op | 0.71 |
| copy serialized Attestation (485 B) | 1.4620 us/op | 2.2150 us/op | 0.66 |
| transfer serialized AttesterSlashing (33232 B) | 1.7580 us/op | 2.6320 us/op | 0.67 |
| copy serialized AttesterSlashing (33232 B) | 5.6080 us/op | 5.9430 us/op | 0.94 |
| transfer serialized Small SignedBeaconBlock (128000 B) | 2.1790 us/op | 3.2830 us/op | 0.66 |
| copy serialized Small SignedBeaconBlock (128000 B) | 12.985 us/op | 14.027 us/op | 0.93 |
| transfer serialized Avg SignedBeaconBlock (200000 B) | 2.1810 us/op | 2.8160 us/op | 0.77 |
| copy serialized Avg SignedBeaconBlock (200000 B) | 16.879 us/op | 20.689 us/op | 0.82 |
| transfer serialized BlobsSidecar (524380 B) | 2.6210 us/op | 2.9740 us/op | 0.88 |
| copy serialized BlobsSidecar (524380 B) | 79.235 us/op | 128.57 us/op | 0.62 |
| transfer serialized Big SignedBeaconBlock (1000000 B) | 3.2660 us/op | 3.0840 us/op | 1.06 |
| copy serialized Big SignedBeaconBlock (1000000 B) | 158.77 us/op | 335.55 us/op | 0.47 |
| pass gossip attestations to forkchoice per slot | 2.6823 ms/op | 2.5788 ms/op | 1.04 |
| forkChoice updateHead vc 100000 bc 64 eq 0 | 419.07 us/op | 389.85 us/op | 1.07 |
| forkChoice updateHead vc 600000 bc 64 eq 0 | 2.7868 ms/op | 2.5098 ms/op | 1.11 |
| forkChoice updateHead vc 1000000 bc 64 eq 0 | 4.8397 ms/op | 4.2849 ms/op | 1.13 |
| forkChoice updateHead vc 600000 bc 320 eq 0 | 2.6835 ms/op | 2.3719 ms/op | 1.13 |
| forkChoice updateHead vc 600000 bc 1200 eq 0 | 2.7250 ms/op | 2.5987 ms/op | 1.05 |
| forkChoice updateHead vc 600000 bc 7200 eq 0 | 3.5777 ms/op | 2.8332 ms/op | 1.26 |
| forkChoice updateHead vc 600000 bc 64 eq 1000 | 10.174 ms/op | 9.8268 ms/op | 1.04 |
| forkChoice updateHead vc 600000 bc 64 eq 10000 | 9.8592 ms/op | 9.4512 ms/op | 1.04 |
| forkChoice updateHead vc 600000 bc 64 eq 300000 | 12.401 ms/op | 11.613 ms/op | 1.07 |
| computeDeltas 500000 validators 300 proto nodes | 3.3234 ms/op | 3.0089 ms/op | 1.10 |
| computeDeltas 500000 validators 1200 proto nodes | 3.1003 ms/op | 2.9984 ms/op | 1.03 |
| computeDeltas 500000 validators 7200 proto nodes | 3.1511 ms/op | 3.0656 ms/op | 1.03 |
| computeDeltas 750000 validators 300 proto nodes | 4.7257 ms/op | 4.7075 ms/op | 1.00 |
| computeDeltas 750000 validators 1200 proto nodes | 4.4572 ms/op | 4.7596 ms/op | 0.94 |
| computeDeltas 750000 validators 7200 proto nodes | 4.5009 ms/op | 4.7185 ms/op | 0.95 |
| computeDeltas 1400000 validators 300 proto nodes | 8.3616 ms/op | 8.8890 ms/op | 0.94 |
| computeDeltas 1400000 validators 1200 proto nodes | 8.4893 ms/op | 8.6088 ms/op | 0.99 |
| computeDeltas 1400000 validators 7200 proto nodes | 8.2091 ms/op | 9.0364 ms/op | 0.91 |
| computeDeltas 2100000 validators 300 proto nodes | 12.555 ms/op | 13.120 ms/op | 0.96 |
| computeDeltas 2100000 validators 1200 proto nodes | 12.800 ms/op | 13.863 ms/op | 0.92 |
| computeDeltas 2100000 validators 7200 proto nodes | 13.847 ms/op | 13.330 ms/op | 1.04 |
| altair processAttestation - 250000 vs - 7PWei normalcase | 1.7246 ms/op | 2.1374 ms/op | 0.81 |
| altair processAttestation - 250000 vs - 7PWei worstcase | 2.3663 ms/op | 2.7640 ms/op | 0.86 |
| altair processAttestation - setStatus - 1/6 committees join | 78.386 us/op | 78.114 us/op | 1.00 |
| altair processAttestation - setStatus - 1/3 committees join | 155.53 us/op | 171.87 us/op | 0.90 |
| altair processAttestation - setStatus - 1/2 committees join | 208.42 us/op | 198.42 us/op | 1.05 |
| altair processAttestation - setStatus - 2/3 committees join | 282.32 us/op | 297.79 us/op | 0.95 |
| altair processAttestation - setStatus - 4/5 committees join | 446.18 us/op | 457.19 us/op | 0.98 |
| altair processAttestation - setStatus - 100% committees join | 535.92 us/op | 532.70 us/op | 1.01 |
| altair processBlock - 250000 vs - 7PWei normalcase | 4.5478 ms/op | 4.7093 ms/op | 0.97 |
| altair processBlock - 250000 vs - 7PWei normalcase hashState | 26.930 ms/op | 34.415 ms/op | 0.78 |
| altair processBlock - 250000 vs - 7PWei worstcase | 42.396 ms/op | 48.697 ms/op | 0.87 |
| altair processBlock - 250000 vs - 7PWei worstcase hashState | 79.075 ms/op | 118.50 ms/op | 0.67 |
| phase0 processBlock - 250000 vs - 7PWei normalcase | 2.6421 ms/op | 4.3429 ms/op | 0.61 |
| phase0 processBlock - 250000 vs - 7PWei worstcase | 27.631 ms/op | 35.651 ms/op | 0.78 |
| altair processEth1Data - 250000 vs - 7PWei normalcase | 309.90 us/op | 378.24 us/op | 0.82 |
| getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 6.4550 us/op | 19.434 us/op | 0.33 |
| getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 22.287 us/op | 51.632 us/op | 0.43 |
| getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 9.5390 us/op | 23.544 us/op | 0.41 |
| getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 7.0980 us/op | 14.077 us/op | 0.50 |
| getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 84.659 us/op | 106.84 us/op | 0.79 |
| getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 519.20 us/op | 687.48 us/op | 0.76 |
| getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 827.42 us/op | 1.2199 ms/op | 0.68 |
| getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 939.73 us/op | 1.4935 ms/op | 0.63 |
| getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 2.8729 ms/op | 2.8393 ms/op | 1.01 |
| getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 1.2187 ms/op | 1.6202 ms/op | 0.75 |
| getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 3.2958 ms/op | 3.2935 ms/op | 1.00 |
| Tree 40 250000 create | 294.63 ms/op | 190.99 ms/op | 1.54 |
| Tree 40 250000 get(125000) | 135.81 ns/op | 130.55 ns/op | 1.04 |
| Tree 40 250000 set(125000) | 800.39 ns/op | 577.43 ns/op | 1.39 |
| Tree 40 250000 toArray() | 21.156 ms/op | 20.671 ms/op | 1.02 |
| Tree 40 250000 iterate all - toArray() + loop | 21.426 ms/op | 20.049 ms/op | 1.07 |
| Tree 40 250000 iterate all - get(i) | 52.587 ms/op | 54.704 ms/op | 0.96 |
| MutableVector 250000 create | 10.695 ms/op | 12.912 ms/op | 0.83 |
| MutableVector 250000 get(125000) | 6.7250 ns/op | 6.1410 ns/op | 1.10 |
| MutableVector 250000 set(125000) | 169.73 ns/op | 248.00 ns/op | 0.68 |
| MutableVector 250000 toArray() | 3.4796 ms/op | 4.1331 ms/op | 0.84 |
| MutableVector 250000 iterate all - toArray() + loop | 3.8740 ms/op | 3.7899 ms/op | 1.02 |
| MutableVector 250000 iterate all - get(i) | 1.5352 ms/op | 1.5062 ms/op | 1.02 |
| Array 250000 create | 3.9133 ms/op | 3.0118 ms/op | 1.30 |
| Array 250000 clone - spread | 1.3718 ms/op | 1.3045 ms/op | 1.05 |
| Array 250000 get(125000) | 0.59900 ns/op | 0.60700 ns/op | 0.99 |
| Array 250000 set(125000) | 0.61700 ns/op | 0.63800 ns/op | 0.97 |
| Array 250000 iterate all - loop | 79.814 us/op | 79.273 us/op | 1.01 |
| effectiveBalanceIncrements clone Uint8Array 300000 | 18.563 us/op | 16.444 us/op | 1.13 |
| effectiveBalanceIncrements clone MutableVector 300000 | 327.00 ns/op | 334.00 ns/op | 0.98 |
| effectiveBalanceIncrements rw all Uint8Array 300000 | 173.20 us/op | 172.13 us/op | 1.01 |
| effectiveBalanceIncrements rw all MutableVector 300000 | 58.922 ms/op | 97.905 ms/op | 0.60 |
| phase0 afterProcessEpoch - 250000 vs - 7PWei | 82.706 ms/op | 80.366 ms/op | 1.03 |
| phase0 beforeProcessEpoch - 250000 vs - 7PWei | 55.707 ms/op | 55.589 ms/op | 1.00 |
| altair processEpoch - mainnet_e81889 | 408.76 ms/op | 437.92 ms/op | 0.93 |
| mainnet_e81889 - altair beforeProcessEpoch | 59.205 ms/op | 74.696 ms/op | 0.79 |
| mainnet_e81889 - altair processJustificationAndFinalization | 16.776 us/op | 12.191 us/op | 1.38 |
| mainnet_e81889 - altair processInactivityUpdates | 9.5131 ms/op | 5.4879 ms/op | 1.73 |
| mainnet_e81889 - altair processRewardsAndPenalties | 52.669 ms/op | 48.261 ms/op | 1.09 |
| mainnet_e81889 - altair processRegistryUpdates | 3.3430 us/op | 2.1580 us/op | 1.55 |
| mainnet_e81889 - altair processSlashings | 853.00 ns/op | 876.00 ns/op | 0.97 |
| mainnet_e81889 - altair processEth1DataReset | 814.00 ns/op | 909.00 ns/op | 0.90 |
| mainnet_e81889 - altair processEffectiveBalanceUpdates | 818.17 us/op | 2.0078 ms/op | 0.41 |
| mainnet_e81889 - altair processSlashingsReset | 4.3530 us/op | 2.4320 us/op | 1.79 |
| mainnet_e81889 - altair processRandaoMixesReset | 4.5430 us/op | 3.1310 us/op | 1.45 |
| mainnet_e81889 - altair processHistoricalRootsUpdate | 896.00 ns/op | 744.00 ns/op | 1.20 |
| mainnet_e81889 - altair processParticipationFlagUpdates | 3.8650 us/op | 2.0530 us/op | 1.88 |
| mainnet_e81889 - altair processSyncCommitteeUpdates | 1.1480 us/op | 450.00 ns/op | 2.55 |
| mainnet_e81889 - altair afterProcessEpoch | 82.155 ms/op | 78.844 ms/op | 1.04 |
| capella processEpoch - mainnet_e217614 | 1.3128 s/op | 1.1875 s/op | 1.11 |
| mainnet_e217614 - capella beforeProcessEpoch | 271.36 ms/op | 237.33 ms/op | 1.14 |
| mainnet_e217614 - capella processJustificationAndFinalization | 19.399 us/op | 10.457 us/op | 1.86 |
| mainnet_e217614 - capella processInactivityUpdates | 18.708 ms/op | 14.677 ms/op | 1.27 |
| mainnet_e217614 - capella processRewardsAndPenalties | 293.08 ms/op | 239.26 ms/op | 1.22 |
| mainnet_e217614 - capella processRegistryUpdates | 22.008 us/op | 11.234 us/op | 1.96 |
| mainnet_e217614 - capella processSlashings | 1.2130 us/op | 723.00 ns/op | 1.68 |
| mainnet_e217614 - capella processEth1DataReset | 738.00 ns/op | 661.00 ns/op | 1.12 |
| mainnet_e217614 - capella processEffectiveBalanceUpdates | 16.405 ms/op | 3.8242 ms/op | 4.29 |
| mainnet_e217614 - capella processSlashingsReset | 5.0080 us/op | 1.5540 us/op | 3.22 |
| mainnet_e217614 - capella processRandaoMixesReset | 3.9100 us/op | 2.8010 us/op | 1.40 |
| mainnet_e217614 - capella processHistoricalRootsUpdate | 1.6620 us/op | 670.00 ns/op | 2.48 |
| mainnet_e217614 - capella processParticipationFlagUpdates | 3.0160 us/op | 1.4920 us/op | 2.02 |
| mainnet_e217614 - capella afterProcessEpoch | 229.02 ms/op | 237.77 ms/op | 0.96 |
| phase0 processEpoch - mainnet_e58758 | 348.40 ms/op | 322.06 ms/op | 1.08 |
| mainnet_e58758 - phase0 beforeProcessEpoch | 104.93 ms/op | 97.804 ms/op | 1.07 |
| mainnet_e58758 - phase0 processJustificationAndFinalization | 11.987 us/op | 5.7580 us/op | 2.08 |
| mainnet_e58758 - phase0 processRewardsAndPenalties | 34.239 ms/op | 35.051 ms/op | 0.98 |
| mainnet_e58758 - phase0 processRegistryUpdates | 6.4410 us/op | 5.8220 us/op | 1.11 |
| mainnet_e58758 - phase0 processSlashings | 695.00 ns/op | 709.00 ns/op | 0.98 |
| mainnet_e58758 - phase0 processEth1DataReset | 770.00 ns/op | 659.00 ns/op | 1.17 |
| mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 1.1360 ms/op | 1.0753 ms/op | 1.06 |
| mainnet_e58758 - phase0 processSlashingsReset | 4.2730 us/op | 2.2520 us/op | 1.90 |
| mainnet_e58758 - phase0 processRandaoMixesReset | 7.6140 us/op | 2.5890 us/op | 2.94 |
| mainnet_e58758 - phase0 processHistoricalRootsUpdate | 939.00 ns/op | 670.00 ns/op | 1.40 |
| mainnet_e58758 - phase0 processParticipationRecordUpdates | 3.3850 us/op | 2.3180 us/op | 1.46 |
| mainnet_e58758 - phase0 afterProcessEpoch | 71.707 ms/op | 62.614 ms/op | 1.15 |
| phase0 processEffectiveBalanceUpdates - 250000 normalcase | 1.1929 ms/op | 749.57 us/op | 1.59 |
| phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 1.4503 ms/op | 1.1004 ms/op | 1.32 |
| altair processInactivityUpdates - 250000 normalcase | 18.589 ms/op | 18.058 ms/op | 1.03 |
| altair processInactivityUpdates - 250000 worstcase | 20.140 ms/op | 18.749 ms/op | 1.07 |
| phase0 processRegistryUpdates - 250000 normalcase | 8.0170 us/op | 3.3350 us/op | 2.40 |
| phase0 processRegistryUpdates - 250000 badcase_full_deposits | 311.57 us/op | 289.65 us/op | 1.08 |
| phase0 processRegistryUpdates - 250000 worstcase 0.5 | 142.97 ms/op | 103.43 ms/op | 1.38 |
| altair processRewardsAndPenalties - 250000 normalcase | 51.230 ms/op | 36.415 ms/op | 1.41 |
| altair processRewardsAndPenalties - 250000 worstcase | 44.629 ms/op | 40.793 ms/op | 1.09 |
| phase0 getAttestationDeltas - 250000 normalcase | 6.3865 ms/op | 5.9066 ms/op | 1.08 |
| phase0 getAttestationDeltas - 250000 worstcase | 6.0453 ms/op | 6.0465 ms/op | 1.00 |
| phase0 processSlashings - 250000 worstcase | 98.638 us/op | 80.401 us/op | 1.23 |
| altair processSyncCommitteeUpdates - 250000 | 107.44 ms/op | 99.485 ms/op | 1.08 |
| BeaconState.hashTreeRoot - No change | 549.00 ns/op | 469.00 ns/op | 1.17 |
| BeaconState.hashTreeRoot - 1 full validator | 116.27 us/op | 148.85 us/op | 0.78 |
| BeaconState.hashTreeRoot - 32 full validator | 1.7552 ms/op | 1.5136 ms/op | 1.16 |
| BeaconState.hashTreeRoot - 512 full validator | 14.964 ms/op | 15.658 ms/op | 0.96 |
| BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 161.12 us/op | 154.31 us/op | 1.04 |
| BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 2.2189 ms/op | 2.0383 ms/op | 1.09 |
| BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 29.882 ms/op | 25.870 ms/op | 1.16 |
| BeaconState.hashTreeRoot - 1 balances | 95.324 us/op | 108.37 us/op | 0.88 |
| BeaconState.hashTreeRoot - 32 balances | 740.42 us/op | 833.61 us/op | 0.89 |
| BeaconState.hashTreeRoot - 512 balances | 7.2711 ms/op | 10.970 ms/op | 0.66 |
| BeaconState.hashTreeRoot - 250000 balances | 181.46 ms/op | 172.27 ms/op | 1.05 |
| aggregationBits - 2048 els - zipIndexesInBitList | 25.191 us/op | 19.493 us/op | 1.29 |
| byteArrayEquals 32 | 48.097 ns/op | 48.140 ns/op | 1.00 |
| Buffer.compare 32 | 15.268 ns/op | 15.606 ns/op | 0.98 |
| byteArrayEquals 1024 | 1.2699 us/op | 1.2749 us/op | 1.00 |
| Buffer.compare 1024 | 22.392 ns/op | 23.355 ns/op | 0.96 |
| byteArrayEquals 16384 | 20.367 us/op | 20.150 us/op | 1.01 |
| Buffer.compare 16384 | 194.61 ns/op | 175.02 ns/op | 1.11 |
| byteArrayEquals 123687377 | 154.93 ms/op | 146.11 ms/op | 1.06 |
| Buffer.compare 123687377 | 5.2572 ms/op | 3.8123 ms/op | 1.38 |
| byteArrayEquals 32 - diff last byte | 46.900 ns/op | 47.626 ns/op | 0.98 |
| Buffer.compare 32 - diff last byte | 15.818 ns/op | 15.818 ns/op | 1.00 |
| byteArrayEquals 1024 - diff last byte | 1.2671 us/op | 1.2631 us/op | 1.00 |
| Buffer.compare 1024 - diff last byte | 24.433 ns/op | 24.474 ns/op | 1.00 |
| byteArrayEquals 16384 - diff last byte | 20.196 us/op | 20.056 us/op | 1.01 |
| Buffer.compare 16384 - diff last byte | 176.83 ns/op | 204.23 ns/op | 0.87 |
| byteArrayEquals 123687377 - diff last byte | 154.19 ms/op | 151.13 ms/op | 1.02 |
| Buffer.compare 123687377 - diff last byte | 6.9942 ms/op | 4.2544 ms/op | 1.64 |
| byteArrayEquals 32 - random bytes | 5.1750 ns/op | 4.9300 ns/op | 1.05 |
| Buffer.compare 32 - random bytes | 15.884 ns/op | 16.047 ns/op | 0.99 |
| byteArrayEquals 1024 - random bytes | 5.1950 ns/op | 4.8760 ns/op | 1.07 |
| Buffer.compare 1024 - random bytes | 15.769 ns/op | 15.883 ns/op | 0.99 |
| byteArrayEquals 16384 - random bytes | 5.0390 ns/op | 4.8540 ns/op | 1.04 |
| Buffer.compare 16384 - random bytes | 16.122 ns/op | 16.036 ns/op | 1.01 |
| byteArrayEquals 123687377 - random bytes | 8.1600 ns/op | 7.9000 ns/op | 1.03 |
| Buffer.compare 123687377 - random bytes | 19.120 ns/op | 19.140 ns/op | 1.00 |
| regular array get 100000 times | 31.591 us/op | 30.897 us/op | 1.02 |
| wrappedArray get 100000 times | 31.510 us/op | 30.839 us/op | 1.02 |
| arrayWithProxy get 100000 times | 9.7923 ms/op | 10.630 ms/op | 0.92 |
| ssz.Root.equals | 45.861 ns/op | 43.203 ns/op | 1.06 |
| byteArrayEquals | 47.716 ns/op | 42.816 ns/op | 1.11 |
| Buffer.compare | 9.2870 ns/op | 9.4010 ns/op | 0.99 |
| shuffle list - 16384 els | 5.8539 ms/op | 5.4785 ms/op | 1.07 |
| shuffle list - 250000 els | 85.974 ms/op | 81.519 ms/op | 1.05 |
| processSlot - 1 slots | 20.327 us/op | 10.541 us/op | 1.93 |
| processSlot - 32 slots | 3.0217 ms/op | 2.5635 ms/op | 1.18 |
| getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 41.329 ms/op | 34.322 ms/op | 1.20 |
| getCommitteeAssignments - req 1 vs - 250000 vc | 1.8474 ms/op | 1.7973 ms/op | 1.03 |
| getCommitteeAssignments - req 100 vs - 250000 vc | 3.6073 ms/op | 3.4706 ms/op | 1.04 |
| getCommitteeAssignments - req 1000 vs - 250000 vc | 3.9353 ms/op | 3.7592 ms/op | 1.05 |
| findModifiedValidators - 10000 modified validators | 269.59 ms/op | 323.08 ms/op | 0.83 |
| findModifiedValidators - 1000 modified validators | 186.08 ms/op | 218.05 ms/op | 0.85 |
| findModifiedValidators - 100 modified validators | 154.12 ms/op | 175.65 ms/op | 0.88 |
| findModifiedValidators - 10 modified validators | 159.81 ms/op | 169.67 ms/op | 0.94 |
| findModifiedValidators - 1 modified validators | 153.08 ms/op | 159.44 ms/op | 0.96 |
| findModifiedValidators - no difference | 145.82 ms/op | 196.11 ms/op | 0.74 |
| compare ViewDUs | 3.1831 s/op | 3.5189 s/op | 0.90 |
| compare each validator Uint8Array | 1.0915 s/op | 1.7030 s/op | 0.64 |
| compare ViewDU to Uint8Array | 874.66 ms/op | 845.72 ms/op | 1.03 |
| migrate state 1000000 validators, 24 modified, 0 new | 481.21 ms/op | 551.17 ms/op | 0.87 |
| migrate state 1000000 validators, 1700 modified, 1000 new | 846.65 ms/op | 827.26 ms/op | 1.02 |
| migrate state 1000000 validators, 3400 modified, 2000 new | 1.0145 s/op | 1.0046 s/op | 1.01 |
| migrate state 1500000 validators, 24 modified, 0 new | 578.28 ms/op | 583.50 ms/op | 0.99 |
| migrate state 1500000 validators, 1700 modified, 1000 new | 843.93 ms/op | 856.94 ms/op | 0.98 |
| migrate state 1500000 validators, 3400 modified, 2000 new | 1.0418 s/op | 927.84 ms/op | 1.12 |
| RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 6.6000 ns/op | 6.2900 ns/op | 1.05 |
| state getBlockRootAtSlot - 250000 vs - 7PWei | 750.52 ns/op | 738.27 ns/op | 1.02 |
| computeProposers - vc 250000 | 6.9548 ms/op | 6.4180 ms/op | 1.08 |
| computeEpochShuffling - vc 250000 | 83.981 ms/op | 81.207 ms/op | 1.03 |
| getNextSyncCommittee - vc 250000 | 109.80 ms/op | 94.638 ms/op | 1.16 |
| computeSigningRoot for AttestationData | 19.486 us/op | 15.627 us/op | 1.25 |
| hash AttestationData serialized data then Buffer.toString(base64) | 1.2004 us/op | 1.1729 us/op | 1.02 |
| toHexString serialized data | 812.98 ns/op | 737.43 ns/op | 1.10 |
| Buffer.toString(base64) | 133.88 ns/op | 135.03 ns/op | 0.99 |
by benchmarkbot/action
:tada: This PR is included in v1.20.0 :tada: