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: archive finalized state when shutting down beacon node #7221

Merged
merged 1 commit into from
Nov 8, 2024

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Nov 8, 2024

Motivation

State archiving when shutting down the beacon node is broken at the moment, this means we might load a state that's up to 32 epochs old when restarting the node, causing high sync times (~5-10 mins).

Description

Archive finalized state when shutting down beacon node. This restores behavior before changes done in #7170.

@nflaig nflaig requested a review from a team as a code owner November 8, 2024 14:05
Copy link
Contributor

@twoeths twoeths left a comment

Choose a reason for hiding this comment

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

lgtm

Copy link

codecov bot commented Nov 8, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 49.08%. Comparing base (10d15dc) to head (245c5fd).
Report is 1 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #7221   +/-   ##
=========================================
  Coverage     49.08%   49.08%           
=========================================
  Files           600      600           
  Lines         40241    40241           
  Branches       2104     2110    +6     
=========================================
  Hits          19752    19752           
  Misses        20451    20451           
  Partials         38       38           

@nflaig nflaig enabled auto-merge (squash) November 8, 2024 14:24
@nflaig nflaig merged commit 0d404f8 into unstable Nov 8, 2024
19 of 20 checks passed
@nflaig nflaig deleted the nflaig/fix-state-archiving branch November 8, 2024 14:27
Copy link
Contributor

github-actions bot commented Nov 8, 2024

⚠️ Performance Alert ⚠️

Possible performance regression was detected for some benchmarks.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold.

