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: processState to handle processPastEpoch #7505

Merged
merged 2 commits into from
Feb 27, 2025

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Feb 27, 2025

Motivation

  • avoid OOM when node getting close to head in holesky

Description

Closes #7495

@twoeths twoeths requested a review from a team as a code owner February 27, 2025 02:04
Copy link

codecov bot commented Feb 27, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 50.42%. Comparing base (2fc5490) to head (1784e1b).
Report is 2 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #7505      +/-   ##
============================================
- Coverage     50.44%   50.42%   -0.02%     
============================================
  Files           603      603              
  Lines         40686    40686              
  Branches       2229     2226       -3     
============================================
- Hits          20523    20517       -6     
- Misses        20123    20129       +6     
  Partials         40       40              

@twoeths twoeths mentioned this pull request Feb 27, 2025
@twoeths
Copy link
Contributor Author

twoeths commented Feb 27, 2025

this will fix the OOM issue in holesky

Screenshot 2025-02-27 at 09 53 19
debug: Error processing block state blockRootHex=0xf000d2c551fe5d228977013b5b747515ebe50e228c67a8c994c9e6380e8c47c9, slot=3721496 - Cannot get block root more than 8192 in the past

Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: cba911d Previous: 2fc5490 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 978.54 us/op 1.0222 ms/op 0.96
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 35.920 us/op 38.220 us/op 0.94
BLS verify - blst 896.84 us/op 886.20 us/op 1.01
BLS verifyMultipleSignatures 3 - blst 1.2365 ms/op 1.2953 ms/op 0.95
BLS verifyMultipleSignatures 8 - blst 1.8687 ms/op 1.6817 ms/op 1.11
BLS verifyMultipleSignatures 32 - blst 5.6340 ms/op 5.0142 ms/op 1.12
BLS verifyMultipleSignatures 64 - blst 10.630 ms/op 9.2365 ms/op 1.15
BLS verifyMultipleSignatures 128 - blst 17.288 ms/op 18.105 ms/op 0.95
BLS deserializing 10000 signatures 690.15 ms/op 722.95 ms/op 0.95
BLS deserializing 100000 signatures 6.9699 s/op 7.8132 s/op 0.89
BLS verifyMultipleSignatures - same message - 3 - blst 1.0004 ms/op 1.1060 ms/op 0.90
BLS verifyMultipleSignatures - same message - 8 - blst 1.1028 ms/op 1.1801 ms/op 0.93
BLS verifyMultipleSignatures - same message - 32 - blst 1.7448 ms/op 2.1581 ms/op 0.81
BLS verifyMultipleSignatures - same message - 64 - blst 2.6385 ms/op 3.2399 ms/op 0.81
BLS verifyMultipleSignatures - same message - 128 - blst 4.4191 ms/op 4.8117 ms/op 0.92
BLS aggregatePubkeys 32 - blst 19.692 us/op 21.255 us/op 0.93
BLS aggregatePubkeys 128 - blst 70.272 us/op 78.811 us/op 0.89
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 60.071 ms/op 59.888 ms/op 1.00
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 52.137 ms/op 58.695 ms/op 0.89
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 41.359 ms/op 44.920 ms/op 0.92
getSlashingsAndExits - default max 77.528 us/op 82.756 us/op 0.94
getSlashingsAndExits - 2k 314.34 us/op 383.06 us/op 0.82
proposeBlockBody type=full, size=empty 5.4746 ms/op 6.7438 ms/op 0.81
isKnown best case - 1 super set check 203.00 ns/op 232.00 ns/op 0.88
isKnown normal case - 2 super set checks 201.00 ns/op 224.00 ns/op 0.90
isKnown worse case - 16 super set checks 202.00 ns/op 227.00 ns/op 0.89
InMemoryCheckpointStateCache - add get delete 2.3560 us/op 3.6930 us/op 0.64
validate api signedAggregateAndProof - struct 2.1190 ms/op 1.8539 ms/op 1.14
validate gossip signedAggregateAndProof - struct 1.8178 ms/op 1.8103 ms/op 1.00
batch validate gossip attestation - vc 640000 - chunk 32 116.32 us/op 151.59 us/op 0.77
batch validate gossip attestation - vc 640000 - chunk 64 104.65 us/op 138.67 us/op 0.75
batch validate gossip attestation - vc 640000 - chunk 128 104.92 us/op 130.22 us/op 0.81
batch validate gossip attestation - vc 640000 - chunk 256 98.866 us/op 123.82 us/op 0.80
pickEth1Vote - no votes 970.12 us/op 1.0494 ms/op 0.92
pickEth1Vote - max votes 5.1753 ms/op 7.8914 ms/op 0.66
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.898 ms/op 15.162 ms/op 0.98
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 26.608 ms/op 19.400 ms/op 1.37
pickEth1Vote - Eth1Data fastSerialize value x2048 448.21 us/op 621.96 us/op 0.72
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.1086 ms/op 2.3805 ms/op 0.89
bytes32 toHexString 355.00 ns/op 412.00 ns/op 0.86
bytes32 Buffer.toString(hex) 232.00 ns/op 245.00 ns/op 0.95
bytes32 Buffer.toString(hex) from Uint8Array 362.00 ns/op 357.00 ns/op 1.01
bytes32 Buffer.toString(hex) + 0x 232.00 ns/op 256.00 ns/op 0.91
Object access 1 prop 0.11500 ns/op 0.14200 ns/op 0.81
Map access 1 prop 0.12000 ns/op 0.17200 ns/op 0.70
Object get x1000 5.7800 ns/op 8.1640 ns/op 0.71
Map get x1000 6.3230 ns/op 9.4480 ns/op 0.67
Object set x1000 28.425 ns/op 40.578 ns/op 0.70
Map set x1000 19.227 ns/op 26.047 ns/op 0.74
Return object 10000 times 0.28800 ns/op 0.38140 ns/op 0.76
Throw Error 10000 times 4.4141 us/op 5.0167 us/op 0.88
toHex 133.65 ns/op 158.92 ns/op 0.84
Buffer.from 124.35 ns/op 142.33 ns/op 0.87
shared Buffer 77.711 ns/op 99.326 ns/op 0.78
fastMsgIdFn sha256 / 200 bytes 2.1540 us/op 3.0350 us/op 0.71
fastMsgIdFn h32 xxhash / 200 bytes 207.00 ns/op 290.00 ns/op 0.71
fastMsgIdFn h64 xxhash / 200 bytes 266.00 ns/op 361.00 ns/op 0.74
fastMsgIdFn sha256 / 1000 bytes 7.0930 us/op 10.540 us/op 0.67
fastMsgIdFn h32 xxhash / 1000 bytes 337.00 ns/op 456.00 ns/op 0.74
fastMsgIdFn h64 xxhash / 1000 bytes 343.00 ns/op 371.00 ns/op 0.92
fastMsgIdFn sha256 / 10000 bytes 64.049 us/op 72.212 us/op 0.89
fastMsgIdFn h32 xxhash / 10000 bytes 1.8120 us/op 1.9850 us/op 0.91
fastMsgIdFn h64 xxhash / 10000 bytes 1.2310 us/op 1.3350 us/op 0.92
send data - 1000 256B messages 11.767 ms/op 17.226 ms/op 0.68
send data - 1000 512B messages 15.157 ms/op 24.279 ms/op 0.62
send data - 1000 1024B messages 26.059 ms/op 28.977 ms/op 0.90
send data - 1000 1200B messages 22.636 ms/op 26.963 ms/op 0.84
send data - 1000 2048B messages 23.239 ms/op 32.373 ms/op 0.72
send data - 1000 4096B messages 23.984 ms/op 34.968 ms/op 0.69
send data - 1000 16384B messages 74.115 ms/op 82.824 ms/op 0.89
send data - 1000 65536B messages 210.61 ms/op 269.81 ms/op 0.78
enrSubnets - fastDeserialize 64 bits 1.7120 us/op 1.1240 us/op 1.52
enrSubnets - ssz BitVector 64 bits 327.00 ns/op 458.00 ns/op 0.71
enrSubnets - fastDeserialize 4 bits 132.00 ns/op 141.00 ns/op 0.94
enrSubnets - ssz BitVector 4 bits 325.00 ns/op 355.00 ns/op 0.92
prioritizePeers score -10:0 att 32-0.1 sync 2-0 118.11 us/op 183.25 us/op 0.64
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 141.38 us/op 158.98 us/op 0.89
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 200.69 us/op 232.53 us/op 0.86
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 377.39 us/op 546.31 us/op 0.69
prioritizePeers score 0:0 att 64-1 sync 4-1 462.04 us/op 640.35 us/op 0.72
array of 16000 items push then shift 1.6466 us/op 2.1318 us/op 0.77
LinkedList of 16000 items push then shift 7.1380 ns/op 8.8440 ns/op 0.81
array of 16000 items push then pop 76.594 ns/op 94.031 ns/op 0.81
LinkedList of 16000 items push then pop 7.1150 ns/op 10.069 ns/op 0.71
array of 24000 items push then shift 2.4161 us/op 2.6883 us/op 0.90
LinkedList of 24000 items push then shift 6.8550 ns/op 9.5450 ns/op 0.72
array of 24000 items push then pop 101.83 ns/op 118.85 ns/op 0.86
LinkedList of 24000 items push then pop 6.6350 ns/op 7.5280 ns/op 0.88
intersect bitArray bitLen 8 6.1450 ns/op 8.5560 ns/op 0.72
intersect array and set length 8 37.247 ns/op 44.605 ns/op 0.84
intersect bitArray bitLen 128 28.660 ns/op 34.947 ns/op 0.82
intersect array and set length 128 625.03 ns/op 860.99 ns/op 0.73
bitArray.getTrueBitIndexes() bitLen 128 1.0600 us/op 1.3770 us/op 0.77
bitArray.getTrueBitIndexes() bitLen 248 1.8100 us/op 2.0400 us/op 0.89
bitArray.getTrueBitIndexes() bitLen 512 3.8510 us/op 4.1280 us/op 0.93
Buffer.concat 32 items 701.00 ns/op 1.0200 us/op 0.69
Uint8Array.set 32 items 1.1990 us/op 2.2380 us/op 0.54
Buffer.copy 2.0130 us/op 2.5530 us/op 0.79
Uint8Array.set - with subarray 2.0010 us/op 3.1200 us/op 0.64
Uint8Array.set - without subarray 1.5260 us/op 2.0430 us/op 0.75
getUint32 - dataview 203.00 ns/op 206.00 ns/op 0.99
getUint32 - manual 129.00 ns/op 127.00 ns/op 1.02
Set add up to 64 items then delete first 2.2524 us/op 3.4572 us/op 0.65
OrderedSet add up to 64 items then delete first 3.2173 us/op 5.2650 us/op 0.61
Set add up to 64 items then delete last 2.6962 us/op 3.9355 us/op 0.69
OrderedSet add up to 64 items then delete last 3.9047 us/op 5.6381 us/op 0.69
Set add up to 64 items then delete middle 2.5626 us/op 2.6024 us/op 0.98
OrderedSet add up to 64 items then delete middle 5.2964 us/op 6.3230 us/op 0.84
Set add up to 128 items then delete first 5.1661 us/op 6.7040 us/op 0.77
OrderedSet add up to 128 items then delete first 7.9749 us/op 10.746 us/op 0.74
Set add up to 128 items then delete last 5.2547 us/op 5.9907 us/op 0.88
OrderedSet add up to 128 items then delete last 7.5369 us/op 9.1465 us/op 0.82
Set add up to 128 items then delete middle 4.7463 us/op 5.6136 us/op 0.85
OrderedSet add up to 128 items then delete middle 14.545 us/op 15.546 us/op 0.94
Set add up to 256 items then delete first 9.8809 us/op 12.222 us/op 0.81
OrderedSet add up to 256 items then delete first 15.371 us/op 19.153 us/op 0.80
Set add up to 256 items then delete last 9.9969 us/op 14.794 us/op 0.68
OrderedSet add up to 256 items then delete last 15.704 us/op 25.481 us/op 0.62
Set add up to 256 items then delete middle 9.9203 us/op 13.484 us/op 0.74
OrderedSet add up to 256 items then delete middle 40.402 us/op 53.002 us/op 0.76
transfer serialized Status (84 B) 2.3590 us/op 3.8960 us/op 0.61
copy serialized Status (84 B) 1.3400 us/op 2.0500 us/op 0.65
transfer serialized SignedVoluntaryExit (112 B) 2.4690 us/op 3.4070 us/op 0.72
copy serialized SignedVoluntaryExit (112 B) 1.2430 us/op 1.7530 us/op 0.71
transfer serialized ProposerSlashing (416 B) 2.3170 us/op 3.9530 us/op 0.59
copy serialized ProposerSlashing (416 B) 1.8550 us/op 2.4860 us/op 0.75
transfer serialized Attestation (485 B) 3.2860 us/op 3.4470 us/op 0.95
copy serialized Attestation (485 B) 2.4550 us/op 2.3020 us/op 1.07
transfer serialized AttesterSlashing (33232 B) 2.7590 us/op 3.8000 us/op 0.73
copy serialized AttesterSlashing (33232 B) 3.9830 us/op 5.9890 us/op 0.67
transfer serialized Small SignedBeaconBlock (128000 B) 3.1260 us/op 4.0930 us/op 0.76
copy serialized Small SignedBeaconBlock (128000 B) 9.4840 us/op 17.709 us/op 0.54
transfer serialized Avg SignedBeaconBlock (200000 B) 3.6060 us/op 4.7620 us/op 0.76
copy serialized Avg SignedBeaconBlock (200000 B) 14.052 us/op 22.508 us/op 0.62
transfer serialized BlobsSidecar (524380 B) 3.8010 us/op 5.6060 us/op 0.68
copy serialized BlobsSidecar (524380 B) 65.490 us/op 193.39 us/op 0.34
transfer serialized Big SignedBeaconBlock (1000000 B) 3.8730 us/op 6.3750 us/op 0.61
copy serialized Big SignedBeaconBlock (1000000 B) 109.39 us/op 122.63 us/op 0.89
pass gossip attestations to forkchoice per slot 2.7953 ms/op 3.4647 ms/op 0.81
forkChoice updateHead vc 100000 bc 64 eq 0 455.77 us/op 555.31 us/op 0.82
forkChoice updateHead vc 600000 bc 64 eq 0 2.7997 ms/op 3.1656 ms/op 0.88
forkChoice updateHead vc 1000000 bc 64 eq 0 4.8354 ms/op 5.8249 ms/op 0.83
forkChoice updateHead vc 600000 bc 320 eq 0 2.8248 ms/op 3.3800 ms/op 0.84
forkChoice updateHead vc 600000 bc 1200 eq 0 2.8570 ms/op 3.5219 ms/op 0.81
forkChoice updateHead vc 600000 bc 7200 eq 0 3.1080 ms/op 4.0035 ms/op 0.78
forkChoice updateHead vc 600000 bc 64 eq 1000 10.329 ms/op 13.527 ms/op 0.76
forkChoice updateHead vc 600000 bc 64 eq 10000 10.133 ms/op 11.838 ms/op 0.86
forkChoice updateHead vc 600000 bc 64 eq 300000 13.292 ms/op 23.447 ms/op 0.57
computeDeltas 500000 validators 300 proto nodes 3.9332 ms/op 4.9501 ms/op 0.79
computeDeltas 500000 validators 1200 proto nodes 3.8779 ms/op 5.3129 ms/op 0.73
computeDeltas 500000 validators 7200 proto nodes 3.9445 ms/op 4.3808 ms/op 0.90
computeDeltas 750000 validators 300 proto nodes 5.7269 ms/op 6.2350 ms/op 0.92
computeDeltas 750000 validators 1200 proto nodes 5.7586 ms/op 8.8494 ms/op 0.65
computeDeltas 750000 validators 7200 proto nodes 5.7104 ms/op 8.6839 ms/op 0.66
computeDeltas 1400000 validators 300 proto nodes 10.671 ms/op 16.159 ms/op 0.66
computeDeltas 1400000 validators 1200 proto nodes 10.538 ms/op 16.597 ms/op 0.63
computeDeltas 1400000 validators 7200 proto nodes 10.523 ms/op 17.624 ms/op 0.60
computeDeltas 2100000 validators 300 proto nodes 15.831 ms/op 24.686 ms/op 0.64
computeDeltas 2100000 validators 1200 proto nodes 15.825 ms/op 23.886 ms/op 0.66
computeDeltas 2100000 validators 7200 proto nodes 16.290 ms/op 19.966 ms/op 0.82
altair processAttestation - 250000 vs - 7PWei normalcase 1.8767 ms/op 2.9222 ms/op 0.64
altair processAttestation - 250000 vs - 7PWei worstcase 2.9374 ms/op 3.4480 ms/op 0.85
altair processAttestation - setStatus - 1/6 committees join 117.50 us/op 140.37 us/op 0.84
altair processAttestation - setStatus - 1/3 committees join 227.74 us/op 275.69 us/op 0.83
altair processAttestation - setStatus - 1/2 committees join 322.94 us/op 363.77 us/op 0.89
altair processAttestation - setStatus - 2/3 committees join 404.44 us/op 458.94 us/op 0.88
altair processAttestation - setStatus - 4/5 committees join 575.11 us/op 650.84 us/op 0.88
altair processAttestation - setStatus - 100% committees join 674.82 us/op 736.39 us/op 0.92
altair processBlock - 250000 vs - 7PWei normalcase 5.5423 ms/op 4.6751 ms/op 1.19
altair processBlock - 250000 vs - 7PWei normalcase hashState 42.437 ms/op 34.169 ms/op 1.24
altair processBlock - 250000 vs - 7PWei worstcase 47.666 ms/op 40.275 ms/op 1.18
altair processBlock - 250000 vs - 7PWei worstcase hashState 111.67 ms/op 84.982 ms/op 1.31
phase0 processBlock - 250000 vs - 7PWei normalcase 2.8304 ms/op 1.6459 ms/op 1.72
phase0 processBlock - 250000 vs - 7PWei worstcase 22.365 ms/op 25.823 ms/op 0.87
altair processEth1Data - 250000 vs - 7PWei normalcase 321.97 us/op 364.09 us/op 0.88
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 7.5080 us/op 10.312 us/op 0.73
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 40.325 us/op 48.302 us/op 0.83
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 7.2680 us/op 14.343 us/op 0.51
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 7.3280 us/op 8.9900 us/op 0.82
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 169.29 us/op 241.30 us/op 0.70
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.9059 ms/op 1.2199 ms/op 1.56
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.6424 ms/op 2.2086 ms/op 1.20
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.6372 ms/op 1.7010 ms/op 1.55
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.0471 ms/op 5.7364 ms/op 0.53
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.1463 ms/op 1.9984 ms/op 1.07
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.0467 ms/op 5.3562 ms/op 0.57
Tree 40 250000 create 403.24 ms/op 722.81 ms/op 0.56
Tree 40 250000 get(125000) 140.20 ns/op 171.40 ns/op 0.82
Tree 40 250000 set(125000) 1.4375 us/op 2.6165 us/op 0.55
Tree 40 250000 toArray() 15.540 ms/op 22.588 ms/op 0.69
Tree 40 250000 iterate all - toArray() + loop 14.957 ms/op 23.212 ms/op 0.64
Tree 40 250000 iterate all - get(i) 50.703 ms/op 67.563 ms/op 0.75
Array 250000 create 2.3699 ms/op 3.8017 ms/op 0.62
Array 250000 clone - spread 804.10 us/op 1.8231 ms/op 0.44
Array 250000 get(125000) 0.57000 ns/op 0.47000 ns/op 1.21
Array 250000 set(125000) 0.42300 ns/op 0.49200 ns/op 0.86
Array 250000 iterate all - loop 81.278 us/op 123.07 us/op 0.66
phase0 afterProcessEpoch - 250000 vs - 7PWei 48.392 ms/op 57.473 ms/op 0.84
Array.fill - length 1000000 3.4724 ms/op 5.5272 ms/op 0.63
Array push - length 1000000 11.958 ms/op 17.082 ms/op 0.70
Array.get 0.25380 ns/op 0.31555 ns/op 0.80
Uint8Array.get 0.41136 ns/op 0.49027 ns/op 0.84
phase0 beforeProcessEpoch - 250000 vs - 7PWei 15.792 ms/op 21.337 ms/op 0.74
altair processEpoch - mainnet_e81889 308.35 ms/op 344.93 ms/op 0.89
mainnet_e81889 - altair beforeProcessEpoch 18.618 ms/op 23.278 ms/op 0.80
mainnet_e81889 - altair processJustificationAndFinalization 6.2790 us/op 7.2700 us/op 0.86
mainnet_e81889 - altair processInactivityUpdates 3.8939 ms/op 5.6517 ms/op 0.69
mainnet_e81889 - altair processRewardsAndPenalties 64.325 ms/op 48.354 ms/op 1.33
mainnet_e81889 - altair processRegistryUpdates 643.00 ns/op 902.00 ns/op 0.71
mainnet_e81889 - altair processSlashings 187.00 ns/op 196.00 ns/op 0.95
mainnet_e81889 - altair processEth1DataReset 171.00 ns/op 268.00 ns/op 0.64
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.1950 ms/op 1.3983 ms/op 0.85
mainnet_e81889 - altair processSlashingsReset 1.0880 us/op 940.00 ns/op 1.16
mainnet_e81889 - altair processRandaoMixesReset 1.1180 us/op 1.4930 us/op 0.75
mainnet_e81889 - altair processHistoricalRootsUpdate 170.00 ns/op 239.00 ns/op 0.71
mainnet_e81889 - altair processParticipationFlagUpdates 493.00 ns/op 784.00 ns/op 0.63
mainnet_e81889 - altair processSyncCommitteeUpdates 141.00 ns/op 151.00 ns/op 0.93
mainnet_e81889 - altair afterProcessEpoch 51.633 ms/op 58.564 ms/op 0.88
capella processEpoch - mainnet_e217614 912.20 ms/op 1.1685 s/op 0.78
mainnet_e217614 - capella beforeProcessEpoch 67.319 ms/op 77.559 ms/op 0.87
mainnet_e217614 - capella processJustificationAndFinalization 5.2470 us/op 6.2190 us/op 0.84
mainnet_e217614 - capella processInactivityUpdates 16.985 ms/op 22.180 ms/op 0.77
mainnet_e217614 - capella processRewardsAndPenalties 214.52 ms/op 203.41 ms/op 1.05
mainnet_e217614 - capella processRegistryUpdates 6.5110 us/op 9.7060 us/op 0.67
mainnet_e217614 - capella processSlashings 186.00 ns/op 250.00 ns/op 0.74
mainnet_e217614 - capella processEth1DataReset 189.00 ns/op 261.00 ns/op 0.72
mainnet_e217614 - capella processEffectiveBalanceUpdates 13.195 ms/op 15.022 ms/op 0.88
mainnet_e217614 - capella processSlashingsReset 940.00 ns/op 1.1550 us/op 0.81
mainnet_e217614 - capella processRandaoMixesReset 1.3010 us/op 1.6870 us/op 0.77
mainnet_e217614 - capella processHistoricalRootsUpdate 180.00 ns/op 275.00 ns/op 0.65
mainnet_e217614 - capella processParticipationFlagUpdates 523.00 ns/op 726.00 ns/op 0.72
mainnet_e217614 - capella afterProcessEpoch 130.64 ms/op 138.71 ms/op 0.94
phase0 processEpoch - mainnet_e58758 317.49 ms/op 379.85 ms/op 0.84
mainnet_e58758 - phase0 beforeProcessEpoch 87.801 ms/op 89.881 ms/op 0.98
mainnet_e58758 - phase0 processJustificationAndFinalization 7.5300 us/op 9.3890 us/op 0.80
mainnet_e58758 - phase0 processRewardsAndPenalties 39.611 ms/op 40.356 ms/op 0.98
mainnet_e58758 - phase0 processRegistryUpdates 3.5370 us/op 4.8330 us/op 0.73
mainnet_e58758 - phase0 processSlashings 200.00 ns/op 283.00 ns/op 0.71
mainnet_e58758 - phase0 processEth1DataReset 188.00 ns/op 281.00 ns/op 0.67
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.0504 ms/op 1.3123 ms/op 0.80
mainnet_e58758 - phase0 processSlashingsReset 1.0570 us/op 1.0340 us/op 1.02
mainnet_e58758 - phase0 processRandaoMixesReset 1.4690 us/op 1.7590 us/op 0.84
mainnet_e58758 - phase0 processHistoricalRootsUpdate 211.00 ns/op 191.00 ns/op 1.10
mainnet_e58758 - phase0 processParticipationRecordUpdates 941.00 ns/op 1.2230 us/op 0.77
mainnet_e58758 - phase0 afterProcessEpoch 47.030 ms/op 54.109 ms/op 0.87
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.6379 ms/op 1.7289 ms/op 0.95
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.5055 ms/op 3.9733 ms/op 0.63
altair processInactivityUpdates - 250000 normalcase 23.292 ms/op 25.511 ms/op 0.91
altair processInactivityUpdates - 250000 worstcase 22.447 ms/op 23.440 ms/op 0.96
phase0 processRegistryUpdates - 250000 normalcase 7.8400 us/op 14.462 us/op 0.54
phase0 processRegistryUpdates - 250000 badcase_full_deposits 352.37 us/op 478.32 us/op 0.74
phase0 processRegistryUpdates - 250000 worstcase 0.5 138.99 ms/op 143.82 ms/op 0.97
altair processRewardsAndPenalties - 250000 normalcase 51.169 ms/op 55.769 ms/op 0.92
altair processRewardsAndPenalties - 250000 worstcase 41.184 ms/op 44.317 ms/op 0.93
phase0 getAttestationDeltas - 250000 normalcase 8.3218 ms/op 10.267 ms/op 0.81
phase0 getAttestationDeltas - 250000 worstcase 7.9786 ms/op 9.8902 ms/op 0.81
phase0 processSlashings - 250000 worstcase 135.25 us/op 141.71 us/op 0.95
altair processSyncCommitteeUpdates - 250000 146.94 ms/op 159.16 ms/op 0.92
BeaconState.hashTreeRoot - No change 247.00 ns/op 245.00 ns/op 1.01
BeaconState.hashTreeRoot - 1 full validator 81.023 us/op 105.86 us/op 0.77
BeaconState.hashTreeRoot - 32 full validator 1.2089 ms/op 1.5245 ms/op 0.79
BeaconState.hashTreeRoot - 512 full validator 12.863 ms/op 15.930 ms/op 0.81
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 123.16 us/op 171.04 us/op 0.72
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.1145 ms/op 2.3721 ms/op 0.89
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 28.821 ms/op 30.642 ms/op 0.94
BeaconState.hashTreeRoot - 1 balances 96.553 us/op 86.577 us/op 1.12
BeaconState.hashTreeRoot - 32 balances 1.1235 ms/op 1.0032 ms/op 1.12
BeaconState.hashTreeRoot - 512 balances 11.391 ms/op 9.6218 ms/op 1.18
BeaconState.hashTreeRoot - 250000 balances 193.51 ms/op 232.13 ms/op 0.83
aggregationBits - 2048 els - zipIndexesInBitList 24.087 us/op 45.575 us/op 0.53
byteArrayEquals 32 55.007 ns/op 66.355 ns/op 0.83
Buffer.compare 32 17.521 ns/op 20.791 ns/op 0.84
byteArrayEquals 1024 1.6262 us/op 1.8892 us/op 0.86
Buffer.compare 1024 27.214 ns/op 28.994 ns/op 0.94
byteArrayEquals 16384 26.033 us/op 32.120 us/op 0.81
Buffer.compare 16384 203.24 ns/op 227.75 ns/op 0.89
byteArrayEquals 123687377 194.62 ms/op 284.19 ms/op 0.68
Buffer.compare 123687377 6.6684 ms/op 10.672 ms/op 0.62
byteArrayEquals 32 - diff last byte 52.979 ns/op 87.119 ns/op 0.61
Buffer.compare 32 - diff last byte 17.244 ns/op 28.545 ns/op 0.60
byteArrayEquals 1024 - diff last byte 1.5978 us/op 2.7033 us/op 0.59
Buffer.compare 1024 - diff last byte 25.554 ns/op 40.384 ns/op 0.63
byteArrayEquals 16384 - diff last byte 25.232 us/op 35.438 us/op 0.71
Buffer.compare 16384 - diff last byte 203.82 ns/op 288.11 ns/op 0.71
byteArrayEquals 123687377 - diff last byte 190.97 ms/op 252.34 ms/op 0.76
Buffer.compare 123687377 - diff last byte 6.8610 ms/op 11.524 ms/op 0.60
byteArrayEquals 32 - random bytes 5.0220 ns/op 6.9740 ns/op 0.72
Buffer.compare 32 - random bytes 16.822 ns/op 20.531 ns/op 0.82
byteArrayEquals 1024 - random bytes 5.1330 ns/op 5.7930 ns/op 0.89
Buffer.compare 1024 - random bytes 17.142 ns/op 30.149 ns/op 0.57
byteArrayEquals 16384 - random bytes 5.1310 ns/op 7.0940 ns/op 0.72
Buffer.compare 16384 - random bytes 17.114 ns/op 20.934 ns/op 0.82
byteArrayEquals 123687377 - random bytes 7.0300 ns/op 10.010 ns/op 0.70
Buffer.compare 123687377 - random bytes 19.940 ns/op 29.210 ns/op 0.68
regular array get 100000 times 41.341 us/op 51.516 us/op 0.80
wrappedArray get 100000 times 33.563 us/op 66.993 us/op 0.50
arrayWithProxy get 100000 times 13.880 ms/op 15.471 ms/op 0.90
ssz.Root.equals 47.742 ns/op 52.286 ns/op 0.91
byteArrayEquals 46.320 ns/op 52.115 ns/op 0.89
Buffer.compare 10.615 ns/op 13.320 ns/op 0.80
processSlot - 1 slots 13.942 us/op 13.142 us/op 1.06
processSlot - 32 slots 3.2169 ms/op 3.4149 ms/op 0.94
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 55.480 ms/op 66.374 ms/op 0.84
getCommitteeAssignments - req 1 vs - 250000 vc 2.1894 ms/op 2.2912 ms/op 0.96
getCommitteeAssignments - req 100 vs - 250000 vc 4.2706 ms/op 4.3690 ms/op 0.98
getCommitteeAssignments - req 1000 vs - 250000 vc 4.5563 ms/op 4.6587 ms/op 0.98
findModifiedValidators - 10000 modified validators 740.98 ms/op 863.37 ms/op 0.86
findModifiedValidators - 1000 modified validators 702.95 ms/op 813.24 ms/op 0.86
findModifiedValidators - 100 modified validators 262.75 ms/op 294.65 ms/op 0.89
findModifiedValidators - 10 modified validators 155.56 ms/op 193.30 ms/op 0.80
findModifiedValidators - 1 modified validators 257.78 ms/op 263.79 ms/op 0.98
findModifiedValidators - no difference 154.44 ms/op 417.97 ms/op 0.37
compare ViewDUs 6.2792 s/op 9.0880 s/op 0.69
compare each validator Uint8Array 1.6181 s/op 1.8032 s/op 0.90
compare ViewDU to Uint8Array 899.31 ms/op 1.8490 s/op 0.49
migrate state 1000000 validators, 24 modified, 0 new 928.94 ms/op 1.0514 s/op 0.88
migrate state 1000000 validators, 1700 modified, 1000 new 1.2167 s/op 1.4445 s/op 0.84
migrate state 1000000 validators, 3400 modified, 2000 new 1.2618 s/op 1.7738 s/op 0.71
migrate state 1500000 validators, 24 modified, 0 new 962.91 ms/op 1.1704 s/op 0.82
migrate state 1500000 validators, 1700 modified, 1000 new 1.2210 s/op 1.4520 s/op 0.84
migrate state 1500000 validators, 3400 modified, 2000 new 1.2693 s/op 1.5951 s/op 0.80
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.1000 ns/op 6.8200 ns/op 0.75
state getBlockRootAtSlot - 250000 vs - 7PWei 467.64 ns/op 696.05 ns/op 0.67
naive computeProposerIndex 100000 validators 47.135 ms/op 77.993 ms/op 0.60
computeProposerIndex 100000 validators 8.2673 ms/op 12.525 ms/op 0.66
naiveGetNextSyncCommitteeIndices 1000 validators 7.5126 s/op 10.792 s/op 0.70
getNextSyncCommitteeIndices 1000 validators 237.69 ms/op 479.98 ms/op 0.50
naiveGetNextSyncCommitteeIndices 10000 validators 7.1750 s/op 9.9659 s/op 0.72
getNextSyncCommitteeIndices 10000 validators 251.43 ms/op 360.64 ms/op 0.70
naiveGetNextSyncCommitteeIndices 100000 validators 7.1921 s/op 11.431 s/op 0.63
getNextSyncCommitteeIndices 100000 validators 307.99 ms/op 538.26 ms/op 0.57
naive computeShuffledIndex 100000 validators 24.476 s/op 39.646 s/op 0.62
cached computeShuffledIndex 100000 validators 609.39 ms/op 748.55 ms/op 0.81
naive computeShuffledIndex 2000000 validators 467.29 s/op 651.19 s/op 0.72
cached computeShuffledIndex 2000000 validators 30.124 s/op 52.901 s/op 0.57
computeProposers - vc 250000 10.106 ms/op 11.630 ms/op 0.87
computeEpochShuffling - vc 250000 41.683 ms/op 47.821 ms/op 0.87
getNextSyncCommittee - vc 250000 154.65 ms/op 207.47 ms/op 0.75
computeSigningRoot for AttestationData 28.175 us/op 28.776 us/op 0.98
hash AttestationData serialized data then Buffer.toString(base64) 1.4925 us/op 1.7517 us/op 0.85
toHexString serialized data 1.0597 us/op 1.4467 us/op 0.73
Buffer.toString(base64) 162.00 ns/op 177.46 ns/op 0.91
nodejs block root to RootHex using toHex 146.99 ns/op 158.47 ns/op 0.93
nodejs block root to RootHex using toRootHex 80.576 ns/op 97.773 ns/op 0.82
browser block root to RootHex using the deprecated toHexString 206.74 ns/op 244.15 ns/op 0.85
browser block root to RootHex using toHex 168.43 ns/op 189.40 ns/op 0.89
browser block root to RootHex using toRootHex 160.56 ns/op 176.90 ns/op 0.91

by benchmarkbot/action

@twoeths
Copy link
Contributor Author

twoeths commented Feb 27, 2025

Screenshot 2025-02-27 at 13 18 32

issue was fixed in holesky prod nodes

@wemeetagain wemeetagain merged commit 95e9b3e into unstable Feb 27, 2025
26 checks passed
@wemeetagain wemeetagain deleted the te/handle_getBlockRootAtSlot branch February 27, 2025 15:38
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.

Not able to prune checkpoint state during nft of holesky
2 participants