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 🎉

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