Benchmark suite Current: 260d1b3 Previous: 10d15dc Ratio
send data - 1000 4096B messages 94.418 ms/op 27.090 ms/op 3.49
send data - 1000 16384B messages 552.37 ms/op 68.135 ms/op 8.11
send data - 1000 65536B messages 1.7379 s/op 249.38 ms/op 6.97
Full benchmark results
Benchmark suite Current: 260d1b3 Previous: 10d15dc Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 3.0078 ms/op 1.8821 ms/op 1.60
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 64.424 us/op 41.041 us/op 1.57
BLS verify - blst 896.92 us/op 869.48 us/op 1.03
BLS verifyMultipleSignatures 3 - blst 1.3767 ms/op 1.2986 ms/op 1.06
BLS verifyMultipleSignatures 8 - blst 2.0631 ms/op 2.0111 ms/op 1.03
BLS verifyMultipleSignatures 32 - blst 5.5972 ms/op 4.4804 ms/op 1.25
BLS verifyMultipleSignatures 64 - blst 9.2592 ms/op 8.2864 ms/op 1.12
BLS verifyMultipleSignatures 128 - blst 18.648 ms/op 15.936 ms/op 1.17
BLS deserializing 10000 signatures 657.23 ms/op 627.14 ms/op 1.05
BLS deserializing 100000 signatures 6.3528 s/op 6.2436 s/op 1.02
BLS verifyMultipleSignatures - same message - 3 - blst 1.1659 ms/op 1.0076 ms/op 1.16
BLS verifyMultipleSignatures - same message - 8 - blst 1.0965 ms/op 1.0768 ms/op 1.02
BLS verifyMultipleSignatures - same message - 32 - blst 1.6817 ms/op 1.7347 ms/op 0.97
BLS verifyMultipleSignatures - same message - 64 - blst 2.5588 ms/op 2.6438 ms/op 0.97
BLS verifyMultipleSignatures - same message - 128 - blst 4.3009 ms/op 4.2308 ms/op 1.02
BLS aggregatePubkeys 32 - blst 18.780 us/op 17.947 us/op 1.05
BLS aggregatePubkeys 128 - blst 64.261 us/op 63.330 us/op 1.01
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 74.756 ms/op 63.760 ms/op 1.17
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 50.308 ms/op 58.267 ms/op 0.86
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 48.452 ms/op 43.556 ms/op 1.11
getSlashingsAndExits - default max 67.515 us/op 72.958 us/op 0.93
getSlashingsAndExits - 2k 275.47 us/op 435.94 us/op 0.63
proposeBlockBody type=full, size=empty 5.9124 ms/op 7.0257 ms/op 0.84
isKnown best case - 1 super set check 525.00 ns/op 536.00 ns/op 0.98
isKnown normal case - 2 super set checks 479.00 ns/op 491.00 ns/op 0.98
isKnown worse case - 16 super set checks 482.00 ns/op 551.00 ns/op 0.87
InMemoryCheckpointStateCache - add get delete 2.8360 us/op 4.0940 us/op 0.69
updateUnfinalizedPubkeys - updating 10 pubkeys 1.3884 ms/op 1.4700 ms/op 0.94
updateUnfinalizedPubkeys - updating 100 pubkeys 3.8652 ms/op 4.8142 ms/op 0.80
updateUnfinalizedPubkeys - updating 1000 pubkeys 40.245 ms/op 46.828 ms/op 0.86
validate api signedAggregateAndProof - struct 1.5398 ms/op 1.5715 ms/op 0.98
validate gossip signedAggregateAndProof - struct 1.5465 ms/op 1.5772 ms/op 0.98
batch validate gossip attestation - vc 640000 - chunk 32 147.52 us/op 133.55 us/op 1.10
batch validate gossip attestation - vc 640000 - chunk 64 140.22 us/op 122.48 us/op 1.14
batch validate gossip attestation - vc 640000 - chunk 128 111.10 us/op 114.61 us/op 0.97
batch validate gossip attestation - vc 640000 - chunk 256 106.51 us/op 119.19 us/op 0.89
pickEth1Vote - no votes 840.35 us/op 983.98 us/op 0.85
pickEth1Vote - max votes 9.1099 ms/op 5.6834 ms/op 1.60
pickEth1Vote - Eth1Data hashTreeRoot value x2048 17.172 ms/op 10.930 ms/op 1.57
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 30.965 ms/op 14.725 ms/op 2.10
pickEth1Vote - Eth1Data fastSerialize value x2048 503.24 us/op 371.04 us/op 1.36
pickEth1Vote - Eth1Data fastSerialize tree x2048 3.1591 ms/op 1.9910 ms/op 1.59
bytes32 toHexString 1.0720 us/op 656.00 ns/op 1.63
bytes32 Buffer.toString(hex) 613.00 ns/op 494.00 ns/op 1.24
bytes32 Buffer.toString(hex) from Uint8Array 803.00 ns/op 625.00 ns/op 1.28
bytes32 Buffer.toString(hex) + 0x 563.00 ns/op 483.00 ns/op 1.17
Object access 1 prop 0.65000 ns/op 0.35600 ns/op 1.83
Map access 1 prop 0.55500 ns/op 0.33800 ns/op 1.64
Object get x1000 5.7860 ns/op 5.2250 ns/op 1.11
Map get x1000 6.2260 ns/op 6.1950 ns/op 1.01
Object set x1000 61.716 ns/op 23.457 ns/op 2.63
Map set x1000 53.745 ns/op 19.198 ns/op 2.80
Return object 10000 times 0.43670 ns/op 0.30960 ns/op 1.41
Throw Error 10000 times 4.3510 us/op 2.7942 us/op 1.56
toHex 225.07 ns/op 112.51 ns/op 2.00
Buffer.from 162.12 ns/op 119.83 ns/op 1.35
shared Buffer 125.52 ns/op 75.589 ns/op 1.66
fastMsgIdFn sha256 / 200 bytes 3.4610 us/op 2.0950 us/op 1.65
fastMsgIdFn h32 xxhash / 200 bytes 650.00 ns/op 501.00 ns/op 1.30
fastMsgIdFn h64 xxhash / 200 bytes 674.00 ns/op 489.00 ns/op 1.38
fastMsgIdFn sha256 / 1000 bytes 8.5250 us/op 7.1530 us/op 1.19
fastMsgIdFn h32 xxhash / 1000 bytes 961.00 ns/op 633.00 ns/op 1.52
fastMsgIdFn h64 xxhash / 1000 bytes 871.00 ns/op 590.00 ns/op 1.48
fastMsgIdFn sha256 / 10000 bytes 50.879 us/op 53.585 us/op 0.95
fastMsgIdFn h32 xxhash / 10000 bytes 2.2070 us/op 2.1060 us/op 1.05
fastMsgIdFn h64 xxhash / 10000 bytes 1.5080 us/op 1.4200 us/op 1.06
send data - 1000 256B messages 21.553 ms/op 13.456 ms/op 1.60
send data - 1000 512B messages 26.465 ms/op 18.196 ms/op 1.45
send data - 1000 1024B messages 45.351 ms/op 29.291 ms/op 1.55
send data - 1000 1200B messages 57.987 ms/op 30.700 ms/op 1.89
send data - 1000 2048B messages 67.337 ms/op 31.690 ms/op 2.12
send data - 1000 4096B messages 94.418 ms/op 27.090 ms/op 3.49
send data - 1000 16384B messages 552.37 ms/op 68.135 ms/op 8.11
send data - 1000 65536B messages 1.7379 s/op 249.38 ms/op 6.97
enrSubnets - fastDeserialize 64 bits 2.2620 us/op 1.2260 us/op 1.85
enrSubnets - ssz BitVector 64 bits 930.00 ns/op 595.00 ns/op 1.56
enrSubnets - fastDeserialize 4 bits 439.00 ns/op 396.00 ns/op 1.11
enrSubnets - ssz BitVector 4 bits 934.00 ns/op 661.00 ns/op 1.41
prioritizePeers score -10:0 att 32-0.1 sync 2-0 372.82 us/op 202.00 us/op 1.85
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 383.18 us/op 142.19 us/op 2.69
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 687.43 us/op 349.51 us/op 1.97
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 1.0481 ms/op 492.51 us/op 2.13
prioritizePeers score 0:0 att 64-1 sync 4-1 1.6943 ms/op 887.38 us/op 1.91
array of 16000 items push then shift 1.9485 us/op 1.3311 us/op 1.46
LinkedList of 16000 items push then shift 12.855 ns/op 8.4560 ns/op 1.52
array of 16000 items push then pop 182.43 ns/op 143.87 ns/op 1.27
LinkedList of 16000 items push then pop 10.473 ns/op 6.8390 ns/op 1.53
array of 24000 items push then shift 1.9779 us/op 1.9374 us/op 1.02
LinkedList of 24000 items push then shift 12.126 ns/op 8.3610 ns/op 1.45
array of 24000 items push then pop 298.02 ns/op 193.04 ns/op 1.54
LinkedList of 24000 items push then pop 9.9490 ns/op 7.0840 ns/op 1.40
intersect bitArray bitLen 8 9.5880 ns/op 5.5190 ns/op 1.74
intersect array and set length 8 123.28 ns/op 78.717 ns/op 1.57
intersect bitArray bitLen 128 39.185 ns/op 27.079 ns/op 1.45
intersect array and set length 128 1.3683 us/op 916.44 ns/op 1.49
bitArray.getTrueBitIndexes() bitLen 128 4.6950 us/op 3.1330 us/op 1.50
bitArray.getTrueBitIndexes() bitLen 248 7.0720 us/op 3.6340 us/op 1.95
bitArray.getTrueBitIndexes() bitLen 512 13.778 us/op 8.3520 us/op 1.65
Buffer.concat 32 items 1.4170 us/op 1.1920 us/op 1.19
Uint8Array.set 32 items 2.2190 us/op 2.0020 us/op 1.11
Buffer.copy 1.8100 us/op 2.1000 us/op 0.86
Uint8Array.set - with subarray 2.2210 us/op 2.8100 us/op 0.79
Uint8Array.set - without subarray 1.5080 us/op 1.9100 us/op 0.79
getUint32 - dataview 435.00 ns/op 531.00 ns/op 0.82
getUint32 - manual 389.00 ns/op 451.00 ns/op 0.86
Set add up to 64 items then delete first 2.6865 us/op 1.9255 us/op 1.40
OrderedSet add up to 64 items then delete first 4.2031 us/op 3.0238 us/op 1.39
Set add up to 64 items then delete last 2.8138 us/op 2.4619 us/op 1.14
OrderedSet add up to 64 items then delete last 3.1821 us/op 3.4378 us/op 0.93
Set add up to 64 items then delete middle 2.1639 us/op 2.9127 us/op 0.74
OrderedSet add up to 64 items then delete middle 4.4513 us/op 4.9914 us/op 0.89
Set add up to 128 items then delete first 3.9514 us/op 5.0173 us/op 0.79
OrderedSet add up to 128 items then delete first 6.9426 us/op 6.7478 us/op 1.03
Set add up to 128 items then delete last 4.0280 us/op 4.1303 us/op 0.98
OrderedSet add up to 128 items then delete last 6.1017 us/op 9.1118 us/op 0.67
Set add up to 128 items then delete middle 4.3485 us/op 6.0064 us/op 0.72
OrderedSet add up to 128 items then delete middle 12.132 us/op 14.616 us/op 0.83
Set add up to 256 items then delete first 13.065 us/op 11.686 us/op 1.12
OrderedSet add up to 256 items then delete first 21.400 us/op 20.882 us/op 1.02
Set add up to 256 items then delete last 12.696 us/op 11.456 us/op 1.11
OrderedSet add up to 256 items then delete last 21.029 us/op 19.794 us/op 1.06
Set add up to 256 items then delete middle 12.750 us/op 11.413 us/op 1.12
OrderedSet add up to 256 items then delete middle 44.241 us/op 42.427 us/op 1.04
transfer serialized Status (84 B) 1.5400 us/op 1.6310 us/op 0.94
copy serialized Status (84 B) 1.4530 us/op 1.7260 us/op 0.84
transfer serialized SignedVoluntaryExit (112 B) 1.8000 us/op 1.9340 us/op 0.93
copy serialized SignedVoluntaryExit (112 B) 1.8050 us/op 1.6820 us/op 1.07
transfer serialized ProposerSlashing (416 B) 2.9260 us/op 2.3970 us/op 1.22
copy serialized ProposerSlashing (416 B) 2.7630 us/op 2.1820 us/op 1.27
transfer serialized Attestation (485 B) 2.5670 us/op 2.0350 us/op 1.26
copy serialized Attestation (485 B) 2.4960 us/op 2.1490 us/op 1.16
transfer serialized AttesterSlashing (33232 B) 3.1080 us/op 2.9410 us/op 1.06
copy serialized AttesterSlashing (33232 B) 11.296 us/op 11.261 us/op 1.00
transfer serialized Small SignedBeaconBlock (128000 B) 3.1840 us/op 4.1890 us/op 0.76
copy serialized Small SignedBeaconBlock (128000 B) 36.096 us/op 35.063 us/op 1.03
transfer serialized Avg SignedBeaconBlock (200000 B) 5.2140 us/op 4.4670 us/op 1.17
copy serialized Avg SignedBeaconBlock (200000 B) 61.165 us/op 55.389 us/op 1.10
transfer serialized BlobsSidecar (524380 B) 5.5710 us/op 6.9590 us/op 0.80
copy serialized BlobsSidecar (524380 B) 146.66 us/op 135.14 us/op 1.09
transfer serialized Big SignedBeaconBlock (1000000 B) 5.7870 us/op 4.4620 us/op 1.30
copy serialized Big SignedBeaconBlock (1000000 B) 294.55 us/op 230.02 us/op 1.28
pass gossip attestations to forkchoice per slot 2.5659 ms/op 2.7300 ms/op 0.94
forkChoice updateHead vc 100000 bc 64 eq 0 395.80 us/op 369.36 us/op 1.07
forkChoice updateHead vc 600000 bc 64 eq 0 2.4151 ms/op 2.6279 ms/op 0.92
forkChoice updateHead vc 1000000 bc 64 eq 0 5.3522 ms/op 6.7902 ms/op 0.79
forkChoice updateHead vc 600000 bc 320 eq 0 4.1686 ms/op 2.5187 ms/op 1.66
forkChoice updateHead vc 600000 bc 1200 eq 0 4.2476 ms/op 2.6678 ms/op 1.59
forkChoice updateHead vc 600000 bc 7200 eq 0 3.8897 ms/op 2.9721 ms/op 1.31
forkChoice updateHead vc 600000 bc 64 eq 1000 10.260 ms/op 9.5756 ms/op 1.07
forkChoice updateHead vc 600000 bc 64 eq 10000 10.253 ms/op 9.8746 ms/op 1.04
forkChoice updateHead vc 600000 bc 64 eq 300000 13.200 ms/op 18.770 ms/op 0.70
computeDeltas 500000 validators 300 proto nodes 3.9802 ms/op 3.6480 ms/op 1.09
computeDeltas 500000 validators 1200 proto nodes 3.7610 ms/op 3.8189 ms/op 0.98
computeDeltas 500000 validators 7200 proto nodes 3.3961 ms/op 4.3604 ms/op 0.78
computeDeltas 750000 validators 300 proto nodes 5.0281 ms/op 8.1972 ms/op 0.61
computeDeltas 750000 validators 1200 proto nodes 4.8932 ms/op 7.6470 ms/op 0.64
computeDeltas 750000 validators 7200 proto nodes 4.9222 ms/op 7.4438 ms/op 0.66
computeDeltas 1400000 validators 300 proto nodes 9.3374 ms/op 13.604 ms/op 0.69
computeDeltas 1400000 validators 1200 proto nodes 9.0333 ms/op 10.865 ms/op 0.83
computeDeltas 1400000 validators 7200 proto nodes 9.4372 ms/op 9.6939 ms/op 0.97
computeDeltas 2100000 validators 300 proto nodes 14.216 ms/op 14.300 ms/op 0.99
computeDeltas 2100000 validators 1200 proto nodes 14.724 ms/op 14.972 ms/op 0.98
computeDeltas 2100000 validators 7200 proto nodes 14.305 ms/op 14.588 ms/op 0.98
altair processAttestation - 250000 vs - 7PWei normalcase 1.4333 ms/op 1.5656 ms/op 0.92
altair processAttestation - 250000 vs - 7PWei worstcase 2.3050 ms/op 2.2509 ms/op 1.02
altair processAttestation - setStatus - 1/6 committees join 73.837 us/op 106.30 us/op 0.69
altair processAttestation - setStatus - 1/3 committees join 151.59 us/op 161.35 us/op 0.94
altair processAttestation - setStatus - 1/2 committees join 222.76 us/op 228.26 us/op 0.98
altair processAttestation - setStatus - 2/3 committees join 297.32 us/op 338.03 us/op 0.88
altair processAttestation - setStatus - 4/5 committees join 465.36 us/op 438.58 us/op 1.06
altair processAttestation - setStatus - 100% committees join 513.41 us/op 609.37 us/op 0.84
altair processBlock - 250000 vs - 7PWei normalcase 5.4818 ms/op 8.9384 ms/op 0.61
altair processBlock - 250000 vs - 7PWei normalcase hashState 22.806 ms/op 33.953 ms/op 0.67
altair processBlock - 250000 vs - 7PWei worstcase 30.467 ms/op 37.384 ms/op 0.81
altair processBlock - 250000 vs - 7PWei worstcase hashState 64.039 ms/op 80.343 ms/op 0.80
phase0 processBlock - 250000 vs - 7PWei normalcase 1.3598 ms/op 2.7263 ms/op 0.50
phase0 processBlock - 250000 vs - 7PWei worstcase 20.577 ms/op 23.718 ms/op 0.87
altair processEth1Data - 250000 vs - 7PWei normalcase 256.30 us/op 281.52 us/op 0.91
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 5.0540 us/op 7.5210 us/op 0.67
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 31.117 us/op 35.891 us/op 0.87
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 9.2520 us/op 12.580 us/op 0.74
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 5.6690 us/op 7.3490 us/op 0.77
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 129.94 us/op 114.21 us/op 1.14
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.3565 ms/op 951.47 us/op 1.43
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.1685 ms/op 1.3221 ms/op 0.88
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.2547 ms/op 1.4282 ms/op 0.88
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.9448 ms/op 3.6779 ms/op 0.80
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.2529 ms/op 1.2584 ms/op 1.00
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 2.9957 ms/op 3.6920 ms/op 0.81
Tree 40 250000 create 177.31 ms/op 249.62 ms/op 0.71
Tree 40 250000 get(125000) 117.13 ns/op 129.59 ns/op 0.90
Tree 40 250000 set(125000) 535.24 ns/op 513.22 ns/op 1.04
Tree 40 250000 toArray() 9.9096 ms/op 11.075 ms/op 0.89
Tree 40 250000 iterate all - toArray() + loop 10.909 ms/op 13.225 ms/op 0.82
Tree 40 250000 iterate all - get(i) 45.478 ms/op 44.951 ms/op 1.01
Array 250000 create 2.3887 ms/op 2.4742 ms/op 0.97
Array 250000 clone - spread 1.2889 ms/op 1.2198 ms/op 1.06
Array 250000 get(125000) 0.59300 ns/op 0.61200 ns/op 0.97
Array 250000 set(125000) 0.59400 ns/op 0.63700 ns/op 0.93
Array 250000 iterate all - loop 78.013 us/op 78.173 us/op 1.00
phase0 afterProcessEpoch - 250000 vs - 7PWei 42.143 ms/op 42.894 ms/op 0.98
Array.fill - length 1000000 2.5493 ms/op 2.8043 ms/op 0.91
Array push - length 1000000 9.5296 ms/op 20.504 ms/op 0.46
Array.get 0.26171 ns/op 0.26678 ns/op 0.98
Uint8Array.get 0.34253 ns/op 0.34157 ns/op 1.00
phase0 beforeProcessEpoch - 250000 vs - 7PWei 14.713 ms/op 21.797 ms/op 0.68
altair processEpoch - mainnet_e81889 286.80 ms/op 273.29 ms/op 1.05
mainnet_e81889 - altair beforeProcessEpoch 18.004 ms/op 19.249 ms/op 0.94
mainnet_e81889 - altair processJustificationAndFinalization 10.560 us/op 6.8290 us/op 1.55
mainnet_e81889 - altair processInactivityUpdates 4.2278 ms/op 4.3352 ms/op 0.98
mainnet_e81889 - altair processRewardsAndPenalties 54.473 ms/op 38.574 ms/op 1.41
mainnet_e81889 - altair processRegistryUpdates 2.0790 us/op 2.5120 us/op 0.83
mainnet_e81889 - altair processSlashings 778.00 ns/op 1.0480 us/op 0.74
mainnet_e81889 - altair processEth1DataReset 770.00 ns/op 1.2730 us/op 0.60
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2924 ms/op 1.2261 ms/op 1.05
mainnet_e81889 - altair processSlashingsReset 2.5150 us/op 4.3860 us/op 0.57
mainnet_e81889 - altair processRandaoMixesReset 4.9640 us/op 5.7210 us/op 0.87
mainnet_e81889 - altair processHistoricalRootsUpdate 871.00 ns/op 981.00 ns/op 0.89
mainnet_e81889 - altair processParticipationFlagUpdates 2.7440 us/op 3.7090 us/op 0.74
mainnet_e81889 - altair processSyncCommitteeUpdates 810.00 ns/op 1.1280 us/op 0.72
mainnet_e81889 - altair afterProcessEpoch 43.564 ms/op 44.263 ms/op 0.98
capella processEpoch - mainnet_e217614 928.32 ms/op 942.05 ms/op 0.99
mainnet_e217614 - capella beforeProcessEpoch 72.868 ms/op 81.398 ms/op 0.90
mainnet_e217614 - capella processJustificationAndFinalization 17.468 us/op 18.569 us/op 0.94
mainnet_e217614 - capella processInactivityUpdates 17.087 ms/op 15.811 ms/op 1.08
mainnet_e217614 - capella processRewardsAndPenalties 241.98 ms/op 223.29 ms/op 1.08
mainnet_e217614 - capella processRegistryUpdates 14.736 us/op 15.860 us/op 0.93
mainnet_e217614 - capella processSlashings 1000.0 ns/op 1.0760 us/op 0.93
mainnet_e217614 - capella processEth1DataReset 822.00 ns/op 1.0130 us/op 0.81
mainnet_e217614 - capella processEffectiveBalanceUpdates 19.927 ms/op 17.041 ms/op 1.17
mainnet_e217614 - capella processSlashingsReset 4.2350 us/op 3.4830 us/op 1.22
mainnet_e217614 - capella processRandaoMixesReset 4.3540 us/op 5.4050 us/op 0.81
mainnet_e217614 - capella processHistoricalRootsUpdate 699.00 ns/op 770.00 ns/op 0.91
mainnet_e217614 - capella processParticipationFlagUpdates 2.2270 us/op 2.5900 us/op 0.86
mainnet_e217614 - capella afterProcessEpoch 104.37 ms/op 105.52 ms/op 0.99
phase0 processEpoch - mainnet_e58758 342.90 ms/op 345.56 ms/op 0.99
mainnet_e58758 - phase0 beforeProcessEpoch 84.048 ms/op 66.591 ms/op 1.26
mainnet_e58758 - phase0 processJustificationAndFinalization 18.644 us/op 18.472 us/op 1.01
mainnet_e58758 - phase0 processRewardsAndPenalties 31.565 ms/op 29.675 ms/op 1.06
mainnet_e58758 - phase0 processRegistryUpdates 10.628 us/op 11.272 us/op 0.94
mainnet_e58758 - phase0 processSlashings 1.0460 us/op 945.00 ns/op 1.11
mainnet_e58758 - phase0 processEth1DataReset 846.00 ns/op 941.00 ns/op 0.90
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 815.38 us/op 924.18 us/op 0.88
mainnet_e58758 - phase0 processSlashingsReset 5.1540 us/op 3.4770 us/op 1.48
mainnet_e58758 - phase0 processRandaoMixesReset 3.9990 us/op 8.2600 us/op 0.48
mainnet_e58758 - phase0 processHistoricalRootsUpdate 884.00 ns/op 1.0800 us/op 0.82
mainnet_e58758 - phase0 processParticipationRecordUpdates 5.1740 us/op 5.1780 us/op 1.00
mainnet_e58758 - phase0 afterProcessEpoch 37.727 ms/op 38.475 ms/op 0.98
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.0697 ms/op 1.1590 ms/op 0.92
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.4063 ms/op 2.5301 ms/op 0.56
altair processInactivityUpdates - 250000 normalcase 16.385 ms/op 16.267 ms/op 1.01
altair processInactivityUpdates - 250000 worstcase 17.531 ms/op 17.281 ms/op 1.01
phase0 processRegistryUpdates - 250000 normalcase 7.9520 us/op 10.874 us/op 0.73
phase0 processRegistryUpdates - 250000 badcase_full_deposits 331.30 us/op 315.77 us/op 1.05
phase0 processRegistryUpdates - 250000 worstcase 0.5 122.39 ms/op 101.05 ms/op 1.21
altair processRewardsAndPenalties - 250000 normalcase 45.637 ms/op 30.925 ms/op 1.48
altair processRewardsAndPenalties - 250000 worstcase 41.252 ms/op 25.466 ms/op 1.62
phase0 getAttestationDeltas - 250000 normalcase 6.7491 ms/op 6.5337 ms/op 1.03
phase0 getAttestationDeltas - 250000 worstcase 6.7240 ms/op 6.2493 ms/op 1.08
phase0 processSlashings - 250000 worstcase 98.691 us/op 96.429 us/op 1.02
altair processSyncCommitteeUpdates - 250000 121.54 ms/op 99.180 ms/op 1.23
BeaconState.hashTreeRoot - No change 595.00 ns/op 497.00 ns/op 1.20
BeaconState.hashTreeRoot - 1 full validator 130.48 us/op 73.029 us/op 1.79
BeaconState.hashTreeRoot - 32 full validator 1.2696 ms/op 739.86 us/op 1.72
BeaconState.hashTreeRoot - 512 full validator 10.287 ms/op 7.4835 ms/op 1.37
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 149.12 us/op 95.370 us/op 1.56
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.8575 ms/op 1.5486 ms/op 1.20
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 18.057 ms/op 26.521 ms/op 0.68
BeaconState.hashTreeRoot - 1 balances 79.599 us/op 97.624 us/op 0.82
BeaconState.hashTreeRoot - 32 balances 764.76 us/op 988.27 us/op 0.77
BeaconState.hashTreeRoot - 512 balances 6.9469 ms/op 7.9641 ms/op 0.87
BeaconState.hashTreeRoot - 250000 balances 149.99 ms/op 217.68 ms/op 0.69
aggregationBits - 2048 els - zipIndexesInBitList 18.978 us/op 21.691 us/op 0.87
byteArrayEquals 32 48.250 ns/op 48.610 ns/op 0.99
Buffer.compare 32 15.422 ns/op 15.943 ns/op 0.97
byteArrayEquals 1024 1.2606 us/op 1.2805 us/op 0.98
Buffer.compare 1024 25.374 ns/op 24.370 ns/op 1.04
byteArrayEquals 16384 19.732 us/op 20.372 us/op 0.97
Buffer.compare 16384 178.33 ns/op 178.10 ns/op 1.00
byteArrayEquals 123687377 154.88 ms/op 155.35 ms/op 1.00
Buffer.compare 123687377 5.2937 ms/op 6.6024 ms/op 0.80
byteArrayEquals 32 - diff last byte 48.517 ns/op 50.211 ns/op 0.97
Buffer.compare 32 - diff last byte 16.310 ns/op 16.226 ns/op 1.01
byteArrayEquals 1024 - diff last byte 1.3282 us/op 1.2938 us/op 1.03
Buffer.compare 1024 - diff last byte 27.403 ns/op 23.519 ns/op 1.17
byteArrayEquals 16384 - diff last byte 20.347 us/op 20.415 us/op 1.00
Buffer.compare 16384 - diff last byte 181.15 ns/op 174.89 ns/op 1.04
byteArrayEquals 123687377 - diff last byte 155.13 ms/op 154.27 ms/op 1.01
Buffer.compare 123687377 - diff last byte 5.7127 ms/op 6.3108 ms/op 0.91
byteArrayEquals 32 - random bytes 5.0650 ns/op 5.0510 ns/op 1.00
Buffer.compare 32 - random bytes 15.970 ns/op 16.066 ns/op 0.99
byteArrayEquals 1024 - random bytes 5.1160 ns/op 5.0180 ns/op 1.02
Buffer.compare 1024 - random bytes 15.849 ns/op 15.869 ns/op 1.00
byteArrayEquals 16384 - random bytes 5.0010 ns/op 5.9650 ns/op 0.84
Buffer.compare 16384 - random bytes 15.822 ns/op 21.301 ns/op 0.74
byteArrayEquals 123687377 - random bytes 7.9400 ns/op 8.1200 ns/op 0.98
Buffer.compare 123687377 - random bytes 18.860 ns/op 19.180 ns/op 0.98
regular array get 100000 times 31.327 us/op 31.130 us/op 1.01
wrappedArray get 100000 times 31.582 us/op 31.350 us/op 1.01
arrayWithProxy get 100000 times 9.8686 ms/op 10.556 ms/op 0.93
ssz.Root.equals 40.268 ns/op 44.584 ns/op 0.90
byteArrayEquals 39.847 ns/op 40.781 ns/op 0.98
Buffer.compare 9.2050 ns/op 9.1950 ns/op 1.00
processSlot - 1 slots 11.680 us/op 14.209 us/op 0.82
processSlot - 32 slots 1.9739 ms/op 2.6804 ms/op 0.74
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 39.952 ms/op 36.650 ms/op 1.09
getCommitteeAssignments - req 1 vs - 250000 vc 2.0979 ms/op 1.7722 ms/op 1.18
getCommitteeAssignments - req 100 vs - 250000 vc 3.6722 ms/op 3.5038 ms/op 1.05
getCommitteeAssignments - req 1000 vs - 250000 vc 3.8898 ms/op 3.7981 ms/op 1.02
findModifiedValidators - 10000 modified validators 231.66 ms/op 250.20 ms/op 0.93
findModifiedValidators - 1000 modified validators 160.98 ms/op 154.05 ms/op 1.04
findModifiedValidators - 100 modified validators 148.35 ms/op 135.32 ms/op 1.10
findModifiedValidators - 10 modified validators 149.48 ms/op 135.86 ms/op 1.10
findModifiedValidators - 1 modified validators 141.74 ms/op 129.12 ms/op 1.10
findModifiedValidators - no difference 131.55 ms/op 146.26 ms/op 0.90
compare ViewDUs 3.2331 s/op 3.5839 s/op 0.90
compare each validator Uint8Array 1.3308 s/op 1.2844 s/op 1.04
compare ViewDU to Uint8Array 775.55 ms/op 915.67 ms/op 0.85
migrate state 1000000 validators, 24 modified, 0 new 639.55 ms/op 631.46 ms/op 1.01
migrate state 1000000 validators, 1700 modified, 1000 new 855.73 ms/op 941.93 ms/op 0.91
migrate state 1000000 validators, 3400 modified, 2000 new 1.0103 s/op 1.0906 s/op 0.93
migrate state 1500000 validators, 24 modified, 0 new 692.77 ms/op 703.47 ms/op 0.98
migrate state 1500000 validators, 1700 modified, 1000 new 870.37 ms/op 844.39 ms/op 1.03
migrate state 1500000 validators, 3400 modified, 2000 new 1.2325 s/op 1.1491 s/op 1.07
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 7.5000 ns/op 6.2600 ns/op 1.20
state getBlockRootAtSlot - 250000 vs - 7PWei 595.47 ns/op 379.61 ns/op 1.57
computeProposers - vc 250000 7.4561 ms/op 5.4440 ms/op 1.37
computeEpochShuffling - vc 250000 38.438 ms/op 36.197 ms/op 1.06
getNextSyncCommittee - vc 250000 114.96 ms/op 100.24 ms/op 1.15
computeSigningRoot for AttestationData 22.629 us/op 23.533 us/op 0.96
hash AttestationData serialized data then Buffer.toString(base64) 1.2406 us/op 1.2191 us/op 1.02
toHexString serialized data 830.71 ns/op 822.45 ns/op 1.01
Buffer.toString(base64) 172.34 ns/op 158.71 ns/op 1.09
nodejs block root to RootHex using toHex 128.20 ns/op 131.80 ns/op 0.97
nodejs block root to RootHex using toRootHex 78.035 ns/op 81.297 ns/op 0.96
browser block root to RootHex using the deprecated toHexString 259.68 ns/op 209.49 ns/op 1.24
browser block root to RootHex using toHex 217.38 ns/op 175.86 ns/op 1.24
browser block root to RootHex using toRootHex 159.03 ns/op 154.85 ns/op 1.03

