Skip to content

fix: ignore stale keystore lockfiles - #6363

Merged
wemeetagain merged 3 commits into
unstablefrom
nflaig/proper-lockfile
Jan 29, 2024
Merged

fix: ignore stale keystore lockfiles#6363
wemeetagain merged 3 commits into
unstablefrom
nflaig/proper-lockfile

Conversation

@nflaig

@nflaig nflaig commented Jan 28, 2024

Copy link
Copy Markdown
Member

Motivation

Current keystore lockfile handling is not ideal as any unclean shutdown (e.g. due to power loss) will prevent the validator client from starting as .lock files are not cleaned up.

The lockfile package we currently use is also already deprecated since Aug 11, 2021

Description

  • Replaces lockfile with proper-lockfile package, as the name implies, it's done properly now :)
  • The notable difference is that lockfiles will be considered stale after 10 seconds if process is not running
  • More user friendly message if lockfile for keystore (or other file) already exists

const lockFile: Lockfile = (await import("lockfile")) as Lockfile;

function getLockFilepath(filepath: string): string {
return `${filepath}.lock`;

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

No longer required as proper-lockfile adds this extension by default, see lib/lockfile.js#L12

Comment on lines -13 to -15
* When lockfile is imported, it registers listeners to process
* Since it's only used by the validator client, require lazily to not pollute
* beacon_node client context

@nflaig nflaig Jan 28, 2024

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This statement was no longer true since the migration to ESM in #3978. It was also already noted in #3978 (comment) but having async file locking causes a bunch of upstream issues.

@nflaig
nflaig marked this pull request as ready for review January 28, 2024 16:45
@nflaig
nflaig requested a review from a team as a code owner January 28, 2024 16:45
@codecov

codecov Bot commented Jan 28, 2024

Copy link
Copy Markdown

Codecov Report

Merging #6363 (653a07d) into unstable (6adbd27) will increase coverage by 0.00%.
The diff coverage is n/a.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6363   +/-   ##
=========================================
  Coverage     60.14%   60.14%           
=========================================
  Files           407      407           
  Lines         46486    46494    +8     
  Branches       1545     1548    +3     
=========================================
+ Hits          27957    27962    +5     
- Misses        18497    18500    +3     
  Partials         32       32           

@github-actions

github-actions Bot commented Jan 28, 2024

Copy link
Copy Markdown
Contributor

Performance Report

鉁旓笍 no performance regression detected

Full benchmark results
Benchmark suite Current: d77a705 Previous: 6adbd27 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 680.70 us/op 878.16 us/op 0.78
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 51.531 us/op 83.254 us/op 0.62
BLS verify - blst-native 1.0828 ms/op 1.3080 ms/op 0.83
BLS verifyMultipleSignatures 3 - blst-native 2.3114 ms/op 2.7450 ms/op 0.84
BLS verifyMultipleSignatures 8 - blst-native 5.1201 ms/op 6.0248 ms/op 0.85
BLS verifyMultipleSignatures 32 - blst-native 18.802 ms/op 22.013 ms/op 0.85
BLS verifyMultipleSignatures 64 - blst-native 37.059 ms/op 43.351 ms/op 0.85
BLS verifyMultipleSignatures 128 - blst-native 73.549 ms/op 86.605 ms/op 0.85
BLS deserializing 10000 signatures 794.43 ms/op 935.39 ms/op 0.85
BLS deserializing 100000 signatures 8.0514 s/op 9.4435 s/op 0.85
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.0681 ms/op 1.3309 ms/op 0.80
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.2094 ms/op 1.5029 ms/op 0.80
BLS verifyMultipleSignatures - same message - 32 - blst-native 1.8930 ms/op 2.9938 ms/op 0.63
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.6508 ms/op 4.7075 ms/op 0.78
BLS verifyMultipleSignatures - same message - 128 - blst-native 4.9337 ms/op 5.6641 ms/op 0.87
BLS aggregatePubkeys 32 - blst-native 21.645 us/op 26.005 us/op 0.83
BLS aggregatePubkeys 128 - blst-native 87.086 us/op 101.67 us/op 0.86
getAttestationsForBlock 35.063 ms/op 44.473 ms/op 0.79
getSlashingsAndExits - default max 78.384 us/op 172.50 us/op 0.45
getSlashingsAndExits - 2k 334.03 us/op 378.69 us/op 0.88
proposeBlockBody type=full, size=empty 3.9181 ms/op 6.0230 ms/op 0.65
isKnown best case - 1 super set check 335.00 ns/op 312.00 ns/op 1.07
isKnown normal case - 2 super set checks 334.00 ns/op 300.00 ns/op 1.11
isKnown worse case - 16 super set checks 315.00 ns/op 297.00 ns/op 1.06
CheckpointStateCache - add get delete 4.0310 us/op 5.4400 us/op 0.74
validate api signedAggregateAndProof - struct 2.3980 ms/op 2.9528 ms/op 0.81
validate gossip signedAggregateAndProof - struct 2.3438 ms/op 2.9471 ms/op 0.80
validate gossip attestation - vc 640000 1.1286 ms/op 1.4288 ms/op 0.79
batch validate gossip attestation - vc 640000 - chunk 32 140.15 us/op 164.01 us/op 0.85
batch validate gossip attestation - vc 640000 - chunk 64 125.32 us/op 144.18 us/op 0.87
batch validate gossip attestation - vc 640000 - chunk 128 117.38 us/op 133.63 us/op 0.88
batch validate gossip attestation - vc 640000 - chunk 256 112.98 us/op 135.35 us/op 0.83
pickEth1Vote - no votes 868.74 us/op 1.2393 ms/op 0.70
pickEth1Vote - max votes 8.6127 ms/op 9.8853 ms/op 0.87
pickEth1Vote - Eth1Data hashTreeRoot value x2048 12.103 ms/op 19.197 ms/op 0.63
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 13.861 ms/op 25.707 ms/op 0.54
pickEth1Vote - Eth1Data fastSerialize value x2048 435.20 us/op 610.02 us/op 0.71
pickEth1Vote - Eth1Data fastSerialize tree x2048 3.1247 ms/op 7.0936 ms/op 0.44
bytes32 toHexString 440.00 ns/op 530.00 ns/op 0.83
bytes32 Buffer.toString(hex) 298.00 ns/op 306.00 ns/op 0.97
bytes32 Buffer.toString(hex) from Uint8Array 407.00 ns/op 437.00 ns/op 0.93
bytes32 Buffer.toString(hex) + 0x 298.00 ns/op 310.00 ns/op 0.96
Object access 1 prop 0.19100 ns/op 0.16600 ns/op 1.15
Map access 1 prop 0.18900 ns/op 0.15900 ns/op 1.19
Object get x1000 5.6420 ns/op 8.2490 ns/op 0.68
Map get x1000 0.71100 ns/op 0.78600 ns/op 0.90
Object set x1000 27.592 ns/op 51.600 ns/op 0.53
Map set x1000 16.929 ns/op 40.171 ns/op 0.42
Return object 10000 times 0.22550 ns/op 0.23890 ns/op 0.94
Throw Error 10000 times 2.7153 us/op 3.9547 us/op 0.69
fastMsgIdFn sha256 / 200 bytes 1.9200 us/op 3.4140 us/op 0.56
fastMsgIdFn h32 xxhash / 200 bytes 279.00 ns/op 297.00 ns/op 0.94
fastMsgIdFn h64 xxhash / 200 bytes 333.00 ns/op 355.00 ns/op 0.94
fastMsgIdFn sha256 / 1000 bytes 6.2350 us/op 11.884 us/op 0.52
fastMsgIdFn h32 xxhash / 1000 bytes 395.00 ns/op 432.00 ns/op 0.91
fastMsgIdFn h64 xxhash / 1000 bytes 394.00 ns/op 440.00 ns/op 0.90
fastMsgIdFn sha256 / 10000 bytes 52.812 us/op 109.11 us/op 0.48
fastMsgIdFn h32 xxhash / 10000 bytes 1.7680 us/op 1.9330 us/op 0.91
fastMsgIdFn h64 xxhash / 10000 bytes 1.2070 us/op 1.3310 us/op 0.91
send data - 1000 256B messages 9.9788 ms/op 19.923 ms/op 0.50
send data - 1000 512B messages 14.185 ms/op 27.585 ms/op 0.51
send data - 1000 1024B messages 26.639 ms/op 43.567 ms/op 0.61
send data - 1000 1200B messages 28.907 ms/op 40.588 ms/op 0.71
send data - 1000 2048B messages 38.091 ms/op 50.858 ms/op 0.75
send data - 1000 4096B messages 31.425 ms/op 45.578 ms/op 0.69
send data - 1000 16384B messages 89.648 ms/op 121.66 ms/op 0.74
send data - 1000 65536B messages 403.19 ms/op 574.28 ms/op 0.70
enrSubnets - fastDeserialize 64 bits 892.00 ns/op 1.3220 us/op 0.67
enrSubnets - ssz BitVector 64 bits 407.00 ns/op 425.00 ns/op 0.96
enrSubnets - fastDeserialize 4 bits 186.00 ns/op 172.00 ns/op 1.08
enrSubnets - ssz BitVector 4 bits 411.00 ns/op 430.00 ns/op 0.96
prioritizePeers score -10:0 att 32-0.1 sync 2-0 64.475 us/op 104.98 us/op 0.61
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 77.681 us/op 130.94 us/op 0.59
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 108.59 us/op 167.42 us/op 0.65
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 174.61 us/op 298.24 us/op 0.59
prioritizePeers score 0:0 att 64-1 sync 4-1 197.46 us/op 355.18 us/op 0.56
array of 16000 items push then shift 1.1964 us/op 1.6358 us/op 0.73
LinkedList of 16000 items push then shift 6.6720 ns/op 9.2780 ns/op 0.72
array of 16000 items push then pop 56.948 ns/op 78.620 ns/op 0.72
LinkedList of 16000 items push then pop 5.5340 ns/op 8.8940 ns/op 0.62
array of 24000 items push then shift 1.7590 us/op 2.3994 us/op 0.73
LinkedList of 24000 items push then shift 6.3210 ns/op 9.0110 ns/op 0.70
array of 24000 items push then pop 87.807 ns/op 103.48 ns/op 0.85
LinkedList of 24000 items push then pop 5.4930 ns/op 9.3180 ns/op 0.59
intersect bitArray bitLen 8 4.7200 ns/op 7.0040 ns/op 0.67
intersect array and set length 8 45.907 ns/op 66.413 ns/op 0.69
intersect bitArray bitLen 128 26.302 ns/op 37.320 ns/op 0.70
intersect array and set length 128 645.28 ns/op 918.25 ns/op 0.70
bitArray.getTrueBitIndexes() bitLen 128 1.1460 us/op 1.5720 us/op 0.73
bitArray.getTrueBitIndexes() bitLen 248 1.8710 us/op 2.5570 us/op 0.73
bitArray.getTrueBitIndexes() bitLen 512 3.5700 us/op 4.9760 us/op 0.72
Buffer.concat 32 items 867.00 ns/op 1.0490 us/op 0.83
Uint8Array.set 32 items 2.1920 us/op 2.0010 us/op 1.10
Set add up to 64 items then delete first 1.7225 us/op 4.4192 us/op 0.39
OrderedSet add up to 64 items then delete first 2.6112 us/op 5.6639 us/op 0.46
Set add up to 64 items then delete last 1.9501 us/op 4.8273 us/op 0.40
OrderedSet add up to 64 items then delete last 2.8931 us/op 6.0377 us/op 0.48
Set add up to 64 items then delete middle 1.9380 us/op 4.7841 us/op 0.41
OrderedSet add up to 64 items then delete middle 4.0791 us/op 7.4237 us/op 0.55
Set add up to 128 items then delete first 3.7956 us/op 9.6600 us/op 0.39
OrderedSet add up to 128 items then delete first 5.9589 us/op 12.773 us/op 0.47
Set add up to 128 items then delete last 3.7067 us/op 9.5134 us/op 0.39
OrderedSet add up to 128 items then delete last 5.5934 us/op 12.143 us/op 0.46
Set add up to 128 items then delete middle 3.7066 us/op 9.5494 us/op 0.39
OrderedSet add up to 128 items then delete middle 10.396 us/op 18.053 us/op 0.58
Set add up to 256 items then delete first 7.3744 us/op 19.338 us/op 0.38
OrderedSet add up to 256 items then delete first 11.727 us/op 26.217 us/op 0.45
Set add up to 256 items then delete last 7.2560 us/op 18.805 us/op 0.39
OrderedSet add up to 256 items then delete last 11.112 us/op 24.170 us/op 0.46
Set add up to 256 items then delete middle 7.3017 us/op 18.901 us/op 0.39
OrderedSet add up to 256 items then delete middle 29.714 us/op 47.923 us/op 0.62
transfer serialized Status (84 B) 1.2550 us/op 1.7620 us/op 0.71
copy serialized Status (84 B) 1.0250 us/op 1.2770 us/op 0.80
transfer serialized SignedVoluntaryExit (112 B) 1.3120 us/op 1.8600 us/op 0.71
copy serialized SignedVoluntaryExit (112 B) 1.1620 us/op 1.3900 us/op 0.84
transfer serialized ProposerSlashing (416 B) 1.6690 us/op 2.3750 us/op 0.70
copy serialized ProposerSlashing (416 B) 1.7280 us/op 2.2050 us/op 0.78
transfer serialized Attestation (485 B) 2.4030 us/op 2.3980 us/op 1.00
copy serialized Attestation (485 B) 1.9020 us/op 2.0450 us/op 0.93
transfer serialized AttesterSlashing (33232 B) 1.4440 us/op 2.6180 us/op 0.55
copy serialized AttesterSlashing (33232 B) 4.0870 us/op 5.5440 us/op 0.74
transfer serialized Small SignedBeaconBlock (128000 B) 2.1140 us/op 2.9580 us/op 0.71
copy serialized Small SignedBeaconBlock (128000 B) 8.5620 us/op 13.642 us/op 0.63
transfer serialized Avg SignedBeaconBlock (200000 B) 2.3200 us/op 2.9110 us/op 0.80
copy serialized Avg SignedBeaconBlock (200000 B) 13.480 us/op 21.188 us/op 0.64
transfer serialized BlobsSidecar (524380 B) 2.2110 us/op 3.0900 us/op 0.72
copy serialized BlobsSidecar (524380 B) 75.895 us/op 92.866 us/op 0.82
transfer serialized Big SignedBeaconBlock (1000000 B) 2.4010 us/op 3.0200 us/op 0.80
copy serialized Big SignedBeaconBlock (1000000 B) 142.52 us/op 184.15 us/op 0.77
pass gossip attestations to forkchoice per slot 2.6246 ms/op 3.9770 ms/op 0.66
forkChoice updateHead vc 100000 bc 64 eq 0 438.23 us/op 710.17 us/op 0.62
forkChoice updateHead vc 600000 bc 64 eq 0 2.7829 ms/op 4.2355 ms/op 0.66
forkChoice updateHead vc 1000000 bc 64 eq 0 4.3819 ms/op 7.1898 ms/op 0.61
forkChoice updateHead vc 600000 bc 320 eq 0 2.5492 ms/op 4.6607 ms/op 0.55
forkChoice updateHead vc 600000 bc 1200 eq 0 2.6713 ms/op 4.5316 ms/op 0.59
forkChoice updateHead vc 600000 bc 7200 eq 0 3.2744 ms/op 5.5304 ms/op 0.59
forkChoice updateHead vc 600000 bc 64 eq 1000 9.6601 ms/op 11.529 ms/op 0.84
forkChoice updateHead vc 600000 bc 64 eq 10000 9.5161 ms/op 12.352 ms/op 0.77
forkChoice updateHead vc 600000 bc 64 eq 300000 11.695 ms/op 16.453 ms/op 0.71
computeDeltas 500000 validators 300 proto nodes 2.9956 ms/op 6.7701 ms/op 0.44
computeDeltas 500000 validators 1200 proto nodes 2.9070 ms/op 6.8822 ms/op 0.42
computeDeltas 500000 validators 7200 proto nodes 2.8747 ms/op 6.8238 ms/op 0.42
computeDeltas 750000 validators 300 proto nodes 4.4700 ms/op 10.244 ms/op 0.44
computeDeltas 750000 validators 1200 proto nodes 4.5163 ms/op 10.287 ms/op 0.44
computeDeltas 750000 validators 7200 proto nodes 4.5587 ms/op 10.215 ms/op 0.45
computeDeltas 1400000 validators 300 proto nodes 8.8218 ms/op 20.270 ms/op 0.44
computeDeltas 1400000 validators 1200 proto nodes 8.7769 ms/op 19.965 ms/op 0.44
computeDeltas 1400000 validators 7200 proto nodes 8.9193 ms/op 20.593 ms/op 0.43
computeDeltas 2100000 validators 300 proto nodes 13.665 ms/op 30.796 ms/op 0.44
computeDeltas 2100000 validators 1200 proto nodes 12.839 ms/op 31.612 ms/op 0.41
computeDeltas 2100000 validators 7200 proto nodes 12.973 ms/op 32.335 ms/op 0.40
altair processAttestation - 250000 vs - 7PWei normalcase 1.6465 ms/op 2.2035 ms/op 0.75
altair processAttestation - 250000 vs - 7PWei worstcase 2.3738 ms/op 3.2616 ms/op 0.73
altair processAttestation - setStatus - 1/6 committees join 101.22 us/op 184.26 us/op 0.55
altair processAttestation - setStatus - 1/3 committees join 189.50 us/op 356.82 us/op 0.53
altair processAttestation - setStatus - 1/2 committees join 282.51 us/op 480.41 us/op 0.59
altair processAttestation - setStatus - 2/3 committees join 364.10 us/op 659.44 us/op 0.55
altair processAttestation - setStatus - 4/5 committees join 484.73 us/op 926.79 us/op 0.52
altair processAttestation - setStatus - 100% committees join 578.32 us/op 940.48 us/op 0.61
altair processBlock - 250000 vs - 7PWei normalcase 7.9364 ms/op 10.354 ms/op 0.77
altair processBlock - 250000 vs - 7PWei normalcase hashState 27.637 ms/op 36.345 ms/op 0.76
altair processBlock - 250000 vs - 7PWei worstcase 32.076 ms/op 46.172 ms/op 0.69
altair processBlock - 250000 vs - 7PWei worstcase hashState 75.591 ms/op 97.346 ms/op 0.78
phase0 processBlock - 250000 vs - 7PWei normalcase 2.2788 ms/op 2.5078 ms/op 0.91
phase0 processBlock - 250000 vs - 7PWei worstcase 23.560 ms/op 29.565 ms/op 0.80
altair processEth1Data - 250000 vs - 7PWei normalcase 356.47 us/op 595.05 us/op 0.60
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 8.5590 us/op 9.8350 us/op 0.87
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 27.613 us/op 56.910 us/op 0.49
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 17.791 us/op 15.160 us/op 1.17
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 9.8650 us/op 7.0760 us/op 1.39
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 159.47 us/op 160.57 us/op 0.99
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.0734 ms/op 1.0653 ms/op 1.01
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.6280 ms/op 1.4848 ms/op 1.10
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.4001 ms/op 1.4638 ms/op 0.96
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.0934 ms/op 3.9414 ms/op 0.53
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.4343 ms/op 2.5026 ms/op 0.57
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.4724 ms/op 5.1831 ms/op 0.67
Tree 40 250000 create 260.88 ms/op 358.23 ms/op 0.73
Tree 40 250000 get(125000) 106.24 ns/op 210.69 ns/op 0.50
Tree 40 250000 set(125000) 779.24 ns/op 1.0272 us/op 0.76
Tree 40 250000 toArray() 15.840 ms/op 18.451 ms/op 0.86
Tree 40 250000 iterate all - toArray() + loop 15.632 ms/op 18.580 ms/op 0.84
Tree 40 250000 iterate all - get(i) 39.087 ms/op 66.137 ms/op 0.59
MutableVector 250000 create 10.056 ms/op 14.343 ms/op 0.70
MutableVector 250000 get(125000) 5.5930 ns/op 6.6820 ns/op 0.84
MutableVector 250000 set(125000) 199.70 ns/op 272.90 ns/op 0.73
MutableVector 250000 toArray() 2.2206 ms/op 3.2440 ms/op 0.68
MutableVector 250000 iterate all - toArray() + loop 2.4339 ms/op 3.5392 ms/op 0.69
MutableVector 250000 iterate all - get(i) 1.3139 ms/op 1.5922 ms/op 0.83
Array 250000 create 2.2186 ms/op 2.8882 ms/op 0.77
Array 250000 clone - spread 1.1002 ms/op 1.4446 ms/op 0.76
Array 250000 get(125000) 0.98000 ns/op 1.2660 ns/op 0.77
Array 250000 set(125000) 1.1720 ns/op 4.6000 ns/op 0.25
Array 250000 iterate all - loop 145.25 us/op 193.91 us/op 0.75
effectiveBalanceIncrements clone Uint8Array 300000 19.756 us/op 31.810 us/op 0.62
effectiveBalanceIncrements clone MutableVector 300000 386.00 ns/op 467.00 ns/op 0.83
effectiveBalanceIncrements rw all Uint8Array 300000 174.96 us/op 236.87 us/op 0.74
effectiveBalanceIncrements rw all MutableVector 300000 65.548 ms/op 96.629 ms/op 0.68
phase0 afterProcessEpoch - 250000 vs - 7PWei 72.350 ms/op 128.43 ms/op 0.56
phase0 beforeProcessEpoch - 250000 vs - 7PWei 42.063 ms/op 53.022 ms/op 0.79
altair processEpoch - mainnet_e81889 417.26 ms/op 518.76 ms/op 0.80
mainnet_e81889 - altair beforeProcessEpoch 67.045 ms/op 84.593 ms/op 0.79
mainnet_e81889 - altair processJustificationAndFinalization 10.473 us/op 15.683 us/op 0.67
mainnet_e81889 - altair processInactivityUpdates 4.9008 ms/op 6.1318 ms/op 0.80
mainnet_e81889 - altair processRewardsAndPenalties 60.774 ms/op 62.464 ms/op 0.97
mainnet_e81889 - altair processRegistryUpdates 1.6800 us/op 2.6340 us/op 0.64
mainnet_e81889 - altair processSlashings 612.00 ns/op 471.00 ns/op 1.30
mainnet_e81889 - altair processEth1DataReset 588.00 ns/op 532.00 ns/op 1.11
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.7639 ms/op 1.3789 ms/op 1.28
mainnet_e81889 - altair processSlashingsReset 2.2750 us/op 3.6460 us/op 0.62
mainnet_e81889 - altair processRandaoMixesReset 3.5860 us/op 4.1450 us/op 0.87
mainnet_e81889 - altair processHistoricalRootsUpdate 414.00 ns/op 1.0360 us/op 0.40
mainnet_e81889 - altair processParticipationFlagUpdates 1.7150 us/op 1.8650 us/op 0.92
mainnet_e81889 - altair processSyncCommitteeUpdates 583.00 ns/op 617.00 ns/op 0.94
mainnet_e81889 - altair afterProcessEpoch 75.120 ms/op 129.63 ms/op 0.58
capella processEpoch - mainnet_e217614 1.6680 s/op 2.2383 s/op 0.75
mainnet_e217614 - capella beforeProcessEpoch 425.65 ms/op 494.08 ms/op 0.86
mainnet_e217614 - capella processJustificationAndFinalization 11.513 us/op 15.070 us/op 0.76
mainnet_e217614 - capella processInactivityUpdates 13.585 ms/op 20.067 ms/op 0.68
mainnet_e217614 - capella processRewardsAndPenalties 330.50 ms/op 422.29 ms/op 0.78
mainnet_e217614 - capella processRegistryUpdates 29.642 us/op 19.229 us/op 1.54
mainnet_e217614 - capella processSlashings 818.00 ns/op 585.00 ns/op 1.40
mainnet_e217614 - capella processEth1DataReset 753.00 ns/op 468.00 ns/op 1.61
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.4037 ms/op 4.7763 ms/op 0.92
mainnet_e217614 - capella processSlashingsReset 2.6680 us/op 3.7200 us/op 0.72
mainnet_e217614 - capella processRandaoMixesReset 4.0730 us/op 4.7700 us/op 0.85
mainnet_e217614 - capella processHistoricalRootsUpdate 688.00 ns/op 663.00 ns/op 1.04
mainnet_e217614 - capella processParticipationFlagUpdates 1.2850 us/op 1.9050 us/op 0.67
mainnet_e217614 - capella afterProcessEpoch 214.04 ms/op 323.34 ms/op 0.66
phase0 processEpoch - mainnet_e58758 407.34 ms/op 459.94 ms/op 0.89
mainnet_e58758 - phase0 beforeProcessEpoch 140.98 ms/op 147.77 ms/op 0.95
mainnet_e58758 - phase0 processJustificationAndFinalization 14.220 us/op 15.366 us/op 0.93
mainnet_e58758 - phase0 processRewardsAndPenalties 43.703 ms/op 53.852 ms/op 0.81
mainnet_e58758 - phase0 processRegistryUpdates 10.386 us/op 9.1680 us/op 1.13
mainnet_e58758 - phase0 processSlashings 609.00 ns/op 623.00 ns/op 0.98
mainnet_e58758 - phase0 processEth1DataReset 530.00 ns/op 448.00 ns/op 1.18
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.4572 ms/op 1.1288 ms/op 1.29
mainnet_e58758 - phase0 processSlashingsReset 3.1750 us/op 2.7130 us/op 1.17
mainnet_e58758 - phase0 processRandaoMixesReset 4.2510 us/op 4.1010 us/op 1.04
mainnet_e58758 - phase0 processHistoricalRootsUpdate 526.00 ns/op 432.00 ns/op 1.22
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.3580 us/op 3.9980 us/op 0.84
mainnet_e58758 - phase0 afterProcessEpoch 62.514 ms/op 104.94 ms/op 0.60
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.0040 ms/op 1.3876 ms/op 0.72
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.1136 ms/op 1.4292 ms/op 0.78
altair processInactivityUpdates - 250000 normalcase 24.596 ms/op 21.032 ms/op 1.17
altair processInactivityUpdates - 250000 worstcase 25.425 ms/op 21.931 ms/op 1.16
phase0 processRegistryUpdates - 250000 normalcase 8.1600 us/op 8.2060 us/op 0.99
phase0 processRegistryUpdates - 250000 badcase_full_deposits 397.96 us/op 311.41 us/op 1.28
phase0 processRegistryUpdates - 250000 worstcase 0.5 123.69 ms/op 145.39 ms/op 0.85
altair processRewardsAndPenalties - 250000 normalcase 55.477 ms/op 58.265 ms/op 0.95
altair processRewardsAndPenalties - 250000 worstcase 45.190 ms/op 58.078 ms/op 0.78
phase0 getAttestationDeltas - 250000 normalcase 5.8344 ms/op 9.3345 ms/op 0.63
phase0 getAttestationDeltas - 250000 worstcase 9.2025 ms/op 9.3447 ms/op 0.98
phase0 processSlashings - 250000 worstcase 87.882 us/op 84.376 us/op 1.04
altair processSyncCommitteeUpdates - 250000 104.43 ms/op 152.35 ms/op 0.69
BeaconState.hashTreeRoot - No change 437.00 ns/op 385.00 ns/op 1.14
BeaconState.hashTreeRoot - 1 full validator 125.34 us/op 135.38 us/op 0.93
BeaconState.hashTreeRoot - 32 full validator 1.3957 ms/op 1.3947 ms/op 1.00
BeaconState.hashTreeRoot - 512 full validator 15.430 ms/op 14.523 ms/op 1.06
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 144.03 us/op 172.59 us/op 0.83
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.3808 ms/op 2.5497 ms/op 0.93
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 30.834 ms/op 34.243 ms/op 0.90
BeaconState.hashTreeRoot - 1 balances 150.48 us/op 140.03 us/op 1.07
BeaconState.hashTreeRoot - 32 balances 881.76 us/op 1.3222 ms/op 0.67
BeaconState.hashTreeRoot - 512 balances 9.1141 ms/op 11.580 ms/op 0.79
BeaconState.hashTreeRoot - 250000 balances 149.91 ms/op 208.97 ms/op 0.72
aggregationBits - 2048 els - zipIndexesInBitList 10.303 us/op 17.441 us/op 0.59
byteArrayEquals 32 64.320 ns/op 84.475 ns/op 0.76
Buffer.compare 32 37.855 ns/op 63.893 ns/op 0.59
byteArrayEquals 1024 1.7470 us/op 2.3134 us/op 0.76
Buffer.compare 1024 43.933 ns/op 78.348 ns/op 0.56
byteArrayEquals 16384 27.830 us/op 36.617 us/op 0.76
Buffer.compare 16384 224.38 ns/op 299.35 ns/op 0.75
byteArrayEquals 123687377 202.58 ms/op 250.84 ms/op 0.81
Buffer.compare 123687377 6.4319 ms/op 6.0697 ms/op 1.06
byteArrayEquals 32 - diff last byte 59.808 ns/op 73.623 ns/op 0.81
Buffer.compare 32 - diff last byte 36.863 ns/op 66.627 ns/op 0.55
byteArrayEquals 1024 - diff last byte 1.6704 us/op 2.2182 us/op 0.75
Buffer.compare 1024 - diff last byte 42.103 ns/op 77.404 ns/op 0.54
byteArrayEquals 16384 - diff last byte 26.508 us/op 35.329 us/op 0.75
Buffer.compare 16384 - diff last byte 197.64 ns/op 252.87 ns/op 0.78
byteArrayEquals 123687377 - diff last byte 208.68 ms/op 263.93 ms/op 0.79
Buffer.compare 123687377 - diff last byte 4.8520 ms/op 6.3239 ms/op 0.77
byteArrayEquals 32 - random bytes 4.7120 ns/op 5.6040 ns/op 0.84
Buffer.compare 32 - random bytes 39.345 ns/op 65.095 ns/op 0.60
byteArrayEquals 1024 - random bytes 4.3850 ns/op 5.4870 ns/op 0.80
Buffer.compare 1024 - random bytes 37.144 ns/op 63.869 ns/op 0.58
byteArrayEquals 16384 - random bytes 4.4270 ns/op 5.4590 ns/op 0.81
Buffer.compare 16384 - random bytes 37.511 ns/op 64.328 ns/op 0.58
byteArrayEquals 123687377 - random bytes 7.0700 ns/op 8.7800 ns/op 0.81
Buffer.compare 123687377 - random bytes 43.030 ns/op 67.610 ns/op 0.64
regular array get 100000 times 41.507 us/op 46.406 us/op 0.89
wrappedArray get 100000 times 41.580 us/op 46.335 us/op 0.90
arrayWithProxy get 100000 times 10.462 ms/op 15.542 ms/op 0.67
ssz.Root.equals 54.593 ns/op 57.421 ns/op 0.95
byteArrayEquals 54.003 ns/op 56.420 ns/op 0.96
Buffer.compare 9.6410 ns/op 11.674 ns/op 0.83
shuffle list - 16384 els 4.6700 ms/op 7.4414 ms/op 0.63
shuffle list - 250000 els 68.602 ms/op 114.09 ms/op 0.60
processSlot - 1 slots 13.068 us/op 17.876 us/op 0.73
processSlot - 32 slots 2.0813 ms/op 3.6131 ms/op 0.58
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 41.039 ms/op 59.843 ms/op 0.69
getCommitteeAssignments - req 1 vs - 250000 vc 2.2174 ms/op 2.5944 ms/op 0.85
getCommitteeAssignments - req 100 vs - 250000 vc 3.3472 ms/op 3.7729 ms/op 0.89
getCommitteeAssignments - req 1000 vs - 250000 vc 3.6001 ms/op 4.1558 ms/op 0.87
findModifiedValidators - 10000 modified validators 403.80 ms/op 601.89 ms/op 0.67
findModifiedValidators - 1000 modified validators 318.45 ms/op 505.40 ms/op 0.63
findModifiedValidators - 100 modified validators 267.51 ms/op 472.83 ms/op 0.57
findModifiedValidators - 10 modified validators 303.14 ms/op 478.87 ms/op 0.63
findModifiedValidators - 1 modified validators 280.32 ms/op 487.18 ms/op 0.58
findModifiedValidators - no difference 300.69 ms/op 464.00 ms/op 0.65
compare ViewDUs 3.7961 s/op 4.4897 s/op 0.85
compare each validator Uint8Array 1.8494 s/op 1.9254 s/op 0.96
compare ViewDU to Uint8Array 821.97 ms/op 1.1934 s/op 0.69
migrate state 1000000 validators, 24 modified, 0 new 741.88 ms/op 827.39 ms/op 0.90
migrate state 1000000 validators, 1700 modified, 1000 new 940.85 ms/op 1.1299 s/op 0.83
migrate state 1000000 validators, 3400 modified, 2000 new 1.2188 s/op 1.3798 s/op 0.88
migrate state 1500000 validators, 24 modified, 0 new 631.38 ms/op 835.35 ms/op 0.76
migrate state 1500000 validators, 1700 modified, 1000 new 935.06 ms/op 1.1728 s/op 0.80
migrate state 1500000 validators, 3400 modified, 2000 new 1.1917 s/op 1.4004 s/op 0.85
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.3500 ns/op 4.5000 ns/op 0.97
state getBlockRootAtSlot - 250000 vs - 7PWei 689.46 ns/op 747.79 ns/op 0.92
computeProposers - vc 250000 6.8514 ms/op 9.4483 ms/op 0.73
computeEpochShuffling - vc 250000 67.590 ms/op 107.19 ms/op 0.63
getNextSyncCommittee - vc 250000 109.37 ms/op 156.66 ms/op 0.70
computeSigningRoot for AttestationData 23.408 us/op 30.040 us/op 0.78
hash AttestationData serialized data then Buffer.toString(base64) 1.1539 us/op 2.5208 us/op 0.46
toHexString serialized data 750.25 ns/op 1.1499 us/op 0.65
Buffer.toString(base64) 148.05 ns/op 236.45 ns/op 0.63

by benchmarkbot/action

@wemeetagain wemeetagain left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

馃檹

@wemeetagain
wemeetagain merged commit 54c2069 into unstable Jan 29, 2024
@wemeetagain
wemeetagain deleted the nflaig/proper-lockfile branch January 29, 2024 17:15
philknows pushed a commit that referenced this pull request Jan 30, 2024
* fix: ignore stale keystore lockfiles

* Update error message if lockfile is already acquired

* Update keymanager lockfile e2e tests
philknows added a commit that referenced this pull request Feb 7, 2024
* v1.15.1

* fix: ignore stale keystore lockfiles (#6363)

* fix: ignore stale keystore lockfiles

* Update error message if lockfile is already acquired

* Update keymanager lockfile e2e tests

* fix: ignore forkchoice invalidations if latestValidHash not found (#6361)

* fix: ignore forkchoice invalidations if latestValidHash not found

* rename for better understanding

* update the lvh search start index

* apply feedback

* fix: parse --blindedLocal flag value as boolean (#6403)

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>
Co-authored-by: g11tech <develop@g11tech.io>
@wemeetagain

Copy link
Copy Markdown
Member

馃帀 This PR is included in v1.16.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.

2 participants