Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: no state id finalized #6584

Merged
merged 2 commits into from
Mar 28, 2024
Merged

fix: no state id finalized #6584

merged 2 commits into from
Mar 28, 2024

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Mar 23, 2024

Motivation

  • Right now we get the finalized state from block state cache but it's not guaranteed we have it there because it ranges between 96 states - 128 states

Description

  • Get from the checkpoint state cache instead, this does not work with n-historical state flag but will address that later in a separate issue
  • Rename the current/old checkpoint state cache file to inMemoryCheckpointsCache.ts to reflect the class name

Closes #6583

Copy link

codecov bot commented Mar 23, 2024

Codecov Report

Merging #6584 (69a6674) into unstable (129f300) will increase coverage by 0.12%.
Report is 12 commits behind head on unstable.
The diff coverage is 66.66%.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #6584      +/-   ##
============================================
+ Coverage     61.49%   61.61%   +0.12%     
============================================
  Files           556      556              
  Lines         58895    58566     -329     
  Branches       1856     1859       +3     
============================================
- Hits          36216    36084     -132     
+ Misses        22638    22441     -197     
  Partials         41       41              

@twoeths
Copy link
Contributor Author

twoeths commented Mar 23, 2024

deployed to a node, this works fine

curl http://localhost:9596/eth/v1/beacon/states/finalized/validators/1
{"data":{"index":"1","balance":"32002032576","status":"active_ongoing","validator":{"pubkey":"0xa1d1ad0714035353258038e964ae9675dc0252ee22cea896825c01458e1807bfad2f9969338798548d9858a571f7425c","withdrawal_credentials":"0x01000000000000000000000015f4b914a0ccd14333d850ff311d6dafbfbaa32b","effective_balance":"32000000000","slashed":false,"activation_eligibility_epoch":"0","activation_epoch":"0","exit_epoch":"18446744073709551615","withdrawable_epoch":"18446744073709551615"}},"execution_optimistic":false}

@twoeths twoeths marked this pull request as ready for review March 23, 2024 08:48
@twoeths twoeths requested a review from a team as a code owner March 23, 2024 08:48
Copy link
Contributor