by benchmarkbot/action

@wemeetagain
Copy link
Member

🎉 This PR is included in v1.23.0 🎉

wemeetagain added a commit that referenced this pull request Dec 20, 2024
* feat: add keymanager endpoint to retrieve proposer config (#7210)

* feat: add keymanager endpoint to retrieve proposer config

* Do not return empty builder config

* Check all builder proposer config values

* Fix settings builder config if undefined

* Fix builder config parsing

* Use ssz type to handle json serialization

Default parsing can't handle BigInt

* Revert "Use ssz type to handle json serialization"

This reverts commit 01fcea7.

* Fix boost factor json serialization

* Remove unused import

* Update test data

* Update proposer config test

* feat: add mekong network option (#7212)

* chore: fix import order with biome syntax (#7211)

Fix import order

* fix: consistently validate pubkey and throw 404 if not found (#7214)

* Throw error if pubkey is unknown when getting graffiti

* Consistently validate pubkey and throw 404 if not found

* fix: only return local keys from /eth/v1/keystores (#7215)

* fix: only return local keys from /eth/v1/keystores

* Fix fetching remote keys in node assertion

* feat: add and use getBlobsV1 to expedite gossip import (#7134)

* hookup the getblobs api to get bob and proof data from el

remove unused

fix import

metrics overhault, test, debugging testing, some feeback

fix

add nethermind bug dicussion link

fix

resolve conflicts

* deblobs timeout

* fix metric

* chore: revert async aggregate with randomness (#7218)

Revert "feat: asyncAggregateWithRandomness (#7204)"

This reverts commit e31d535.

* fix: update config for relaunched mekong network (#7220)

* fix: light client generating `LightClientUpdate` with wrong length of branches (#7187)

* initial commit

* Rewrite SyncCommitteeWitnessRepository

* Fix finality branch

* Update unit test

* fix e2e

* Review PR

---------

Co-authored-by: Nico Flaig <[email protected]>

* fix: archive finalized state when shutting down beacon node (#7221)

* Fix typo

* feat: remove unfinalized pubkey cache (#7230)

* Remove unfinalized pubkey cache

* lint

* Fix unit test

* chore: skip web3_provider unit tests (#7252)

* fix: prune checkpoint states at syncing time (#7241)

* fix: prune checkpoint states at syncing time

* fix: lint

* fix: check-types in test

* fix: sync cached isCompoundingValidatorArr at epoch transition (#7247)

* fix: handle outOfRangeData when range sync Deneb (#7249)

* fix: handle outOfRangeData for beaconBlocksMaybeBlobsByRange()

* fix: lint

* fix: archiveBlocks - handle deneb outOfRangeData block

* fix: sync cached balance when adding new validator to registry (#7255)

* fix: sync cached balance when adding new validator to registry

* chore: add more comments

* fix: remove persisted checkpoint states from the previous run at startup

* fix: do not throw error when trying to prune missing directory (#7257)

* docs: update documentation Oct 2024 (#7178)

* docs update oct 2024 init

* Reconfig quickstart nav and minor fixes

* fix lint

* spelling fixes

* minor fixes and add to wordlist

* prettier fix

* add to wordlist

* sort wordlist

* modify dominance to include lighthouse

* fix typescript casing and add recommendation

* add selection and boost_factor with keymanager notice

* update wordlist

* remove builder enabled and add keymanager api

* spelling

---------

Co-authored-by: Nico Flaig <[email protected]>

* chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /docs (#7268)

Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](moxystudio/node-cross-spawn@v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: add error log to notifier if execution client auth failed (#7239)

* feat: add error log to notifier if execution client auth failed

* Update packages/beacon-node/src/node/notifier.ts

---------

Co-authored-by: NC <[email protected]>

* docs: display rcConfig flag on CLI reference page (#7270)

* docs: display rcConfig flag on CLI reference page

* Update word list

* chore: remove prettier as default formatter for all file types (#7275)

* chore: unhide flags relevant for devnets / testing (#7271)

* feat: debug too many shuffling promises (#7251)

* feat: add asyncShufflingCalculation to StateTransitionOpts

* feat: add asyncShufflingCalculation to all regen / processSlots consumers

* fix: default to false for async shuffling and remove unnecessary props

* fix: remove unnecessary flags from stateTransition

* feat: implement conditional build of shuffling for prepareNextSlot

* fix: spec test bug where shufflingCache is present from BeaconChain constructor

* feat: sync build next shuffling if not queued async

* fix: use getSync to pull next shuffling correctly

* docs: add comment to prepareNextSlot

* refactor: rename StateCloneOpts to StateRegenerationOpts

* feat: pass asyncShufflingCalculation through to afterProcessEpoch and refactor conditional to run purely sync

* docs: add issue number to comment

* chore: lint

* chore: unpin nodejs version from 22.4 (#6982)

* Revert "chore: pin nodejs version to 22.4 (#6964)"

This reverts commit f20484b.

* Don't revert formatting changes

---------

Co-authored-by: Nico Flaig <[email protected]>
Co-authored-by: Cayman <[email protected]>

* chore: update bootnodes file url for holesky and sepolia (#7276)

* feat: add `debug_getHistoricalSummaries` endpoint (#7245)

* feat: add new getHistoricalSummaries endpoint to debug namespace

* Add JSON response

* Restructure to use stateId and add proof to response

* add test scaffolding

* Address feedback

* Move getHistoricalSummaries to lodestar namespace

* add lodestar namespace unit test

* update route name to lodestar namespace

* cast state object as Capella state

* Lint

* json properties need to be lower case

* Make it v1 since it's now part of lodestar namespace

* Group with other /lodestar endpoints

* Simplify beacon node impl

* Rename return type

* Update test description

* Fix variable name

---------

Co-authored-by: Nico Flaig <[email protected]>

* chore: log sync committee signature errors as `error` (#7283)

* fix: update engine_getClientVersionV1 commit encoding (#7282)

* fix: check pubkey or validator index known to a state (#7284)

* fix: check pubkey or validator index known to a state

* chore: add more comments

* feat: lodestar script setup (#7254)

* feat: lodestar_setup

* feat: script_updates + docs

* feat: script_addition_in_docs + command_update

* Remove duplicate script from docs folder

* Minor script updates

* Update script to prepare docs and ignore copied file

* Update installation page

* Wording

---------

Co-authored-by: Nico Flaig <[email protected]>

* feat: add terminal-sized Electra giraffe banner (#7286)

* Create giraffeBanners.ts

* Wire in banner

* Fix file name

* lint

* Address @nflaig's comment

---------

Co-authored-by: NC <[email protected]>

* chore: pin nodejs version to 22.4 (#7291)

Revert "chore: unpin nodejs version from 22.4 (#6982)"

This reverts commit 69ae688.

* feat: expose `DOMAIN_APPLICATION_MASK` in config/spec api (#7296)

* feat: expose DOMAIN_APPLICATION_MASK in config/spec api

* Lint

* feat: make `MAX_REQUEST_BLOB_SIDECARS` and `MAX_BLOBS_PER_BLOCK` configurable (#7294)

* Init commit

* Fix check-types

* Add comment on how MAX_REQUEST_BLOB_SIDECARS is calculated

* Ensure proper config object is passed

* Address comment

---------

Co-authored-by: Nico Flaig <[email protected]>

* feat: use `BLOB_SIDECAR_SUBNET_COUNT` to configure blob subnets (#7297)

feat: use BLOB_SIDECAR_SUBNET_COUNT to configure blob subnets

* chore: log sync aggregate participants when producing beacon block body (#7300)

* chore: log sync aggregate participants when producing beacon block body

* Use isForkLightClient instead of ForkSeq

* Fix produce block unit tests

* chore: print graffiti when producing beacon block body (#7303)

* fix: warn if engine / builder failed to produce block within cutoff time (#7305)

* feat: add kzg commitment length check when validating gossip blocks (#7302)

* feat: add blob sidecar index check (#7313)

Validate blobSidecar index

* fix: fix blob sidecar index check (#7315)

Fix index check

* chore: fix format of printed graffiti from hex to utf-8 (#7306)

* chore: fix format of printed graffiti from hex to utf-8

* Use Buffer.from no copy with offset

* docs: batch commit typos and update contributor readme (#7312)

* batch commit typos and update contributor readme

* update donation text

Co-authored-by: Nico Flaig <[email protected]>

* correct spelling

Co-authored-by: Nico Flaig <[email protected]>

---------

Co-authored-by: Nico Flaig <[email protected]>

* chore: remove trailing null bytes from printed graffiti (#7320)

* chore: remove trailing null bytes from printed graffiti

* Use replaceAll instead of regex

* chore: unpin nodejs version from 22.4 (#7324)

Revert "chore: pin nodejs version to 22.4 (#7291)"

This reverts commit 99794d3.

* chore: bump package versions to 1.24.0

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Nico Flaig <[email protected]>
Co-authored-by: Nazar Hussain <[email protected]>
Co-authored-by: g11tech <[email protected]>
Co-authored-by: Matthew Keil <[email protected]>
Co-authored-by: NC <[email protected]>
Co-authored-by: twoeths <[email protected]>
Co-authored-by: Phil Ngo <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: acolytec3 <[email protected]>
Co-authored-by: Varun Guleria <[email protected]>
Co-authored-by: ClockworkYuzu <[email protected]>
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.24.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.

3 participants