-
-
Notifications
You must be signed in to change notification settings - Fork 300
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
Codecov ReportAll modified and coverable lines are covered by tests ✅
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 |
|
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
🎉 This PR is included in v1.23.0 🎉 |
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.