@chainsafe/lodestar 1.9.0-dev.e9e5bc595b → 1.9.0-dev.f07d97f5ff
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.git-data.json +1 -1
- package/lib/cmds/validator/handler.js +6 -6
- package/lib/cmds/validator/handler.js.map +1 -1
- package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions.d.ts +16 -0
- package/lib/cmds/validator/keymanager/{decryptKeystoreDefinitions/index.js → decryptKeystoreDefinitions.js} +42 -32
- package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions.js.map +1 -0
- package/lib/cmds/validator/keymanager/decryptKeystores/index.d.ts +2 -0
- package/lib/cmds/validator/keymanager/decryptKeystores/index.js +2 -0
- package/lib/cmds/validator/keymanager/decryptKeystores/index.js.map +1 -0
- package/lib/cmds/validator/keymanager/decryptKeystores/poolSize.d.ts +6 -0
- package/lib/cmds/validator/keymanager/decryptKeystores/poolSize.js +19 -0
- package/lib/cmds/validator/keymanager/decryptKeystores/poolSize.js.map +1 -0
- package/lib/cmds/validator/keymanager/decryptKeystores/threadPool.d.ts +25 -0
- package/lib/cmds/validator/keymanager/decryptKeystores/threadPool.js +53 -0
- package/lib/cmds/validator/keymanager/decryptKeystores/threadPool.js.map +1 -0
- package/lib/cmds/validator/keymanager/decryptKeystores/types.d.ts +11 -0
- package/lib/cmds/validator/keymanager/decryptKeystores/types.js +4 -0
- package/lib/cmds/validator/keymanager/decryptKeystores/types.js.map +1 -0
- package/lib/cmds/validator/keymanager/decryptKeystores/worker.d.ts +9 -0
- package/lib/cmds/validator/keymanager/{decryptKeystoreDefinitions → decryptKeystores}/worker.js +6 -5
- package/lib/cmds/validator/keymanager/decryptKeystores/worker.js.map +1 -0
- package/lib/cmds/validator/keymanager/impl.d.ts +2 -1
- package/lib/cmds/validator/keymanager/impl.js +23 -16
- package/lib/cmds/validator/keymanager/impl.js.map +1 -1
- package/lib/cmds/validator/keymanager/keystoreCache.js +2 -1
- package/lib/cmds/validator/keymanager/keystoreCache.js.map +1 -1
- package/lib/cmds/validator/signers/importExternalKeystores.js +0 -2
- package/lib/cmds/validator/signers/importExternalKeystores.js.map +1 -1
- package/lib/cmds/validator/signers/index.js +3 -1
- package/lib/cmds/validator/signers/index.js.map +1 -1
- package/package.json +14 -14
- package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/index.d.ts +0 -8
- package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/index.js.map +0 -1
- package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/poolSize.d.ts +0 -6
- package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/poolSize.js +0 -19
- package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/poolSize.js.map +0 -1
- package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/types.d.ts +0 -12
- package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/types.js +0 -2
- package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/types.js.map +0 -1
- package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/worker.d.ts +0 -9
- package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/worker.js.map +0 -1
package/.git-data.json
CHANGED
|
@@ -54,6 +54,11 @@ export async function validatorHandler(args) {
|
|
|
54
54
|
};
|
|
55
55
|
// This AbortController interrupts various validators ops: genesis req, clients call, clock etc
|
|
56
56
|
const abortController = new AbortController();
|
|
57
|
+
// We set infinity for abort controller used for validator operations,
|
|
58
|
+
// to prevent MaxListenersExceededWarning which get logged when listeners > 10
|
|
59
|
+
// Since it is perfectly fine to have listeners > 10
|
|
60
|
+
setMaxListeners(Infinity, abortController.signal);
|
|
61
|
+
onGracefulShutdownCbs.push(async () => abortController.abort());
|
|
57
62
|
/**
|
|
58
63
|
* For rationale and documentation of how signers are loaded from args and disk,
|
|
59
64
|
* see {@link PersistedKeysBackend} and {@link getSignersFromArgs}
|
|
@@ -71,11 +76,6 @@ export async function validatorHandler(args) {
|
|
|
71
76
|
}
|
|
72
77
|
}
|
|
73
78
|
logSigners(logger, signers);
|
|
74
|
-
// We set infinity for abort controller used for validator operations,
|
|
75
|
-
// to prevent MaxListenersExceededWarning which get logged when listeners > 10
|
|
76
|
-
// Since it is perfectly fine to have listeners > 10
|
|
77
|
-
setMaxListeners(Infinity, abortController.signal);
|
|
78
|
-
onGracefulShutdownCbs.push(async () => abortController.abort());
|
|
79
79
|
const dbOps = {
|
|
80
80
|
config,
|
|
81
81
|
controller: new LevelDbController({ name: dbPath }, { metrics: null, logger }),
|
|
@@ -136,7 +136,7 @@ export async function validatorHandler(args) {
|
|
|
136
136
|
if (proposerConfigWriteDisabled) {
|
|
137
137
|
logger.warn("Proposer data updates (feeRecipient/gasLimit etc) will not be available via Keymanager API as proposerSettingsFile has been set");
|
|
138
138
|
}
|
|
139
|
-
const keymanagerApi = new KeymanagerApi(validator, persistedKeysBackend, proposerConfigWriteDisabled);
|
|
139
|
+
const keymanagerApi = new KeymanagerApi(validator, persistedKeysBackend, abortController.signal, proposerConfigWriteDisabled);
|
|
140
140
|
const keymanagerServer = new KeymanagerRestApiServer({
|
|
141
141
|
address: args["keymanager.address"],
|
|
142
142
|
port: args["keymanager.port"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/cmds/validator/handler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/cmds/validator/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SignerLocal } from "@lodestar/validator";
|
|
2
|
+
import { LogLevel, Logger } from "@lodestar/utils";
|
|
3
|
+
import { LocalKeystoreDefinition } from "./interface.js";
|
|
4
|
+
type KeystoreDecryptOptions = {
|
|
5
|
+
ignoreLockFile?: boolean;
|
|
6
|
+
onDecrypt?: (index: number) => void;
|
|
7
|
+
cacheFilePath?: string;
|
|
8
|
+
logger: Pick<Logger, LogLevel.info | LogLevel.warn | LogLevel.debug>;
|
|
9
|
+
signal: AbortSignal;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Decrypt keystore definitions using a thread pool
|
|
13
|
+
*/
|
|
14
|
+
export declare function decryptKeystoreDefinitions(keystoreDefinitions: LocalKeystoreDefinition[], opts: KeystoreDecryptOptions): Promise<SignerLocal[]>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=decryptKeystoreDefinitions.d.ts.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import path from "node:path";
|
|
2
2
|
import { SignerType } from "@lodestar/validator";
|
|
3
3
|
import bls from "@chainsafe/bls";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { lockFilepath, unlockFilepath } from "../../../util/lockfile.js";
|
|
5
|
+
import { clearKeystoreCache, loadKeystoreCache, writeKeystoreCache } from "./keystoreCache.js";
|
|
6
|
+
import { DecryptKeystoresThreadPool } from "./decryptKeystores/index.js";
|
|
7
7
|
/**
|
|
8
|
-
* Decrypt keystore definitions using a
|
|
8
|
+
* Decrypt keystore definitions using a thread pool
|
|
9
9
|
*/
|
|
10
10
|
export async function decryptKeystoreDefinitions(keystoreDefinitions, opts) {
|
|
11
11
|
if (opts.cacheFilePath) {
|
|
@@ -25,20 +25,14 @@ export async function decryptKeystoreDefinitions(keystoreDefinitions, opts) {
|
|
|
25
25
|
await clearKeystoreCache(opts.cacheFilePath);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
const
|
|
28
|
+
const keystoreCount = keystoreDefinitions.length;
|
|
29
|
+
const signers = new Array(keystoreCount);
|
|
30
|
+
const passwords = new Array(keystoreCount);
|
|
31
31
|
const errors = [];
|
|
32
|
-
const
|
|
33
|
-
// The number below is big enough to almost disable the timeout which helps during tests run on unpredictablely slow hosts
|
|
34
|
-
timeout: 5 * 60 * 1000,
|
|
35
|
-
}), defaultPoolSize);
|
|
32
|
+
const decryptKeystores = new DecryptKeystoresThreadPool(keystoreCount, opts.signal);
|
|
36
33
|
for (const [index, definition] of keystoreDefinitions.entries()) {
|
|
37
34
|
lockKeystore(definition.keystorePath, opts);
|
|
38
|
-
|
|
39
|
-
tasks.push(task);
|
|
40
|
-
task
|
|
41
|
-
.then((secretKeyBytes) => {
|
|
35
|
+
decryptKeystores.queue(definition, (secretKeyBytes) => {
|
|
42
36
|
const signer = {
|
|
43
37
|
type: SignerType.Local,
|
|
44
38
|
secretKey: bls.SecretKey.fromBytes(secretKeyBytes),
|
|
@@ -48,31 +42,22 @@ export async function decryptKeystoreDefinitions(keystoreDefinitions, opts) {
|
|
|
48
42
|
if (opts === null || opts === void 0 ? void 0 : opts.onDecrypt) {
|
|
49
43
|
opts === null || opts === void 0 ? void 0 : opts.onDecrypt(index);
|
|
50
44
|
}
|
|
51
|
-
})
|
|
52
|
-
.catch((e) => {
|
|
45
|
+
}, (error) => {
|
|
53
46
|
// In-progress tasks can't be canceled, so there's a chance that multiple errors may be caught
|
|
54
47
|
// add to the list of errors
|
|
55
|
-
errors.push(
|
|
48
|
+
errors.push({ keystoreFile: path.basename(definition.keystorePath), error });
|
|
56
49
|
// cancel all pending tasks, no need to continue decrypting after we hit one error
|
|
57
|
-
|
|
58
|
-
task.cancel();
|
|
59
|
-
}
|
|
50
|
+
decryptKeystores.cancel();
|
|
60
51
|
});
|
|
61
52
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
await pool.completed(true);
|
|
65
|
-
}
|
|
66
|
-
catch (e) {
|
|
53
|
+
await decryptKeystores.completed();
|
|
54
|
+
if (errors.length > 0) {
|
|
67
55
|
// If an error occurs, the program isn't going to be running,
|
|
68
56
|
// so we should unlock all lockfiles we created
|
|
69
57
|
for (const { keystorePath } of keystoreDefinitions) {
|
|
70
58
|
unlockFilepath(keystorePath);
|
|
71
59
|
}
|
|
72
|
-
throw
|
|
73
|
-
}
|
|
74
|
-
finally {
|
|
75
|
-
await pool.terminate();
|
|
60
|
+
throw formattedError(errors, signers, keystoreCount);
|
|
76
61
|
}
|
|
77
62
|
if (opts.cacheFilePath) {
|
|
78
63
|
await writeKeystoreCache(opts.cacheFilePath, signers, passwords);
|
|
@@ -95,4 +80,29 @@ function lockKeystore(keystorePath, opts) {
|
|
|
95
80
|
}
|
|
96
81
|
}
|
|
97
82
|
}
|
|
98
|
-
|
|
83
|
+
function formattedError(errors, signers, keystoreCount) {
|
|
84
|
+
// Filter out errors due to terminating the thread pool
|
|
85
|
+
// https://github.com/ChainSafe/threads.js/blob/df351552cb7d08b8465f5d1e7c543c952d74ac67/src/master/pool.ts#L244
|
|
86
|
+
const decryptErrors = errors.filter(({ error }) => !error.message.startsWith("Pool has been terminated"));
|
|
87
|
+
const errorCount = decryptErrors.length;
|
|
88
|
+
const decryptedCount = signers.filter(Boolean).length;
|
|
89
|
+
const abortedCount = keystoreCount - errorCount - decryptedCount;
|
|
90
|
+
let message = "Error importing keystores";
|
|
91
|
+
if (errorCount === 1) {
|
|
92
|
+
const { keystoreFile, error } = decryptErrors[0];
|
|
93
|
+
message = `Error importing keystore\n\n${keystoreFile}: ${error.message}`;
|
|
94
|
+
}
|
|
95
|
+
else if (errorCount > 1) {
|
|
96
|
+
message =
|
|
97
|
+
"Multiple errors importing keystores\n\n" +
|
|
98
|
+
decryptErrors.map(({ keystoreFile, error }) => `${keystoreFile}: ${error.message}`).join("\n");
|
|
99
|
+
}
|
|
100
|
+
if (abortedCount > 0) {
|
|
101
|
+
message += `\n\nAborted ${abortedCount} pending keystore import${abortedCount > 1 ? "s" : ""}`;
|
|
102
|
+
}
|
|
103
|
+
const error = new Error(message);
|
|
104
|
+
// Don't print out stack trace
|
|
105
|
+
error.stack = message;
|
|
106
|
+
return error;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=decryptKeystoreDefinitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decryptKeystoreDefinitions.js","sourceRoot":"","sources":["../../../../src/cmds/validator/keymanager/decryptKeystoreDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAc,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAE5D,OAAO,GAAG,MAAM,gBAAgB,CAAC;AACjC,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAC,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAC,0BAA0B,EAAC,MAAM,6BAA6B,CAAC;AAgBvE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,mBAA8C,EAC9C,IAA4B;IAE5B,IAAI,IAAI,CAAC,aAAa,EAAE;QACtB,IAAI;YACF,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;YAEjF,KAAK,MAAM,EAAC,YAAY,EAAC,IAAI,mBAAmB,EAAE;gBAChD,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;aAClC;YAED,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,EAAE;gBACnB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;aACrC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAEzD,OAAO,OAAO,CAAC;SAChB;QAAC,MAAM;YACN,4DAA4D;YAC5D,MAAM,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC9C;KACF;IAED,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,KAAK,CAAc,aAAa,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAI,KAAK,CAAS,aAAa,CAAC,CAAC;IACnD,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,gBAAgB,GAAG,IAAI,0BAA0B,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAEpF,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,mBAAmB,CAAC,OAAO,EAAE,EAAE;QAC/D,YAAY,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAE5C,gBAAgB,CAAC,KAAK,CACpB,UAAU,EACV,CAAC,cAA0B,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAgB;gBAC1B,IAAI,EAAE,UAAU,CAAC,KAAK;gBACtB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC;aACnD,CAAC;YAEF,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;YACxB,SAAS,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC;YAEvC,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,EAAE;gBACnB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,CAAC,KAAK,CAAC,CAAC;aACxB;QACH,CAAC,EACD,CAAC,KAAY,EAAE,EAAE;YACf,8FAA8F;YAC9F,4BAA4B;YAC5B,MAAM,CAAC,IAAI,CAAC,EAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,KAAK,EAAC,CAAC,CAAC;YAC3E,kFAAkF;YAClF,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC5B,CAAC,CACF,CAAC;KACH;IAED,MAAM,gBAAgB,CAAC,SAAS,EAAE,CAAC;IAEnC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,6DAA6D;QAC7D,+CAA+C;QAC/C,KAAK,MAAM,EAAC,YAAY,EAAC,IAAI,mBAAmB,EAAE;YAChD,cAAc,CAAC,YAAY,CAAC,CAAC;SAC9B;QAED,MAAM,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;KACtD;IAED,IAAI,IAAI,CAAC,aAAa,EAAE;QACtB,MAAM,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;KAC1D;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,YAAY,CAAC,YAAoB,EAAE,IAA4B;IACtE,IAAI;QACF,YAAY,CAAC,YAAY,CAAC,CAAC;KAC5B;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wDAAwD,EAAE;gBACzE,IAAI,EAAE,YAAY;aACnB,CAAC,CAAC;SACJ;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAED,SAAS,cAAc,CAAC,MAA8B,EAAE,OAAsB,EAAE,aAAqB;IACnG,uDAAuD;IACvD,gHAAgH;IAChH,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAExG,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;IACxC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACtD,MAAM,YAAY,GAAG,aAAa,GAAG,UAAU,GAAG,cAAc,CAAC;IAEjE,IAAI,OAAO,GAAG,2BAA2B,CAAC;IAE1C,IAAI,UAAU,KAAK,CAAC,EAAE;QACpB,MAAM,EAAC,YAAY,EAAE,KAAK,EAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,GAAG,+BAA+B,YAAY,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;KAC3E;SAAM,IAAI,UAAU,GAAG,CAAC,EAAE;QACzB,OAAO;YACL,yCAAyC;gBACzC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAC,YAAY,EAAE,KAAK,EAAC,EAAE,EAAE,CAAC,GAAG,YAAY,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChG;IAED,IAAI,YAAY,GAAG,CAAC,EAAE;QACpB,OAAO,IAAI,eAAe,YAAY,2BAA2B,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;KAChG;IAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAEjC,8BAA8B;IAC9B,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;IAEtB,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cmds/validator/keymanager/decryptKeystores/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAC,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
let maxPoolSize;
|
|
3
|
+
try {
|
|
4
|
+
if (typeof navigator !== "undefined") {
|
|
5
|
+
maxPoolSize = (_a = navigator.hardwareConcurrency) !== null && _a !== void 0 ? _a : 4;
|
|
6
|
+
}
|
|
7
|
+
else {
|
|
8
|
+
// TODO change this line to use os.availableParallelism() once we upgrade to node v20
|
|
9
|
+
maxPoolSize = (await import("node:os")).cpus().length;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
catch (e) {
|
|
13
|
+
maxPoolSize = 8;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Cross-platform approx number of logical cores
|
|
17
|
+
*/
|
|
18
|
+
export { maxPoolSize };
|
|
19
|
+
//# sourceMappingURL=poolSize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poolSize.js","sourceRoot":"","sources":["../../../../../src/cmds/validator/keymanager/decryptKeystores/poolSize.ts"],"names":[],"mappings":";AAAA,IAAI,WAAmB,CAAC;AAExB,IAAI;IACF,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;QACpC,WAAW,GAAG,MAAA,SAAS,CAAC,mBAAmB,mCAAI,CAAC,CAAC;KAClD;SAAM;QACL,qFAAqF;QACrF,WAAW,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;KACvD;CACF;AAAC,OAAO,CAAC,EAAE;IACV,WAAW,GAAG,CAAC,CAAC;CACjB;AAED;;GAEG;AACH,OAAO,EAAC,WAAW,EAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DecryptKeystoreArgs } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Thread pool to decrypt keystores
|
|
4
|
+
*/
|
|
5
|
+
export declare class DecryptKeystoresThreadPool {
|
|
6
|
+
private readonly signal;
|
|
7
|
+
private pool;
|
|
8
|
+
private tasks;
|
|
9
|
+
private terminatePoolHandler;
|
|
10
|
+
constructor(keystoreCount: number, signal: AbortSignal);
|
|
11
|
+
/**
|
|
12
|
+
* Add keystore to the task queue to be decrypted
|
|
13
|
+
*/
|
|
14
|
+
queue(args: DecryptKeystoreArgs, onDecrypted: (secretKeyBytes: Uint8Array) => void, onError: (e: Error) => void): void;
|
|
15
|
+
/**
|
|
16
|
+
* Resolves once all queued tasks are completed and terminates worker threads.
|
|
17
|
+
* Errors during executing can be captured in `onError` handler for each task.
|
|
18
|
+
*/
|
|
19
|
+
completed(): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Cancel all pending tasks
|
|
22
|
+
*/
|
|
23
|
+
cancel(): void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=threadPool.d.ts.map
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { spawn, Pool, Worker } from "@chainsafe/threads";
|
|
2
|
+
import { maxPoolSize } from "./poolSize.js";
|
|
3
|
+
/**
|
|
4
|
+
* Thread pool to decrypt keystores
|
|
5
|
+
*/
|
|
6
|
+
export class DecryptKeystoresThreadPool {
|
|
7
|
+
constructor(keystoreCount, signal) {
|
|
8
|
+
this.signal = signal;
|
|
9
|
+
this.tasks = [];
|
|
10
|
+
this.pool = Pool(() => spawn(new Worker("./worker.js"), {
|
|
11
|
+
// The number below is big enough to almost disable the timeout
|
|
12
|
+
// which helps during tests run on unpredictably slow hosts
|
|
13
|
+
timeout: 5 * 60 * 1000,
|
|
14
|
+
}), {
|
|
15
|
+
// Adjust worker pool size based on keystore count
|
|
16
|
+
size: Math.min(keystoreCount, maxPoolSize),
|
|
17
|
+
// Decrypt keystores in sequence, increasing concurrency does not improve performance
|
|
18
|
+
concurrency: 1,
|
|
19
|
+
});
|
|
20
|
+
// Terminate worker threads when process receives exit signal
|
|
21
|
+
this.terminatePoolHandler = () => {
|
|
22
|
+
void this.pool.terminate(true);
|
|
23
|
+
};
|
|
24
|
+
signal.addEventListener("abort", this.terminatePoolHandler);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Add keystore to the task queue to be decrypted
|
|
28
|
+
*/
|
|
29
|
+
queue(args, onDecrypted, onError) {
|
|
30
|
+
const task = this.pool.queue((thread) => thread.decryptKeystore(args));
|
|
31
|
+
this.tasks.push(task);
|
|
32
|
+
task.then(onDecrypted).catch(onError);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Resolves once all queued tasks are completed and terminates worker threads.
|
|
36
|
+
* Errors during executing can be captured in `onError` handler for each task.
|
|
37
|
+
*/
|
|
38
|
+
async completed() {
|
|
39
|
+
await this.pool.settled(true);
|
|
40
|
+
await this.pool.terminate();
|
|
41
|
+
this.signal.removeEventListener("abort", this.terminatePoolHandler);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Cancel all pending tasks
|
|
45
|
+
*/
|
|
46
|
+
cancel() {
|
|
47
|
+
for (const task of this.tasks) {
|
|
48
|
+
task.cancel();
|
|
49
|
+
}
|
|
50
|
+
this.tasks = [];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=threadPool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"threadPool.js","sourceRoot":"","sources":["../../../../../src/cmds/validator/keymanager/decryptKeystores/threadPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAA2B,MAAM,oBAAoB,CAAC;AAEjF,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAE1C;;GAEG;AACH,MAAM,OAAO,0BAA0B;IAKrC,YAAY,aAAqB,EAAmB,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;QAH/D,UAAK,GAAqE,EAAE,CAAC;QAInF,IAAI,CAAC,IAAI,GAAG,IAAI,CACd,GAAG,EAAE,CACH,KAAK,CAA2B,IAAI,MAAM,CAAC,aAAa,CAAC,EAAE;YACzD,+DAA+D;YAC/D,2DAA2D;YAC3D,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;SACvB,CAAC,EACJ;YACE,kDAAkD;YAClD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC;YAC1C,qFAAqF;YACrF,WAAW,EAAE,CAAC;SACf,CACF,CAAC;QACF,6DAA6D;QAC7D,IAAI,CAAC,oBAAoB,GAAG,GAAG,EAAE;YAC/B,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,KAAK,CACH,IAAyB,EACzB,WAAiD,EACjD,OAA2B;QAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { KeystoreStr } from "@lodestar/api/keymanager";
|
|
2
|
+
import { LocalKeystoreDefinition } from "../interface.js";
|
|
3
|
+
export type DecryptKeystoreWorkerAPI = {
|
|
4
|
+
decryptKeystore(args: DecryptKeystoreArgs): Promise<Uint8Array>;
|
|
5
|
+
};
|
|
6
|
+
export type DecryptKeystoreArgs = LocalKeystoreDefinition | {
|
|
7
|
+
keystoreStr: KeystoreStr;
|
|
8
|
+
password: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function isLocalKeystoreDefinition(args: DecryptKeystoreArgs): args is LocalKeystoreDefinition;
|
|
11
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/cmds/validator/keymanager/decryptKeystores/types.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,yBAAyB,CAAC,IAAyB;IACjE,OAAQ,IAAgC,CAAC,YAAY,KAAK,SAAS,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TransferDescriptor } from "@chainsafe/threads";
|
|
2
|
+
import { DecryptKeystoreArgs } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Decrypt a single keystore, returning the secret key as a Uint8Array
|
|
5
|
+
*
|
|
6
|
+
* NOTE: This is a memory (and cpu) -intensive process, since decrypting the keystore involves running a key derivation function (either pbkdf2 or scrypt)
|
|
7
|
+
*/
|
|
8
|
+
export declare function decryptKeystore(args: DecryptKeystoreArgs): Promise<TransferDescriptor<Uint8Array>>;
|
|
9
|
+
//# sourceMappingURL=worker.d.ts.map
|
package/lib/cmds/validator/keymanager/{decryptKeystoreDefinitions → decryptKeystores}/worker.js
RENAMED
|
@@ -2,18 +2,19 @@ import fs from "node:fs";
|
|
|
2
2
|
import { expose } from "@chainsafe/threads/worker";
|
|
3
3
|
import { Transfer } from "@chainsafe/threads";
|
|
4
4
|
import { Keystore } from "@chainsafe/bls-keystore";
|
|
5
|
+
import { isLocalKeystoreDefinition } from "./types.js";
|
|
5
6
|
/**
|
|
6
|
-
* Decrypt a single keystore
|
|
7
|
+
* Decrypt a single keystore, returning the secret key as a Uint8Array
|
|
7
8
|
*
|
|
8
9
|
* NOTE: This is a memory (and cpu) -intensive process, since decrypting the keystore involves running a key derivation function (either pbkdf2 or scrypt)
|
|
9
10
|
*/
|
|
10
|
-
export async function
|
|
11
|
-
const keystore = Keystore.parse(fs.readFileSync(keystorePath, "utf8"));
|
|
11
|
+
export async function decryptKeystore(args) {
|
|
12
|
+
const keystore = Keystore.parse(isLocalKeystoreDefinition(args) ? fs.readFileSync(args.keystorePath, "utf8") : args.keystoreStr);
|
|
12
13
|
// Memory-hogging function
|
|
13
|
-
const secret = await keystore.decrypt(password);
|
|
14
|
+
const secret = await keystore.decrypt(args.password);
|
|
14
15
|
// Transfer the underlying ArrayBuffer back to the main thread: https://threads.js.org/usage-advanced#transferable-objects
|
|
15
16
|
// This small performance gain may help in cases where this is run for many keystores
|
|
16
17
|
return Transfer(secret, [secret.buffer]);
|
|
17
18
|
}
|
|
18
|
-
expose({
|
|
19
|
+
expose({ decryptKeystore });
|
|
19
20
|
//# sourceMappingURL=worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../../../src/cmds/validator/keymanager/decryptKeystores/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAC,QAAQ,EAAqB,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAgD,yBAAyB,EAAC,MAAM,YAAY,CAAC;AAEpG;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAyB;IAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAC7B,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAChG,CAAC;IAEF,0BAA0B;IAC1B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,0HAA0H;IAC1H,qFAAqF;IACrF,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,EAAC,eAAe,EAAwC,CAAC,CAAC"}
|
|
@@ -6,8 +6,9 @@ type Api = ServerApi<KeyManagerClientApi>;
|
|
|
6
6
|
export declare class KeymanagerApi implements Api {
|
|
7
7
|
private readonly validator;
|
|
8
8
|
private readonly persistedKeysBackend;
|
|
9
|
+
private readonly signal;
|
|
9
10
|
private readonly proposerConfigWriteDisabled?;
|
|
10
|
-
constructor(validator: Validator, persistedKeysBackend: IPersistedKeysBackend, proposerConfigWriteDisabled?: boolean | undefined);
|
|
11
|
+
constructor(validator: Validator, persistedKeysBackend: IPersistedKeysBackend, signal: AbortSignal, proposerConfigWriteDisabled?: boolean | undefined);
|
|
11
12
|
private checkIfProposerWriteEnabled;
|
|
12
13
|
listFeeRecipient(pubkeyHex: string): ReturnType<Api["listFeeRecipient"]>;
|
|
13
14
|
setFeeRecipient(pubkeyHex: string, ethaddress: string): Promise<void>;
|
|
@@ -5,10 +5,12 @@ import { fromHexString } from "@chainsafe/ssz";
|
|
|
5
5
|
import { SignerType } from "@lodestar/validator";
|
|
6
6
|
import { getPubkeyHexFromKeystore, isValidatePubkeyHex, isValidHttpUrl } from "../../../util/format.js";
|
|
7
7
|
import { parseFeeRecipient } from "../../../util/index.js";
|
|
8
|
+
import { DecryptKeystoresThreadPool } from "./decryptKeystores/index.js";
|
|
8
9
|
export class KeymanagerApi {
|
|
9
|
-
constructor(validator, persistedKeysBackend, proposerConfigWriteDisabled) {
|
|
10
|
+
constructor(validator, persistedKeysBackend, signal, proposerConfigWriteDisabled) {
|
|
10
11
|
this.validator = validator;
|
|
11
12
|
this.persistedKeysBackend = persistedKeysBackend;
|
|
13
|
+
this.signal = signal;
|
|
12
14
|
this.proposerConfigWriteDisabled = proposerConfigWriteDisabled;
|
|
13
15
|
}
|
|
14
16
|
checkIfProposerWriteEnabled() {
|
|
@@ -85,6 +87,7 @@ export class KeymanagerApi {
|
|
|
85
87
|
await this.validator.importInterchange(interchange);
|
|
86
88
|
}
|
|
87
89
|
const statuses = [];
|
|
90
|
+
const decryptKeystores = new DecryptKeystoresThreadPool(keystoresStr.length, this.signal);
|
|
88
91
|
for (let i = 0; i < keystoresStr.length; i++) {
|
|
89
92
|
try {
|
|
90
93
|
const keystoreStr = keystoresStr[i];
|
|
@@ -99,27 +102,31 @@ export class KeymanagerApi {
|
|
|
99
102
|
statuses[i] = { status: ImportStatus.duplicate };
|
|
100
103
|
continue;
|
|
101
104
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
105
|
+
decryptKeystores.queue({ keystoreStr, password }, (secretKeyBytes) => {
|
|
106
|
+
const secretKey = bls.SecretKey.fromBytes(secretKeyBytes);
|
|
107
|
+
// Persist the key to disk for restarts, before adding to in-memory store
|
|
108
|
+
// If the keystore exist and has a lock it will throw
|
|
109
|
+
this.persistedKeysBackend.writeKeystore({
|
|
110
|
+
keystoreStr,
|
|
111
|
+
password,
|
|
112
|
+
// Lock immediately since it's gonna be used
|
|
113
|
+
lockBeforeWrite: true,
|
|
114
|
+
// Always write, even if it's already persisted for consistency.
|
|
115
|
+
// The in-memory validatorStore is the ground truth to decide duplicates
|
|
116
|
+
persistIfDuplicate: true,
|
|
117
|
+
});
|
|
118
|
+
// Add to in-memory store to start validating immediately
|
|
119
|
+
this.validator.validatorStore.addSigner({ type: SignerType.Local, secretKey });
|
|
120
|
+
statuses[i] = { status: ImportStatus.imported };
|
|
121
|
+
}, (e) => {
|
|
122
|
+
statuses[i] = { status: ImportStatus.error, message: e.message };
|
|
114
123
|
});
|
|
115
|
-
// Add to in-memory store to start validating immediately
|
|
116
|
-
this.validator.validatorStore.addSigner({ type: SignerType.Local, secretKey });
|
|
117
|
-
statuses[i] = { status: ImportStatus.imported };
|
|
118
124
|
}
|
|
119
125
|
catch (e) {
|
|
120
126
|
statuses[i] = { status: ImportStatus.error, message: e.message };
|
|
121
127
|
}
|
|
122
128
|
}
|
|
129
|
+
await decryptKeystores.completed();
|
|
123
130
|
return { data: statuses };
|
|
124
131
|
}
|
|
125
132
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl.js","sourceRoot":"","sources":["../../../../src/cmds/validator/keymanager/impl.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,gBAAgB,CAAC;AACjC,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAEL,qBAAqB,EACrB,cAAc,EACd,YAAY,EAMZ,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAc,UAAU,EAAY,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAC,wBAAwB,EAAE,mBAAmB,EAAE,cAAc,EAAC,MAAM,yBAAyB,CAAC;AACtG,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"impl.js","sourceRoot":"","sources":["../../../../src/cmds/validator/keymanager/impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { Keystore } from "@chainsafe/bls-keystore";
|
|
|
5
5
|
import { SignerType } from "@lodestar/validator";
|
|
6
6
|
import { fromHex, toHex } from "@lodestar/utils";
|
|
7
7
|
import { PointFormat } from "@chainsafe/bls/types";
|
|
8
|
+
import { writeFile600Perm } from "../../../util/file.js";
|
|
8
9
|
import { lockFilepath, unlockFilepath } from "../../../util/lockfile.js";
|
|
9
10
|
export async function loadKeystoreCache(cacheFilepath, keystoreDefinitions) {
|
|
10
11
|
const keystores = [];
|
|
@@ -53,7 +54,7 @@ export async function writeKeystoreCache(cacheFilepath, signers, passwords) {
|
|
|
53
54
|
if (!fs.existsSync(path.dirname(cacheFilepath)))
|
|
54
55
|
fs.mkdirSync(path.dirname(cacheFilepath), { recursive: true });
|
|
55
56
|
lockFilepath(cacheFilepath);
|
|
56
|
-
|
|
57
|
+
writeFile600Perm(cacheFilepath, keystore.stringify());
|
|
57
58
|
unlockFilepath(cacheFilepath);
|
|
58
59
|
}
|
|
59
60
|
export async function clearKeystoreCache(cacheFilepath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keystoreCache.js","sourceRoot":"","sources":["../../../../src/cmds/validator/keymanager/keystoreCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,GAAG,MAAM,gBAAgB,CAAC;AACjC,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAc,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAC,WAAW,EAAC,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAGvE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,aAAqB,EACrB,mBAA8C;IAE9C,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,EAAC,YAAY,EAAE,QAAQ,EAAC,IAAI,mBAAmB,EAAE;QAC1D,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACtE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC1B;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE;QACzC,MAAM,IAAI,KAAK,CACb,8DAA8D,SAAS,CAAC,MAAM,eAAe,SAAS,CAAC,MAAM,EAAE,CAChH,CAAC;KACH;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;QACjC,MAAM,IAAI,KAAK,CAAC,cAAc,aAAa,mBAAmB,CAAC,CAAC;KACjE;IAED,YAAY,CAAC,aAAa,CAAC,CAAC;IAE5B,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpC,2FAA2F;IAC3F,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,0BAA0B,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEpE,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;QAC5C,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACjH,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAE1E,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;YACjD,MAAM,IAAI,KAAK,CACb,YAAY,CAAC,CAAC,IAAI,iDAAiD,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,KAAK,CACzG,SAAS,CACV,EAAE,CACJ,CAAC;SACH;QAED,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,UAAU,CAAC,KAAK;YACtB,SAAS;SACV,CAAC,CAAC;KACJ;IAED,cAAc,CAAC,aAAa,CAAC,CAAC;IAE9B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,aAAqB,EACrB,OAAsB,EACtB,SAAmB;IAEnB,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE;QACvC,MAAM,IAAI,KAAK,CACb,0DAA0D,OAAO,CAAC,MAAM,eAAe,SAAS,CAAC,MAAM,EAAE,CAC1G,CAAC;KACH;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC7D,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,aAAa,CAAC,CAAC;IACrH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IAC9G,YAAY,CAAC,aAAa,CAAC,CAAC;IAC5B,
|
|
1
|
+
{"version":3,"file":"keystoreCache.js","sourceRoot":"","sources":["../../../../src/cmds/validator/keymanager/keystoreCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importExternalKeystores.js","sourceRoot":"","sources":["../../../../src/cmds/validator/signers/importExternalKeystores.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAG3E;;;;GAIG;AACH,MAAM,UAAU,wCAAwC,CAAC,IAGxD;IACC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;QAC7C,eAAe,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;KACzC;IAED,OAAO,QAAQ;SACZ,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;SAChD,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACtB,YAAY;QACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAwC;IACnF,IAAI,IAAI,CAAC,uBAAuB,EAAE;QAChC,OAAO,kBAAkB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;KACzD;SAAM;QACL,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAqB;YACxD;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,gCAAgC;aAC1C;SACF,CAAC,CAAC;QAEH,
|
|
1
|
+
{"version":3,"file":"importExternalKeystores.js","sourceRoot":"","sources":["../../../../src/cmds/validator/signers/importExternalKeystores.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAG3E;;;;GAIG;AACH,MAAM,UAAU,wCAAwC,CAAC,IAGxD;IACC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;QAC7C,eAAe,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;KACzC;IAED,OAAO,QAAQ;SACZ,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;SAChD,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACtB,YAAY;QACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAwC;IACnF,IAAI,IAAI,CAAC,uBAAuB,EAAE;QAChC,OAAO,kBAAkB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;KACzD;SAAM;QACL,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAqB;YACxD;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,gCAAgC;aAC1C;SACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,QAAQ,CAAC;KACzB;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,gCAAgC;IAChC,OAAO,CACL,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC1B,yGAAyG;QACzG,gHAAgH;QAChH,CAAC,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC3C,+FAA+F;IAC/F,wEAAwE;IACxE,EAAE;IACF,4DAA4D;IAC5D,EAAE;IACF,kDAAkD;IAClD,mIAAmI;IACnI,EAAE;IACF,+FAA+F;IAC/F,0DAA0D;IAC1D,EAAE;IACF,iCAAiC;IACjC,EAAE;IACF,0CAA0C;KAC3C,CAAC;AACJ,CAAC"}
|
|
@@ -8,7 +8,7 @@ import { defaultNetwork } from "../../../options/index.js";
|
|
|
8
8
|
import { assertValidPubkeysHex, isValidHttpUrl, parseRange, YargsError } from "../../../util/index.js";
|
|
9
9
|
import { getAccountPaths } from "../paths.js";
|
|
10
10
|
import { PersistedKeysBackend } from "../keymanager/persistedKeys.js";
|
|
11
|
-
import { decryptKeystoreDefinitions } from "../keymanager/decryptKeystoreDefinitions
|
|
11
|
+
import { decryptKeystoreDefinitions } from "../keymanager/decryptKeystoreDefinitions.js";
|
|
12
12
|
import { showProgress } from "../../../util/progress.js";
|
|
13
13
|
import { importKeystoreDefinitionsFromExternalDir, readPassphraseOrPrompt } from "./importExternalKeystores.js";
|
|
14
14
|
const KEYSTORE_IMPORT_PROGRESS_MS = 10000;
|
|
@@ -84,6 +84,7 @@ export async function getSignersFromArgs(args, network, { logger, signal }) {
|
|
|
84
84
|
onDecrypt: needle,
|
|
85
85
|
cacheFilePath: path.join(accountPaths.cacheDir, "imported_keystores.cache"),
|
|
86
86
|
logger,
|
|
87
|
+
signal,
|
|
87
88
|
});
|
|
88
89
|
}
|
|
89
90
|
// Remote keys declared manually with --externalSignerPublicKeys
|
|
@@ -108,6 +109,7 @@ export async function getSignersFromArgs(args, network, { logger, signal }) {
|
|
|
108
109
|
onDecrypt: needle,
|
|
109
110
|
cacheFilePath: path.join(accountPaths.cacheDir, "local_keystores.cache"),
|
|
110
111
|
logger,
|
|
112
|
+
signal,
|
|
111
113
|
});
|
|
112
114
|
// Read local remote keys, imported via keymanager api
|
|
113
115
|
const signerDefinitions = persistedKeysBackend.readAllRemoteKeys();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cmds/validator/signers/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,GAAG,MAAM,gBAAgB,CAAC;AACjC,OAAO,EAAC,uBAAuB,EAAE,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAC,qBAAqB,EAAU,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAC,cAAc,EAAa,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAC,qBAAqB,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAC,MAAM,wBAAwB,CAAC;AACrG,OAAO,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,0BAA0B,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cmds/validator/signers/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,GAAG,MAAM,gBAAgB,CAAC;AACjC,OAAO,EAAC,uBAAuB,EAAE,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAC,qBAAqB,EAAU,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAC,cAAc,EAAa,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAC,qBAAqB,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAC,MAAM,wBAAwB,CAAC;AACrG,OAAO,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,0BAA0B,EAAC,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAC,wCAAwC,EAAE,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AAE9G,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAoC,EACpC,OAAe,EACf,EAAC,MAAM,EAAE,MAAM,EAA8F;IAE7G,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEpD,8CAA8C;IAC9C,IAAI,IAAI,CAAC,cAAc,EAAE;QACvB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChD,sCAAsC;QACtC,IAAI,IAAI,CAAC,wBAAwB,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,EAAE;YAClE,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC/B;aAAM;YACL,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC,CAAC;SAC/F;KACF;IAED,uEAAuE;SAClE,IAAI,IAAI,CAAC,YAAY,EAAE;QAC1B,IAAI,OAAO,KAAK,cAAc,EAAE;YAC9B,MAAM,IAAI,UAAU,CAAC,4CAA4C,CAAC,CAAC;SACpE;QACD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,MAAM,IAAI,UAAU,CAAC,gDAAgD,CAAC,CAAC;SACxE;QAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC7B,IAAI,EAAE,UAAU,CAAC,KAAK;YACtB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC;SACrF,CAAC,CAAC,CAAC;KACL;IAED,gCAAgC;SAC3B,IAAI,IAAI,CAAC,eAAe,EAAE;QAC7B,MAAM,mBAAmB,GAAG,wCAAwC,CAAC;YACnE,aAAa,EAAE,IAAI,CAAC,eAAe;YACnC,QAAQ,EAAE,MAAM,sBAAsB,CAAC,IAAI,CAAC;SAC7C,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,KAAK,EAAE,mBAAmB,CAAC,MAAM;YACjC,WAAW,EAAE,2BAA2B;YACxC,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,CAAC,EAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAC,EAAE,EAAE;gBACrD,MAAM,CAAC,IAAI,CACT,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,oCAAoC,OAAO,UAAU,KAAK,SAAS,CACzF,UAAU,GAAG,EAAE,CAChB,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CACrB,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QACH,OAAO,0BAA0B,CAAC,mBAAmB,EAAE;YACrD,cAAc,EAAE,IAAI,CAAC,KAAK;YAC1B,SAAS,EAAE,MAAM;YACjB,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,0BAA0B,CAAC;YAC3E,MAAM;YACN,MAAM;SACP,CAAC,CAAC;KACJ;IAED,gEAAgE;SAC3D,IAAI,IAAI,CAAC,wBAAwB,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,EAAE;QACvE,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;KAC/B;IAED,uCAAuC;SAClC;QACH,MAAM,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAEpE,8EAA8E;QAC9E,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,CAAC;QAEpE,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,KAAK,EAAE,mBAAmB,CAAC,MAAM;YACjC,WAAW,EAAE,2BAA2B;YACxC,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,CAAC,EAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAC,EAAE,EAAE;gBACrD,MAAM,CAAC,IAAI,CACT,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,0CAA0C,OAAO,UAAU,KAAK,SAAS,CAC/F,UAAU,GAAG,EAAE,CAChB,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CACrB,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,MAAM,0BAA0B,CAAC,mBAAmB,EAAE;YAC5E,cAAc,EAAE,IAAI,CAAC,KAAK;YAC1B,SAAS,EAAE,MAAM;YACjB,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,uBAAuB,CAAC;YACxE,MAAM;YACN,MAAM;SACP,CAAC,CAAC;QAEH,sDAAsD;QACtD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,iBAAiB,EAAE,CAAC;QACnE,MAAM,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAC,GAAG,EAAE,MAAM,EAAC,EAAU,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC;QAEjH,OAAO,CAAC,GAAG,eAAe,EAAE,GAAG,aAAa,CAAC,CAAC;KAC/C;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,UAAU,CAAC,KAAK;YACnB,OAAO,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAE/D,KAAK,UAAU,CAAC,MAAM;YACpB,OAAO,MAAM,CAAC,MAAM,CAAC;KACxB;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAoC;;IAClE,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACrD,IAAI,CAAC,iBAAiB,EAAE;QACtB,MAAM,IAAI,UAAU,CAAC,0DAA0D,CAAC,CAAC;KAClF;IACD,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE;QACtC,MAAM,IAAI,UAAU,CAAC,+BAA+B,iBAAiB,EAAE,CAAC,CAAC;KAC1E;IACD,IAAI,IAAI,CAAC,wBAAwB,CAAC,IAAI,IAAI,CAAC,wBAAwB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACjF,MAAM,IAAI,UAAU,CAAC,kDAAkD,CAAC,CAAC;KAC1E;IAED,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,wBAAwB,CAAC,mCAAI,CAAC,MAAM,qBAAqB,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACnG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAC,CAAC,CAAC,CAAC;AAC9F,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chainsafe/lodestar",
|
|
3
|
-
"version": "1.9.0-dev.
|
|
3
|
+
"version": "1.9.0-dev.f07d97f5ff",
|
|
4
4
|
"description": "Command line interface for lodestar",
|
|
5
5
|
"author": "ChainSafe Systems",
|
|
6
6
|
"license": "LGPL-3.0",
|
|
@@ -56,21 +56,21 @@
|
|
|
56
56
|
"@chainsafe/bls": "7.1.1",
|
|
57
57
|
"@chainsafe/bls-keygen": "^0.3.0",
|
|
58
58
|
"@chainsafe/bls-keystore": "^2.0.0",
|
|
59
|
-
"@chainsafe/blst": "^0.2.
|
|
59
|
+
"@chainsafe/blst": "^0.2.9",
|
|
60
60
|
"@chainsafe/discv5": "^3.0.0",
|
|
61
61
|
"@chainsafe/ssz": "^0.10.2",
|
|
62
62
|
"@libp2p/peer-id-factory": "^2.0.3",
|
|
63
|
-
"@lodestar/api": "1.9.0-dev.
|
|
64
|
-
"@lodestar/beacon-node": "1.9.0-dev.
|
|
65
|
-
"@lodestar/config": "1.9.0-dev.
|
|
66
|
-
"@lodestar/db": "1.9.0-dev.
|
|
67
|
-
"@lodestar/light-client": "1.9.0-dev.
|
|
68
|
-
"@lodestar/logger": "1.9.0-dev.
|
|
69
|
-
"@lodestar/params": "1.9.0-dev.
|
|
70
|
-
"@lodestar/state-transition": "1.9.0-dev.
|
|
71
|
-
"@lodestar/types": "1.9.0-dev.
|
|
72
|
-
"@lodestar/utils": "1.9.0-dev.
|
|
73
|
-
"@lodestar/validator": "1.9.0-dev.
|
|
63
|
+
"@lodestar/api": "1.9.0-dev.f07d97f5ff",
|
|
64
|
+
"@lodestar/beacon-node": "1.9.0-dev.f07d97f5ff",
|
|
65
|
+
"@lodestar/config": "1.9.0-dev.f07d97f5ff",
|
|
66
|
+
"@lodestar/db": "1.9.0-dev.f07d97f5ff",
|
|
67
|
+
"@lodestar/light-client": "1.9.0-dev.f07d97f5ff",
|
|
68
|
+
"@lodestar/logger": "1.9.0-dev.f07d97f5ff",
|
|
69
|
+
"@lodestar/params": "1.9.0-dev.f07d97f5ff",
|
|
70
|
+
"@lodestar/state-transition": "1.9.0-dev.f07d97f5ff",
|
|
71
|
+
"@lodestar/types": "1.9.0-dev.f07d97f5ff",
|
|
72
|
+
"@lodestar/utils": "1.9.0-dev.f07d97f5ff",
|
|
73
|
+
"@lodestar/validator": "1.9.0-dev.f07d97f5ff",
|
|
74
74
|
"@multiformats/multiaddr": "^11.0.0",
|
|
75
75
|
"@types/lockfile": "^1.0.2",
|
|
76
76
|
"bip39": "^3.1.0",
|
|
@@ -101,5 +101,5 @@
|
|
|
101
101
|
"@types/lodash": "^4.14.192",
|
|
102
102
|
"@types/yargs": "^17.0.24"
|
|
103
103
|
},
|
|
104
|
-
"gitHead": "
|
|
104
|
+
"gitHead": "3132208f1ebf524f07b4fa781a0dfffb95ec6595"
|
|
105
105
|
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { SignerLocal } from "@lodestar/validator";
|
|
2
|
-
import { LocalKeystoreDefinition } from "../interface.js";
|
|
3
|
-
import { KeystoreDecryptOptions } from "./types.js";
|
|
4
|
-
/**
|
|
5
|
-
* Decrypt keystore definitions using a threadpool
|
|
6
|
-
*/
|
|
7
|
-
export declare function decryptKeystoreDefinitions(keystoreDefinitions: LocalKeystoreDefinition[], opts: KeystoreDecryptOptions): Promise<SignerLocal[]>;
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cmds/validator/keymanager/decryptKeystoreDefinitions/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
var _a;
|
|
2
|
-
let defaultPoolSize;
|
|
3
|
-
try {
|
|
4
|
-
if (typeof navigator !== "undefined") {
|
|
5
|
-
defaultPoolSize = (_a = navigator.hardwareConcurrency) !== null && _a !== void 0 ? _a : 4;
|
|
6
|
-
}
|
|
7
|
-
else {
|
|
8
|
-
// TODO change this line to use os.availableParallelism() once we upgrade to node v20
|
|
9
|
-
defaultPoolSize = (await import("node:os")).cpus().length;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
catch (e) {
|
|
13
|
-
defaultPoolSize = 8;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Cross-platform aprox number of logical cores
|
|
17
|
-
*/
|
|
18
|
-
export { defaultPoolSize };
|
|
19
|
-
//# sourceMappingURL=poolSize.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"poolSize.js","sourceRoot":"","sources":["../../../../../src/cmds/validator/keymanager/decryptKeystoreDefinitions/poolSize.ts"],"names":[],"mappings":";AAAA,IAAI,eAAuB,CAAC;AAE5B,IAAI;IACF,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;QACpC,eAAe,GAAG,MAAA,SAAS,CAAC,mBAAmB,mCAAI,CAAC,CAAC;KACtD;SAAM;QACL,qFAAqF;QACrF,eAAe,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;KAC3D;CACF;AAAC,OAAO,CAAC,EAAE;IACV,eAAe,GAAG,CAAC,CAAC;CACrB;AAED;;GAEG;AACH,OAAO,EAAC,eAAe,EAAC,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { LogLevel, Logger } from "@lodestar/utils";
|
|
2
|
-
import { LocalKeystoreDefinition } from "../interface.js";
|
|
3
|
-
export type DecryptKeystoreWorkerAPI = {
|
|
4
|
-
decryptKeystoreDefinition({ keystorePath, password }: LocalKeystoreDefinition): Promise<Uint8Array>;
|
|
5
|
-
};
|
|
6
|
-
export type KeystoreDecryptOptions = {
|
|
7
|
-
ignoreLockFile?: boolean;
|
|
8
|
-
onDecrypt?: (index: number) => void;
|
|
9
|
-
cacheFilePath?: string;
|
|
10
|
-
logger: Pick<Logger, LogLevel.info | LogLevel.warn | LogLevel.debug>;
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/cmds/validator/keymanager/decryptKeystoreDefinitions/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { TransferDescriptor } from "@chainsafe/threads";
|
|
2
|
-
import { LocalKeystoreDefinition } from "../interface.js";
|
|
3
|
-
/**
|
|
4
|
-
* Decrypt a single keystore definition, returning the secret key as a Uint8Array
|
|
5
|
-
*
|
|
6
|
-
* NOTE: This is a memory (and cpu) -intensive process, since decrypting the keystore involves running a key derivation function (either pbkdf2 or scrypt)
|
|
7
|
-
*/
|
|
8
|
-
export declare function decryptKeystoreDefinition({ keystorePath, password, }: LocalKeystoreDefinition): Promise<TransferDescriptor<Uint8Array>>;
|
|
9
|
-
//# sourceMappingURL=worker.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../../../src/cmds/validator/keymanager/decryptKeystoreDefinitions/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAC,QAAQ,EAAqB,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AAIjD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,EAC9C,YAAY,EACZ,QAAQ,GACgB;IACxB,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAEvE,0BAA0B;IAC1B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChD,0HAA0H;IAC1H,qFAAqF;IACrF,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,EAAC,yBAAyB,EAAwC,CAAC,CAAC"}
|