github-actions bot commented Mar 23, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 5c99a4c Previous: d8f6199 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 991.17 us/op 811.22 us/op 1.22
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 54.037 us/op 81.948 us/op 0.66
BLS verify - blst-native 1.1514 ms/op 1.2273 ms/op 0.94
BLS verifyMultipleSignatures 3 - blst-native 2.4640 ms/op 2.5839 ms/op 0.95
BLS verifyMultipleSignatures 8 - blst-native 5.5037 ms/op 5.6521 ms/op 0.97
BLS verifyMultipleSignatures 32 - blst-native 20.245 ms/op 20.682 ms/op 0.98
BLS verifyMultipleSignatures 64 - blst-native 39.326 ms/op 40.731 ms/op 0.97
BLS verifyMultipleSignatures 128 - blst-native 77.201 ms/op 80.751 ms/op 0.96
BLS deserializing 10000 signatures 821.34 ms/op 862.89 ms/op 0.95
BLS deserializing 100000 signatures 8.6666 s/op 9.0868 s/op 0.95
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.1169 ms/op 1.2995 ms/op 0.86
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.3766 ms/op 1.4631 ms/op 0.94
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.3820 ms/op 2.8118 ms/op 0.85
BLS verifyMultipleSignatures - same message - 64 - blst-native 2.9357 ms/op 4.4443 ms/op 0.66
BLS verifyMultipleSignatures - same message - 128 - blst-native 4.9255 ms/op 5.4411 ms/op 0.91
BLS aggregatePubkeys 32 - blst-native 23.452 us/op 24.980 us/op 0.94
BLS aggregatePubkeys 128 - blst-native 87.138 us/op 97.931 us/op 0.89
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 47.070 ms/op 58.389 ms/op 0.81
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 41.014 ms/op 55.232 ms/op 0.74
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 25.798 ms/op 36.052 ms/op 0.72
getSlashingsAndExits - default max 127.97 us/op 164.77 us/op 0.78
getSlashingsAndExits - 2k 348.88 us/op 404.17 us/op 0.86
proposeBlockBody type=full, size=empty 4.4424 ms/op 5.5706 ms/op 0.80
isKnown best case - 1 super set check 329.00 ns/op 285.00 ns/op 1.15
isKnown normal case - 2 super set checks 312.00 ns/op 283.00 ns/op 1.10
isKnown worse case - 16 super set checks 308.00 ns/op 286.00 ns/op 1.08
InMemoryCheckpointStateCache - add get delete 4.2360 us/op
validate api signedAggregateAndProof - struct 2.3808 ms/op 2.7168 ms/op 0.88
validate gossip signedAggregateAndProof - struct 2.4183 ms/op 2.7366 ms/op 0.88
validate gossip attestation - vc 640000 1.1071 ms/op 1.3325 ms/op 0.83
batch validate gossip attestation - vc 640000 - chunk 32 137.28 us/op 157.69 us/op 0.87
batch validate gossip attestation - vc 640000 - chunk 64 121.81 us/op 140.45 us/op 0.87
batch validate gossip attestation - vc 640000 - chunk 128 113.77 us/op 132.70 us/op 0.86
batch validate gossip attestation - vc 640000 - chunk 256 109.08 us/op 131.86 us/op 0.83
pickEth1Vote - no votes 855.74 us/op 1.2864 ms/op 0.67
pickEth1Vote - max votes 7.1053 ms/op 10.209 ms/op 0.70
pickEth1Vote - Eth1Data hashTreeRoot value x2048 12.556 ms/op 20.935 ms/op 0.60
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 18.722 ms/op 20.472 ms/op 0.91
pickEth1Vote - Eth1Data fastSerialize value x2048 437.08 us/op 601.27 us/op 0.73
pickEth1Vote - Eth1Data fastSerialize tree x2048 6.5540 ms/op 4.1770 ms/op 1.57
bytes32 toHexString 560.00 ns/op 496.00 ns/op 1.13
bytes32 Buffer.toString(hex) 339.00 ns/op 293.00 ns/op 1.16
bytes32 Buffer.toString(hex) from Uint8Array 494.00 ns/op 424.00 ns/op 1.17
bytes32 Buffer.toString(hex) + 0x 343.00 ns/op 292.00 ns/op 1.17
Object access 1 prop 0.22100 ns/op 0.16100 ns/op 1.37
Map access 1 prop 0.18500 ns/op 0.14600 ns/op 1.27
Object get x1000 5.0990 ns/op 7.0640 ns/op 0.72
Map get x1000 0.81100 ns/op 0.76000 ns/op 1.07
Object set x1000 26.857 ns/op 51.422 ns/op 0.52
Map set x1000 17.842 ns/op 44.460 ns/op 0.40
Return object 10000 times 0.22370 ns/op 0.24540 ns/op 0.91
Throw Error 10000 times 2.7290 us/op 3.9369 us/op 0.69
fastMsgIdFn sha256 / 200 bytes 2.0070 us/op 3.3760 us/op 0.59
fastMsgIdFn h32 xxhash / 200 bytes 334.00 ns/op 295.00 ns/op 1.13
fastMsgIdFn h64 xxhash / 200 bytes 377.00 ns/op 347.00 ns/op 1.09
fastMsgIdFn sha256 / 1000 bytes 6.2440 us/op 11.060 us/op 0.56
fastMsgIdFn h32 xxhash / 1000 bytes 475.00 ns/op 409.00 ns/op 1.16
fastMsgIdFn h64 xxhash / 1000 bytes 432.00 ns/op 415.00 ns/op 1.04
fastMsgIdFn sha256 / 10000 bytes 52.334 us/op 100.96 us/op 0.52
fastMsgIdFn h32 xxhash / 10000 bytes 1.8650 us/op 1.8920 us/op 0.99
fastMsgIdFn h64 xxhash / 10000 bytes 1.2970 us/op 1.2790 us/op 1.01
send data - 1000 256B messages 13.395 ms/op 18.216 ms/op 0.74
send data - 1000 512B messages 17.864 ms/op 25.675 ms/op 0.70
send data - 1000 1024B messages 21.742 ms/op 40.376 ms/op 0.54
send data - 1000 1200B messages 30.405 ms/op 37.112 ms/op 0.82
send data - 1000 2048B messages 38.726 ms/op 48.827 ms/op 0.79
send data - 1000 4096B messages 33.822 ms/op 42.040 ms/op 0.80
send data - 1000 16384B messages 89.562 ms/op 121.97 ms/op 0.73
send data - 1000 65536B messages 378.71 ms/op 465.86 ms/op 0.81
enrSubnets - fastDeserialize 64 bits 946.00 ns/op 1.2460 us/op 0.76
enrSubnets - ssz BitVector 64 bits 425.00 ns/op 410.00 ns/op 1.04
enrSubnets - fastDeserialize 4 bits 203.00 ns/op 173.00 ns/op 1.17
enrSubnets - ssz BitVector 4 bits 408.00 ns/op 417.00 ns/op 0.98
prioritizePeers score -10:0 att 32-0.1 sync 2-0 66.918 us/op 95.851 us/op 0.70
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 79.090 us/op 118.66 us/op 0.67
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 109.40 us/op 155.25 us/op 0.70
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 260.59 us/op 274.58 us/op 0.95
prioritizePeers score 0:0 att 64-1 sync 4-1 210.41 us/op 324.18 us/op 0.65
array of 16000 items push then shift 1.2421 us/op 1.5360 us/op 0.81
LinkedList of 16000 items push then shift 6.6990 ns/op 8.6190 ns/op 0.78
array of 16000 items push then pop 53.335 ns/op 76.946 ns/op 0.69
LinkedList of 16000 items push then pop 5.6170 ns/op 8.4760 ns/op 0.66
array of 24000 items push then shift 1.8730 us/op 2.3362 us/op 0.80
LinkedList of 24000 items push then shift 5.7730 ns/op 8.5890 ns/op 0.67
array of 24000 items push then pop 68.554 ns/op 97.242 ns/op 0.70
LinkedList of 24000 items push then pop 5.5870 ns/op 8.5410 ns/op 0.65
intersect bitArray bitLen 8 4.6830 ns/op 5.5930 ns/op 0.84
intersect array and set length 8 46.295 ns/op 61.105 ns/op 0.76
intersect bitArray bitLen 128 28.733 ns/op 34.600 ns/op 0.83
intersect array and set length 128 675.77 ns/op 841.66 ns/op 0.80
bitArray.getTrueBitIndexes() bitLen 128 1.2600 us/op 1.3890 us/op 0.91
bitArray.getTrueBitIndexes() bitLen 248 1.9750 us/op 2.3320 us/op 0.85
bitArray.getTrueBitIndexes() bitLen 512 3.7800 us/op 4.5740 us/op 0.83
Buffer.concat 32 items 817.00 ns/op 959.00 ns/op 0.85
Uint8Array.set 32 items 1.9530 us/op 1.9210 us/op 1.02
Set add up to 64 items then delete first 1.6653 us/op 4.1984 us/op 0.40
OrderedSet add up to 64 items then delete first 2.5046 us/op 5.2820 us/op 0.47
Set add up to 64 items then delete last 1.8721 us/op 4.4785 us/op 0.42
OrderedSet add up to 64 items then delete last 2.8964 us/op 5.5667 us/op 0.52
Set add up to 64 items then delete middle 1.8311 us/op 4.4396 us/op 0.41
OrderedSet add up to 64 items then delete middle 3.9926 us/op 6.8115 us/op 0.59
Set add up to 128 items then delete first 3.6195 us/op 9.0395 us/op 0.40
OrderedSet add up to 128 items then delete first 6.0337 us/op 11.997 us/op 0.50
Set add up to 128 items then delete last 3.7127 us/op 9.0471 us/op 0.41
OrderedSet add up to 128 items then delete last 5.6026 us/op 11.372 us/op 0.49
Set add up to 128 items then delete middle 3.4826 us/op 8.8481 us/op 0.39
OrderedSet add up to 128 items then delete middle 10.238 us/op 16.484 us/op 0.62
Set add up to 256 items then delete first 7.1763 us/op 18.365 us/op 0.39
OrderedSet add up to 256 items then delete first 11.553 us/op 24.388 us/op 0.47
Set add up to 256 items then delete last 7.0302 us/op 17.628 us/op 0.40
OrderedSet add up to 256 items then delete last 10.672 us/op 22.296 us/op 0.48
Set add up to 256 items then delete middle 7.0244 us/op 17.701 us/op 0.40
OrderedSet add up to 256 items then delete middle 28.718 us/op 43.827 us/op 0.66
transfer serialized Status (84 B) 1.2760 us/op 1.6640 us/op 0.77
copy serialized Status (84 B) 1.0590 us/op 1.2880 us/op 0.82
transfer serialized SignedVoluntaryExit (112 B) 1.3900 us/op 1.8170 us/op 0.76
copy serialized SignedVoluntaryExit (112 B) 1.1850 us/op 1.3660 us/op 0.87
transfer serialized ProposerSlashing (416 B) 2.0850 us/op 2.4350 us/op 0.86
copy serialized ProposerSlashing (416 B) 2.0530 us/op 2.0400 us/op 1.01
transfer serialized Attestation (485 B) 2.0460 us/op 2.8760 us/op 0.71
copy serialized Attestation (485 B) 1.5120 us/op 2.4390 us/op 0.62
transfer serialized AttesterSlashing (33232 B) 1.8950 us/op 2.8390 us/op 0.67
copy serialized AttesterSlashing (33232 B) 4.6910 us/op 5.8540 us/op 0.80
transfer serialized Small SignedBeaconBlock (128000 B) 1.9570 us/op 3.2530 us/op 0.60
copy serialized Small SignedBeaconBlock (128000 B) 11.905 us/op 15.152 us/op 0.79
transfer serialized Avg SignedBeaconBlock (200000 B) 2.0620 us/op 3.7970 us/op 0.54
copy serialized Avg SignedBeaconBlock (200000 B) 17.326 us/op 21.134 us/op 0.82
transfer serialized BlobsSidecar (524380 B) 2.1250 us/op 3.3600 us/op 0.63
copy serialized BlobsSidecar (524380 B) 66.613 us/op 85.219 us/op 0.78
transfer serialized Big SignedBeaconBlock (1000000 B) 2.5480 us/op 3.1120 us/op 0.82
copy serialized Big SignedBeaconBlock (1000000 B) 132.85 us/op 167.36 us/op 0.79
pass gossip attestations to forkchoice per slot 2.6597 ms/op 4.2245 ms/op 0.63
forkChoice updateHead vc 100000 bc 64 eq 0 429.44 us/op 674.81 us/op 0.64
forkChoice updateHead vc 600000 bc 64 eq 0 2.9007 ms/op 4.2988 ms/op 0.67
forkChoice updateHead vc 1000000 bc 64 eq 0 4.4543 ms/op 6.9365 ms/op 0.64
forkChoice updateHead vc 600000 bc 320 eq 0 2.7143 ms/op 4.1145 ms/op 0.66
forkChoice updateHead vc 600000 bc 1200 eq 0 2.7181 ms/op 4.1654 ms/op 0.65
forkChoice updateHead vc 600000 bc 7200 eq 0 3.1824 ms/op 5.1387 ms/op 0.62
forkChoice updateHead vc 600000 bc 64 eq 1000 9.9044 ms/op 10.933 ms/op 0.91
forkChoice updateHead vc 600000 bc 64 eq 10000 9.6632 ms/op 11.746 ms/op 0.82
forkChoice updateHead vc 600000 bc 64 eq 300000 11.952 ms/op 16.015 ms/op 0.75
computeDeltas 500000 validators 300 proto nodes 3.3174 ms/op 6.4446 ms/op 0.51
computeDeltas 500000 validators 1200 proto nodes 2.8680 ms/op 6.3199 ms/op 0.45
computeDeltas 500000 validators 7200 proto nodes 2.8797 ms/op 6.3477 ms/op 0.45
computeDeltas 750000 validators 300 proto nodes 4.5682 ms/op 9.2909 ms/op 0.49
computeDeltas 750000 validators 1200 proto nodes 4.4844 ms/op 9.6025 ms/op 0.47
computeDeltas 750000 validators 7200 proto nodes 4.4671 ms/op 9.3967 ms/op 0.48
computeDeltas 1400000 validators 300 proto nodes 8.6161 ms/op 17.972 ms/op 0.48
computeDeltas 1400000 validators 1200 proto nodes 8.5690 ms/op 17.984 ms/op 0.48
computeDeltas 1400000 validators 7200 proto nodes 8.7900 ms/op 17.870 ms/op 0.49
computeDeltas 2100000 validators 300 proto nodes 12.864 ms/op 27.003 ms/op 0.48
computeDeltas 2100000 validators 1200 proto nodes 12.978 ms/op 27.454 ms/op 0.47
computeDeltas 2100000 validators 7200 proto nodes 13.229 ms/op 27.384 ms/op 0.48
altair processAttestation - 250000 vs - 7PWei normalcase 1.5159 ms/op 2.1976 ms/op 0.69
altair processAttestation - 250000 vs - 7PWei worstcase 2.2974 ms/op 3.1909 ms/op 0.72
altair processAttestation - setStatus - 1/6 committees join 72.966 us/op 172.60 us/op 0.42
altair processAttestation - setStatus - 1/3 committees join 153.19 us/op 341.96 us/op 0.45
altair processAttestation - setStatus - 1/2 committees join 239.52 us/op 465.00 us/op 0.52
altair processAttestation - setStatus - 2/3 committees join 291.96 us/op 580.96 us/op 0.50
altair processAttestation - setStatus - 4/5 committees join 402.34 us/op 780.98 us/op 0.52
altair processAttestation - setStatus - 100% committees join 519.79 us/op 930.80 us/op 0.56
altair processBlock - 250000 vs - 7PWei normalcase 8.5155 ms/op 7.9060 ms/op 1.08
altair processBlock - 250000 vs - 7PWei normalcase hashState 29.654 ms/op 35.096 ms/op 0.84
altair processBlock - 250000 vs - 7PWei worstcase 31.108 ms/op 39.419 ms/op 0.79
altair processBlock - 250000 vs - 7PWei worstcase hashState 84.114 ms/op 96.217 ms/op 0.87
phase0 processBlock - 250000 vs - 7PWei normalcase 2.1472 ms/op 2.6478 ms/op 0.81
phase0 processBlock - 250000 vs - 7PWei worstcase 26.567 ms/op 27.325 ms/op 0.97
altair processEth1Data - 250000 vs - 7PWei normalcase 269.98 us/op 468.79 us/op 0.58
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 13.751 us/op 11.728 us/op 1.17
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 61.258 us/op 45.500 us/op 1.35
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 15.363 us/op 20.098 us/op 0.76
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 16.784 us/op 7.5890 us/op 2.21
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 169.78 us/op 196.18 us/op 0.87
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 842.07 us/op 1.2735 ms/op 0.66
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.4653 ms/op 1.5903 ms/op 0.92
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.1234 ms/op 1.5371 ms/op 0.73
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.2996 ms/op 3.3935 ms/op 0.68
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.5561 ms/op 2.3564 ms/op 0.66
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.0798 ms/op 4.8006 ms/op 0.85
Tree 40 250000 create 265.73 ms/op 365.18 ms/op 0.73
Tree 40 250000 get(125000) 113.63 ns/op 194.09 ns/op 0.59
Tree 40 250000 set(125000) 748.38 ns/op 1.0441 us/op 0.72
Tree 40 250000 toArray() 10.472 ms/op 18.970 ms/op 0.55
Tree 40 250000 iterate all - toArray() + loop 11.028 ms/op 20.448 ms/op 0.54
Tree 40 250000 iterate all - get(i) 41.612 ms/op 68.494 ms/op 0.61
MutableVector 250000 create 10.351 ms/op 16.040 ms/op 0.65
MutableVector 250000 get(125000) 5.7720 ns/op 6.4790 ns/op 0.89
MutableVector 250000 set(125000) 218.41 ns/op 255.41 ns/op 0.86
MutableVector 250000 toArray() 2.3046 ms/op 3.3976 ms/op 0.68
MutableVector 250000 iterate all - toArray() + loop 2.3812 ms/op 3.3451 ms/op 0.71
MutableVector 250000 iterate all - get(i) 1.3321 ms/op 1.5206 ms/op 0.88
Array 250000 create 2.1088 ms/op 2.9112 ms/op 0.72
Array 250000 clone - spread 1.1530 ms/op 1.2141 ms/op 0.95
Array 250000 get(125000) 1.0530 ns/op 1.0170 ns/op 1.04
Array 250000 set(125000) 1.2590 ns/op 4.0710 ns/op 0.31
Array 250000 iterate all - loop 154.15 us/op 165.04 us/op 0.93
effectiveBalanceIncrements clone Uint8Array 300000 14.699 us/op 26.413 us/op 0.56
effectiveBalanceIncrements clone MutableVector 300000 424.00 ns/op 358.00 ns/op 1.18
effectiveBalanceIncrements rw all Uint8Array 300000 183.86 us/op 204.90 us/op 0.90
effectiveBalanceIncrements rw all MutableVector 300000 66.830 ms/op 81.506 ms/op 0.82
phase0 afterProcessEpoch - 250000 vs - 7PWei 75.326 ms/op 112.74 ms/op 0.67
phase0 beforeProcessEpoch - 250000 vs - 7PWei 44.946 ms/op 51.188 ms/op 0.88
altair processEpoch - mainnet_e81889 474.96 ms/op 472.08 ms/op 1.01
mainnet_e81889 - altair beforeProcessEpoch 81.866 ms/op 81.676 ms/op 1.00
mainnet_e81889 - altair processJustificationAndFinalization 17.982 us/op 14.737 us/op 1.22
mainnet_e81889 - altair processInactivityUpdates 4.9904 ms/op 5.7055 ms/op 0.87
mainnet_e81889 - altair processRewardsAndPenalties 70.543 ms/op 54.257 ms/op 1.30
mainnet_e81889 - altair processRegistryUpdates 2.4780 us/op 2.4020 us/op 1.03
mainnet_e81889 - altair processSlashings 606.00 ns/op 495.00 ns/op 1.22
mainnet_e81889 - altair processEth1DataReset 861.00 ns/op 525.00 ns/op 1.64
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.0401 ms/op 1.3582 ms/op 0.77
mainnet_e81889 - altair processSlashingsReset 5.3590 us/op 3.5120 us/op 1.53
mainnet_e81889 - altair processRandaoMixesReset 8.5970 us/op 5.2570 us/op 1.64
mainnet_e81889 - altair processHistoricalRootsUpdate 1.6420 us/op 939.00 ns/op 1.75
mainnet_e81889 - altair processParticipationFlagUpdates 4.0340 us/op 1.4440 us/op 2.79
mainnet_e81889 - altair processSyncCommitteeUpdates 1.0150 us/op 702.00 ns/op 1.45
mainnet_e81889 - altair afterProcessEpoch 85.019 ms/op 116.37 ms/op 0.73
capella processEpoch - mainnet_e217614 1.8542 s/op 1.9725 s/op 0.94
mainnet_e217614 - capella beforeProcessEpoch 472.02 ms/op 444.18 ms/op 1.06
mainnet_e217614 - capella processJustificationAndFinalization 14.417 us/op 13.758 us/op 1.05
mainnet_e217614 - capella processInactivityUpdates 19.280 ms/op 21.907 ms/op 0.88
mainnet_e217614 - capella processRewardsAndPenalties 493.31 ms/op 518.53 ms/op 0.95
mainnet_e217614 - capella processRegistryUpdates 14.840 us/op 21.783 us/op 0.68
mainnet_e217614 - capella processSlashings 624.00 ns/op 592.00 ns/op 1.05
mainnet_e217614 - capella processEth1DataReset 572.00 ns/op 393.00 ns/op 1.46
mainnet_e217614 - capella processEffectiveBalanceUpdates 3.5469 ms/op 4.3071 ms/op 0.82
mainnet_e217614 - capella processSlashingsReset 2.9850 us/op 3.2520 us/op 0.92
mainnet_e217614 - capella processRandaoMixesReset 3.2350 us/op 4.3630 us/op 0.74
mainnet_e217614 - capella processHistoricalRootsUpdate 1.1890 us/op 501.00 ns/op 2.37
mainnet_e217614 - capella processParticipationFlagUpdates 2.0860 us/op 1.3040 us/op 1.60
mainnet_e217614 - capella afterProcessEpoch 216.27 ms/op 303.19 ms/op 0.71
phase0 processEpoch - mainnet_e58758 417.71 ms/op 419.99 ms/op 0.99
mainnet_e58758 - phase0 beforeProcessEpoch 115.21 ms/op 110.91 ms/op 1.04
mainnet_e58758 - phase0 processJustificationAndFinalization 18.022 us/op 14.897 us/op 1.21
mainnet_e58758 - phase0 processRewardsAndPenalties 49.256 ms/op 60.086 ms/op 0.82
mainnet_e58758 - phase0 processRegistryUpdates 8.0710 us/op 10.153 us/op 0.79
mainnet_e58758 - phase0 processSlashings 720.00 ns/op 590.00 ns/op 1.22
mainnet_e58758 - phase0 processEth1DataReset 693.00 ns/op 399.00 ns/op 1.74
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 848.02 us/op 1.0097 ms/op 0.84
mainnet_e58758 - phase0 processSlashingsReset 3.0680 us/op 2.8650 us/op 1.07
mainnet_e58758 - phase0 processRandaoMixesReset 3.8690 us/op 4.1610 us/op 0.93
mainnet_e58758 - phase0 processHistoricalRootsUpdate 709.00 ns/op 402.00 ns/op 1.76
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.5840 us/op 4.5400 us/op 1.01
mainnet_e58758 - phase0 afterProcessEpoch 67.455 ms/op 99.092 ms/op 0.68
phase0 processEffectiveBalanceUpdates - 250000 normalcase 997.01 us/op 1.3477 ms/op 0.74
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.1194 ms/op 1.4578 ms/op 0.77
altair processInactivityUpdates - 250000 normalcase 23.854 ms/op 29.703 ms/op 0.80
altair processInactivityUpdates - 250000 worstcase 22.332 ms/op 23.569 ms/op 0.95
phase0 processRegistryUpdates - 250000 normalcase 10.611 us/op 8.6770 us/op 1.22
phase0 processRegistryUpdates - 250000 badcase_full_deposits 430.05 us/op 369.26 us/op 1.16
phase0 processRegistryUpdates - 250000 worstcase 0.5 112.34 ms/op 132.10 ms/op 0.85
altair processRewardsAndPenalties - 250000 normalcase 60.424 ms/op 52.432 ms/op 1.15
altair processRewardsAndPenalties - 250000 worstcase 58.437 ms/op 67.536 ms/op 0.87
phase0 getAttestationDeltas - 250000 normalcase 6.0923 ms/op 9.3731 ms/op 0.65
phase0 getAttestationDeltas - 250000 worstcase 5.9200 ms/op 9.1452 ms/op 0.65
phase0 processSlashings - 250000 worstcase 84.556 us/op 86.158 us/op 0.98
altair processSyncCommitteeUpdates - 250000 99.983 ms/op 151.19 ms/op 0.66
BeaconState.hashTreeRoot - No change 380.00 ns/op 374.00 ns/op 1.02
BeaconState.hashTreeRoot - 1 full validator 87.657 us/op 111.43 us/op 0.79
BeaconState.hashTreeRoot - 32 full validator 866.26 us/op 1.1576 ms/op 0.75
BeaconState.hashTreeRoot - 512 full validator 9.1742 ms/op 17.593 ms/op 0.52
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 153.41 us/op 199.46 us/op 0.77
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.5590 ms/op 2.5816 ms/op 0.99
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 30.607 ms/op 34.751 ms/op 0.88
BeaconState.hashTreeRoot - 1 balances 108.86 us/op 130.20 us/op 0.84
BeaconState.hashTreeRoot - 32 balances 816.35 us/op 1.2089 ms/op 0.68
BeaconState.hashTreeRoot - 512 balances 8.3774 ms/op 9.4796 ms/op 0.88
BeaconState.hashTreeRoot - 250000 balances 206.52 ms/op 226.20 ms/op 0.91
aggregationBits - 2048 els - zipIndexesInBitList 19.532 us/op 26.866 us/op 0.73
byteArrayEquals 32 64.879 ns/op 73.072 ns/op 0.89
Buffer.compare 32 36.174 ns/op 54.391 ns/op 0.67
byteArrayEquals 1024 1.7317 us/op 1.9936 us/op 0.87
Buffer.compare 1024 42.689 ns/op 68.197 ns/op 0.63
byteArrayEquals 16384 26.790 us/op 31.746 us/op 0.84
Buffer.compare 16384 193.44 ns/op 274.96 ns/op 0.70
byteArrayEquals 123687377 212.28 ms/op 245.05 ms/op 0.87
Buffer.compare 123687377 5.4606 ms/op 6.3258 ms/op 0.86
byteArrayEquals 32 - diff last byte 60.328 ns/op 71.152 ns/op 0.85
Buffer.compare 32 - diff last byte 35.959 ns/op 55.657 ns/op 0.65
byteArrayEquals 1024 - diff last byte 1.6487 us/op 1.9506 us/op 0.85
Buffer.compare 1024 - diff last byte 40.523 ns/op 68.782 ns/op 0.59
byteArrayEquals 16384 - diff last byte 26.385 us/op 32.092 us/op 0.82
Buffer.compare 16384 - diff last byte 211.74 ns/op 250.24 ns/op 0.85
byteArrayEquals 123687377 - diff last byte 210.55 ms/op 242.07 ms/op 0.87
Buffer.compare 123687377 - diff last byte 3.8574 ms/op 6.2345 ms/op 0.62
byteArrayEquals 32 - random bytes 4.6410 ns/op 5.3900 ns/op 0.86
Buffer.compare 32 - random bytes 39.426 ns/op 60.779 ns/op 0.65
byteArrayEquals 1024 - random bytes 4.4680 ns/op 5.1920 ns/op 0.86
Buffer.compare 1024 - random bytes 37.940 ns/op 60.365 ns/op 0.63
byteArrayEquals 16384 - random bytes 4.4570 ns/op 5.1870 ns/op 0.86
Buffer.compare 16384 - random bytes 38.084 ns/op 60.145 ns/op 0.63
byteArrayEquals 123687377 - random bytes 7.8600 ns/op 8.3600 ns/op 0.94
Buffer.compare 123687377 - random bytes 43.800 ns/op 63.760 ns/op 0.69
regular array get 100000 times 41.145 us/op 44.001 us/op 0.94
wrappedArray get 100000 times 41.063 us/op 44.107 us/op 0.93
arrayWithProxy get 100000 times 10.484 ms/op 14.385 ms/op 0.73
ssz.Root.equals 55.158 ns/op 52.980 ns/op 1.04
byteArrayEquals 53.926 ns/op 51.786 ns/op 1.04
Buffer.compare 9.5740 ns/op 10.631 ns/op 0.90
shuffle list - 16384 els 5.7768 ms/op 8.5192 ms/op 0.68
shuffle list - 250000 els 85.663 ms/op 124.89 ms/op 0.69
processSlot - 1 slots 16.829 us/op 15.847 us/op 1.06
processSlot - 32 slots 2.7784 ms/op 3.5730 ms/op 0.78
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 54.964 ms/op 55.979 ms/op 0.98
getCommitteeAssignments - req 1 vs - 250000 vc 2.3924 ms/op 2.5953 ms/op 0.92
getCommitteeAssignments - req 100 vs - 250000 vc 3.5570 ms/op 3.7425 ms/op 0.95
getCommitteeAssignments - req 1000 vs - 250000 vc 3.7760 ms/op 4.0482 ms/op 0.93
findModifiedValidators - 10000 modified validators 295.48 ms/op 349.50 ms/op 0.85
findModifiedValidators - 1000 modified validators 149.85 ms/op 199.85 ms/op 0.75
findModifiedValidators - 100 modified validators 162.32 ms/op 209.66 ms/op 0.77
findModifiedValidators - 10 modified validators 143.09 ms/op 193.31 ms/op 0.74
findModifiedValidators - 1 modified validators 132.47 ms/op 182.40 ms/op 0.73
findModifiedValidators - no difference 147.25 ms/op 210.84 ms/op 0.70
compare ViewDUs 3.9935 s/op 4.4907 s/op 0.89
compare each validator Uint8Array 1.2436 s/op 1.7689 s/op 0.70
compare ViewDU to Uint8Array 790.59 ms/op 1.3878 s/op 0.57
migrate state 1000000 validators, 24 modified, 0 new 666.15 ms/op 835.77 ms/op 0.80
migrate state 1000000 validators, 1700 modified, 1000 new 974.73 ms/op 1.0644 s/op 0.92
migrate state 1000000 validators, 3400 modified, 2000 new 1.1991 s/op 1.2675 s/op 0.95
migrate state 1500000 validators, 24 modified, 0 new 732.70 ms/op 762.38 ms/op 0.96
migrate state 1500000 validators, 1700 modified, 1000 new 966.80 ms/op 1.0588 s/op 0.91
migrate state 1500000 validators, 3400 modified, 2000 new 1.1220 s/op 1.2865 s/op 0.87
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.3400 ns/op 4.0800 ns/op 1.06
state getBlockRootAtSlot - 250000 vs - 7PWei 580.29 ns/op 899.96 ns/op 0.64
computeProposers - vc 250000 6.1436 ms/op 9.5607 ms/op 0.64
computeEpochShuffling - vc 250000 86.888 ms/op 123.80 ms/op 0.70
getNextSyncCommittee - vc 250000 100.12 ms/op 158.51 ms/op 0.63
computeSigningRoot for AttestationData 19.865 us/op 28.337 us/op 0.70
hash AttestationData serialized data then Buffer.toString(base64) 1.2518 us/op 2.2718 us/op 0.55
toHexString serialized data 841.70 ns/op 1.0465 us/op 0.80
Buffer.toString(base64) 158.87 ns/op 225.34 ns/op 0.71

by benchmarkbot/action

private readonly metrics: Metrics["cpStateCache"] | null | undefined;
private preComputedCheckpoint: string | null = null;
private preComputedCheckpointHits: number | null = null;

constructor({metrics}: {metrics?: Metrics | null}) {
constructor({maxEpochs = MAX_EPOCHS, metrics}: {maxEpochs?: number; metrics?: Metrics | null}) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could consider separating options from modules here

@twoeths twoeths merged commit 841e3cd into unstable Mar 28, 2024
18 of 20 checks passed
@twoeths twoeths deleted the tuyen/no_finalized_state branch March 28, 2024 04:01
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.18.0 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

No state found for id 'finalized'
3 participants