@chainsafe/lodestar 1.9.0-dev.b90a09c997 → 1.9.0-dev.bb4151d238
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/applyPreset.js +7 -1
- package/lib/applyPreset.js.map +1 -1
- package/lib/cli.js +1 -1
- package/lib/cli.js.map +1 -1
- package/lib/cmds/beacon/handler.d.ts +3 -3
- package/lib/cmds/beacon/handler.js +52 -9
- package/lib/cmds/beacon/handler.js.map +1 -1
- package/lib/cmds/beacon/options.d.ts +4 -1
- package/lib/cmds/beacon/options.js +9 -0
- package/lib/cmds/beacon/options.js.map +1 -1
- package/lib/cmds/dev/options.d.ts +4 -1
- package/lib/cmds/lightclient/handler.js +3 -2
- package/lib/cmds/lightclient/handler.js.map +1 -1
- package/lib/cmds/lightclient/options.d.ts +2 -1
- package/lib/cmds/lightclient/options.js.map +1 -1
- package/lib/cmds/validator/handler.js +17 -16
- 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.js +108 -0
- 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/options.d.ts +3 -1
- package/lib/cmds/validator/options.js +5 -0
- package/lib/cmds/validator/options.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.d.ts +2 -2
- package/lib/cmds/validator/signers/index.js +3 -1
- package/lib/cmds/validator/signers/index.js.map +1 -1
- package/lib/cmds/validator/signers/logSigners.d.ts +2 -2
- package/lib/cmds/validator/signers/logSigners.js.map +1 -1
- package/lib/cmds/validator/slashingProtection/export.d.ts +2 -1
- package/lib/cmds/validator/slashingProtection/export.js +42 -12
- package/lib/cmds/validator/slashingProtection/export.js.map +1 -1
- package/lib/cmds/validator/slashingProtection/import.d.ts +1 -1
- package/lib/cmds/validator/slashingProtection/import.js +5 -4
- package/lib/cmds/validator/slashingProtection/import.js.map +1 -1
- package/lib/cmds/validator/voluntaryExit.js +1 -1
- package/lib/cmds/validator/voluntaryExit.js.map +1 -1
- package/lib/options/beaconNodeOptions/api.d.ts +1 -0
- package/lib/options/beaconNodeOptions/api.js +6 -0
- package/lib/options/beaconNodeOptions/api.js.map +1 -1
- package/lib/options/beaconNodeOptions/builder.d.ts +0 -1
- package/lib/options/beaconNodeOptions/builder.js +0 -9
- package/lib/options/beaconNodeOptions/builder.js.map +1 -1
- package/lib/options/beaconNodeOptions/index.d.ts +3 -1
- package/lib/options/beaconNodeOptions/network.d.ts +2 -0
- package/lib/options/beaconNodeOptions/network.js +25 -8
- package/lib/options/beaconNodeOptions/network.js.map +1 -1
- package/lib/options/logOptions.d.ts +11 -1
- package/lib/options/logOptions.js +7 -6
- package/lib/options/logOptions.js.map +1 -1
- package/lib/util/index.d.ts +1 -0
- package/lib/util/index.js +1 -0
- package/lib/util/index.js.map +1 -1
- package/lib/util/logger.d.ts +7 -23
- package/lib/util/logger.js +53 -80
- package/lib/util/logger.js.map +1 -1
- package/lib/util/pruneOldFilesInDir.d.ts +2 -0
- package/lib/util/pruneOldFilesInDir.js +17 -0
- package/lib/util/pruneOldFilesInDir.js.map +1 -0
- package/package.json +16 -15
- package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/index.d.ts +0 -8
- package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/index.js +0 -92
- 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/lib/util/loggerConsoleTransport.d.ts +0 -24
- package/lib/util/loggerConsoleTransport.js +0 -35
- package/lib/util/loggerConsoleTransport.js.map +0 -1
package/lib/util/logger.js
CHANGED
|
@@ -1,91 +1,70 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import fs from "node:fs";
|
|
3
|
-
import DailyRotateFile from "winston-daily-rotate-file";
|
|
4
|
-
import winston from "winston";
|
|
5
3
|
import { SLOTS_PER_EPOCH } from "@lodestar/params";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
4
|
+
import { TimestampFormatCode, logFormats } from "@lodestar/logger";
|
|
5
|
+
import { LogLevel } from "@lodestar/utils";
|
|
8
6
|
export const LOG_FILE_DISABLE_KEYWORD = "none";
|
|
9
|
-
export const LOG_LEVEL_DEFAULT = LogLevel.info;
|
|
10
|
-
export const LOG_FILE_LEVEL_DEFAULT = LogLevel.debug;
|
|
11
|
-
export const LOG_DAILY_ROTATE_DEFAULT = 5;
|
|
12
|
-
const DATE_PATTERN = "YYYY-MM-DD";
|
|
13
7
|
/**
|
|
14
8
|
* Setup a CLI logger, common for beacon, validator and dev commands
|
|
15
9
|
*/
|
|
16
|
-
export function
|
|
17
|
-
var _a
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
10
|
+
export function parseLoggerArgs(args, paths, config, opts) {
|
|
11
|
+
var _a;
|
|
12
|
+
return {
|
|
13
|
+
level: parseLogLevel(args.logLevel),
|
|
14
|
+
file: args.logFile === LOG_FILE_DISABLE_KEYWORD
|
|
15
|
+
? undefined
|
|
16
|
+
: {
|
|
17
|
+
filepath: (_a = args.logFile) !== null && _a !== void 0 ? _a : paths.defaultLogFilepath,
|
|
18
|
+
level: parseLogLevel(args.logFileLevel),
|
|
19
|
+
dailyRotate: args.logFileDailyRotate,
|
|
20
|
+
},
|
|
21
|
+
module: args.logPrefix,
|
|
22
|
+
format: args.logFormat ? parseLogFormat(args.logFormat) : undefined,
|
|
23
|
+
levelModule: args.logLevelModule && parseLogLevelModule(args.logLevelModule),
|
|
24
|
+
timestampFormat: (opts === null || opts === void 0 ? void 0 : opts.hideTimestamp)
|
|
25
|
+
? { format: TimestampFormatCode.Hidden }
|
|
26
|
+
: args.logFormatGenesisTime !== undefined
|
|
27
|
+
? {
|
|
28
|
+
format: TimestampFormatCode.EpochSlot,
|
|
29
|
+
genesisTime: args.logFormatGenesisTime,
|
|
30
|
+
secondsPerSlot: config.SECONDS_PER_SLOT,
|
|
31
|
+
slotsPerEpoch: SLOTS_PER_EPOCH,
|
|
32
|
+
}
|
|
33
|
+
: {
|
|
34
|
+
format: TimestampFormatCode.DateRegular,
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function parseLogFormat(format) {
|
|
39
|
+
if (!logFormats.includes(format)) {
|
|
40
|
+
throw Error(`Unknown log format ${format}`);
|
|
33
41
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
// }
|
|
40
|
-
// `lodestar --logFileDailyRotate` -> enabled daily rotate with default value
|
|
41
|
-
// `lodestar --logFileDailyRotate 10` -> set daily rotate to custom value 10
|
|
42
|
-
// `lodestar --logFileDailyRotate 0` -> disable daily rotate and accumulate in same file
|
|
43
|
-
const rotateMaxFiles = (_c = args.logFileDailyRotate) !== null && _c !== void 0 ? _c : LOG_DAILY_ROTATE_DEFAULT;
|
|
44
|
-
const filename = (_d = args.logFile) !== null && _d !== void 0 ? _d : paths.defaultLogFilepath;
|
|
45
|
-
if (args.logFile !== LOG_FILE_DISABLE_KEYWORD) {
|
|
46
|
-
const logFileLevel = (_e = args.logFileLevel) !== null && _e !== void 0 ? _e : LOG_FILE_LEVEL_DEFAULT;
|
|
47
|
-
transports.push(rotateMaxFiles > 0
|
|
48
|
-
? new DailyRotateFile({
|
|
49
|
-
level: logFileLevel,
|
|
50
|
-
//insert the date pattern in filename before the file extension.
|
|
51
|
-
filename: filename.replace(/\.(?=[^.]*$)|$/, "-%DATE%$&"),
|
|
52
|
-
datePattern: DATE_PATTERN,
|
|
53
|
-
handleExceptions: true,
|
|
54
|
-
maxFiles: rotateMaxFiles,
|
|
55
|
-
auditFile: path.join(path.dirname(filename), ".log_rotate_audit.json"),
|
|
56
|
-
})
|
|
57
|
-
: new winston.transports.File({
|
|
58
|
-
level: logFileLevel,
|
|
59
|
-
filename: filename,
|
|
60
|
-
handleExceptions: true,
|
|
61
|
-
}));
|
|
42
|
+
return format;
|
|
43
|
+
}
|
|
44
|
+
function parseLogLevel(level) {
|
|
45
|
+
if (LogLevel[level] === undefined) {
|
|
46
|
+
throw Error(`Unknown log level '${level}'`);
|
|
62
47
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
};
|
|
73
|
-
const logger = createWinstonLogger({
|
|
74
|
-
module: args.logPrefix,
|
|
75
|
-
format: args.logFormat ? parseLogFormat(args.logFormat) : "human",
|
|
76
|
-
timestampFormat,
|
|
77
|
-
hideTimestamp: opts === null || opts === void 0 ? void 0 : opts.hideTimestamp,
|
|
78
|
-
}, transports);
|
|
79
|
-
return { logger, logParams: { filename, rotateMaxFiles } };
|
|
48
|
+
return level;
|
|
49
|
+
}
|
|
50
|
+
function parseLogLevelModule(logLevelModuleArr) {
|
|
51
|
+
const levelModule = {};
|
|
52
|
+
for (const logLevelModule of logLevelModuleArr) {
|
|
53
|
+
const [module, levelStr] = logLevelModule.split("=");
|
|
54
|
+
levelModule[module] = parseLogLevel(levelStr);
|
|
55
|
+
}
|
|
56
|
+
return levelModule;
|
|
80
57
|
}
|
|
81
58
|
/**
|
|
82
59
|
* Winston is not able to clean old log files if server is offline for a while
|
|
83
60
|
* so we have to do this manually when starting the node.
|
|
84
61
|
* See https://github.com/ChainSafe/lodestar/issues/4419
|
|
85
62
|
*/
|
|
86
|
-
export function cleanOldLogFiles(
|
|
87
|
-
|
|
88
|
-
const
|
|
63
|
+
export function cleanOldLogFiles(args, paths) {
|
|
64
|
+
var _a;
|
|
65
|
+
const filepath = (_a = args.logFile) !== null && _a !== void 0 ? _a : paths.defaultLogFilepath;
|
|
66
|
+
const folder = path.dirname(filepath);
|
|
67
|
+
const filename = path.basename(filepath);
|
|
89
68
|
const lastIndexDot = filename.lastIndexOf(".");
|
|
90
69
|
const prefix = filename.substring(0, lastIndexDot);
|
|
91
70
|
const extension = filename.substring(lastIndexDot + 1, filename.length);
|
|
@@ -93,7 +72,7 @@ export function cleanOldLogFiles(filePath, maxFiles) {
|
|
|
93
72
|
.readdirSync(folder, { withFileTypes: true })
|
|
94
73
|
.filter((de) => de.isFile())
|
|
95
74
|
.map((de) => de.name)
|
|
96
|
-
.filter((logFileName) => shouldDeleteLogFile(prefix, extension, logFileName,
|
|
75
|
+
.filter((logFileName) => shouldDeleteLogFile(prefix, extension, logFileName, args.logFileDailyRotate))
|
|
97
76
|
.map((logFileName) => path.join(folder, logFileName));
|
|
98
77
|
// delete files
|
|
99
78
|
toDelete.forEach((filename) => fs.unlinkSync(filename));
|
|
@@ -107,10 +86,4 @@ export function shouldDeleteLogFile(prefix, extension, logFileName, maxFiles) {
|
|
|
107
86
|
}
|
|
108
87
|
return false;
|
|
109
88
|
}
|
|
110
|
-
function parseLogFormat(format) {
|
|
111
|
-
if (!logFormats.includes(format)) {
|
|
112
|
-
throw Error(`Invalid log format '${format}'`);
|
|
113
|
-
}
|
|
114
|
-
return format;
|
|
115
|
-
}
|
|
116
89
|
//# sourceMappingURL=logger.js.map
|
package/lib/util/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
export function pruneOldFilesInDir(dirpath, maxAgeMs) {
|
|
4
|
+
for (const entryName of fs.readdirSync(dirpath)) {
|
|
5
|
+
const entryPath = path.join(dirpath, entryName);
|
|
6
|
+
const stat = fs.statSync(entryPath);
|
|
7
|
+
if (stat.isDirectory()) {
|
|
8
|
+
pruneOldFilesInDir(entryPath, maxAgeMs);
|
|
9
|
+
}
|
|
10
|
+
else if (stat.isFile()) {
|
|
11
|
+
if (Date.now() - stat.mtimeMs > maxAgeMs) {
|
|
12
|
+
fs.unlinkSync(entryPath);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=pruneOldFilesInDir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pruneOldFilesInDir.js","sourceRoot":"","sources":["../../src/util/pruneOldFilesInDir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,QAAgB;IAClE,KAAK,MAAM,SAAS,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAEhD,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;SACzC;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE;gBACxC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;aAC1B;SACF;KACF;AACH,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.bb4151d238",
|
|
4
4
|
"description": "Command line interface for lodestar",
|
|
5
5
|
"author": "ChainSafe Systems",
|
|
6
6
|
"license": "LGPL-3.0",
|
|
@@ -23,8 +23,7 @@
|
|
|
23
23
|
"clean": "rm -rf lib && rm -f *.tsbuildinfo",
|
|
24
24
|
"build": "tsc -p tsconfig.build.json && yarn write-git-data",
|
|
25
25
|
"build:release": "yarn clean && yarn run build",
|
|
26
|
-
"build:
|
|
27
|
-
"build:types:watch": "yarn run build:types --watch",
|
|
26
|
+
"build:watch": "tsc -p tsconfig.build.json --watch",
|
|
28
27
|
"build:refdocs": "ts-node --esm ./docsgen/index.ts docs/cli.md",
|
|
29
28
|
"write-git-data": "node lib/util/gitData/writeGitData.js",
|
|
30
29
|
"check-build": "node -e \"(async function() { await import('./lib/index.js') })()\" lodestar --help",
|
|
@@ -57,20 +56,21 @@
|
|
|
57
56
|
"@chainsafe/bls": "7.1.1",
|
|
58
57
|
"@chainsafe/bls-keygen": "^0.3.0",
|
|
59
58
|
"@chainsafe/bls-keystore": "^2.0.0",
|
|
60
|
-
"@chainsafe/blst": "^0.2.
|
|
59
|
+
"@chainsafe/blst": "^0.2.9",
|
|
61
60
|
"@chainsafe/discv5": "^3.0.0",
|
|
62
61
|
"@chainsafe/ssz": "^0.10.2",
|
|
63
62
|
"@libp2p/peer-id-factory": "^2.0.3",
|
|
64
|
-
"@lodestar/api": "1.9.0-dev.
|
|
65
|
-
"@lodestar/beacon-node": "1.9.0-dev.
|
|
66
|
-
"@lodestar/config": "1.9.0-dev.
|
|
67
|
-
"@lodestar/db": "1.9.0-dev.
|
|
68
|
-
"@lodestar/light-client": "1.9.0-dev.
|
|
69
|
-
"@lodestar/
|
|
70
|
-
"@lodestar/
|
|
71
|
-
"@lodestar/
|
|
72
|
-
"@lodestar/
|
|
73
|
-
"@lodestar/
|
|
63
|
+
"@lodestar/api": "1.9.0-dev.bb4151d238",
|
|
64
|
+
"@lodestar/beacon-node": "1.9.0-dev.bb4151d238",
|
|
65
|
+
"@lodestar/config": "1.9.0-dev.bb4151d238",
|
|
66
|
+
"@lodestar/db": "1.9.0-dev.bb4151d238",
|
|
67
|
+
"@lodestar/light-client": "1.9.0-dev.bb4151d238",
|
|
68
|
+
"@lodestar/logger": "1.9.0-dev.bb4151d238",
|
|
69
|
+
"@lodestar/params": "1.9.0-dev.bb4151d238",
|
|
70
|
+
"@lodestar/state-transition": "1.9.0-dev.bb4151d238",
|
|
71
|
+
"@lodestar/types": "1.9.0-dev.bb4151d238",
|
|
72
|
+
"@lodestar/utils": "1.9.0-dev.bb4151d238",
|
|
73
|
+
"@lodestar/validator": "1.9.0-dev.bb4151d238",
|
|
74
74
|
"@multiformats/multiaddr": "^11.0.0",
|
|
75
75
|
"@types/lockfile": "^1.0.2",
|
|
76
76
|
"bip39": "^3.1.0",
|
|
@@ -94,11 +94,12 @@
|
|
|
94
94
|
"yargs": "^17.7.1"
|
|
95
95
|
},
|
|
96
96
|
"devDependencies": {
|
|
97
|
+
"@types/debug": "^4.1.7",
|
|
97
98
|
"@types/expand-tilde": "^2.0.0",
|
|
98
99
|
"@types/got": "^9.6.12",
|
|
99
100
|
"@types/inquirer": "^9.0.3",
|
|
100
101
|
"@types/lodash": "^4.14.192",
|
|
101
102
|
"@types/yargs": "^17.0.24"
|
|
102
103
|
},
|
|
103
|
-
"gitHead": "
|
|
104
|
+
"gitHead": "80a5f281b102c27294fb5d6579ead9705a364b90"
|
|
104
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,92 +0,0 @@
|
|
|
1
|
-
import { spawn, Pool, Worker } from "@chainsafe/threads";
|
|
2
|
-
import { SignerType } from "@lodestar/validator";
|
|
3
|
-
import bls from "@chainsafe/bls";
|
|
4
|
-
import { clearKeystoreCache, loadKeystoreCache, writeKeystoreCache } from "../keystoreCache.js";
|
|
5
|
-
import { lockFilepath, unlockFilepath } from "../../../../util/lockfile.js";
|
|
6
|
-
import { defaultPoolSize } from "./poolSize.js";
|
|
7
|
-
/**
|
|
8
|
-
* Decrypt keystore definitions using a threadpool
|
|
9
|
-
*/
|
|
10
|
-
export async function decryptKeystoreDefinitions(keystoreDefinitions, opts) {
|
|
11
|
-
if (opts.cacheFilePath) {
|
|
12
|
-
try {
|
|
13
|
-
const signers = await loadKeystoreCache(opts.cacheFilePath, keystoreDefinitions);
|
|
14
|
-
if (opts === null || opts === void 0 ? void 0 : opts.onDecrypt) {
|
|
15
|
-
opts === null || opts === void 0 ? void 0 : opts.onDecrypt(signers.length - 1);
|
|
16
|
-
}
|
|
17
|
-
opts.logger.debug("Loaded keystores via keystore cache");
|
|
18
|
-
return signers;
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
// Some error loading the cache, ignore and invalidate cache
|
|
22
|
-
await clearKeystoreCache(opts.cacheFilePath);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
const signers = new Array(keystoreDefinitions.length);
|
|
26
|
-
const passwords = new Array(keystoreDefinitions.length);
|
|
27
|
-
const tasks = [];
|
|
28
|
-
const errors = [];
|
|
29
|
-
const pool = Pool(() => spawn(new Worker("./worker.js"), {
|
|
30
|
-
// The number below is big enough to almost disable the timeout which helps during tests run on unpredictablely slow hosts
|
|
31
|
-
timeout: 5 * 60 * 1000,
|
|
32
|
-
}), defaultPoolSize);
|
|
33
|
-
for (const [index, definition] of keystoreDefinitions.entries()) {
|
|
34
|
-
try {
|
|
35
|
-
lockFilepath(definition.keystorePath);
|
|
36
|
-
}
|
|
37
|
-
catch (e) {
|
|
38
|
-
if (opts.ignoreLockFile) {
|
|
39
|
-
opts.logger.warn("Keystore forcefully loaded even though lockfile exists", {
|
|
40
|
-
path: definition.keystorePath,
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
throw e;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
const task = pool.queue((thread) => thread.decryptKeystoreDefinition(definition));
|
|
48
|
-
tasks.push(task);
|
|
49
|
-
task
|
|
50
|
-
.then((secretKeyBytes) => {
|
|
51
|
-
const signer = {
|
|
52
|
-
type: SignerType.Local,
|
|
53
|
-
secretKey: bls.SecretKey.fromBytes(secretKeyBytes),
|
|
54
|
-
};
|
|
55
|
-
signers[index] = signer;
|
|
56
|
-
passwords[index] = definition.password;
|
|
57
|
-
if (opts === null || opts === void 0 ? void 0 : opts.onDecrypt) {
|
|
58
|
-
opts === null || opts === void 0 ? void 0 : opts.onDecrypt(index);
|
|
59
|
-
}
|
|
60
|
-
})
|
|
61
|
-
.catch((e) => {
|
|
62
|
-
// In-progress tasks can't be canceled, so there's a chance that multiple errors may be caught
|
|
63
|
-
// add to the list of errors
|
|
64
|
-
errors.push(e);
|
|
65
|
-
// cancel all pending tasks, no need to continue decrypting after we hit one error
|
|
66
|
-
for (const task of tasks) {
|
|
67
|
-
task.cancel();
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
try {
|
|
72
|
-
// only resolves if there are no errored tasks
|
|
73
|
-
await pool.completed(true);
|
|
74
|
-
}
|
|
75
|
-
catch (e) {
|
|
76
|
-
// If an error occurs, the program isn't going to be running,
|
|
77
|
-
// so we should unlock all lockfiles we created
|
|
78
|
-
for (const { keystorePath } of keystoreDefinitions) {
|
|
79
|
-
unlockFilepath(keystorePath);
|
|
80
|
-
}
|
|
81
|
-
throw new AggregateError(errors);
|
|
82
|
-
}
|
|
83
|
-
finally {
|
|
84
|
-
await pool.terminate();
|
|
85
|
-
}
|
|
86
|
-
if (opts.cacheFilePath) {
|
|
87
|
-
await writeKeystoreCache(opts.cacheFilePath, signers, passwords);
|
|
88
|
-
opts.logger.debug("Written keystores to keystore cache");
|
|
89
|
-
}
|
|
90
|
-
return signers;
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cmds/validator/keymanager/decryptKeystoreDefinitions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAgB,IAAI,EAAc,MAAM,EAAC,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAc,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAC5D,OAAO,GAAG,MAAM,gBAAgB,CAAC;AAEjC,OAAO,EAAC,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAG9C;;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;YACjF,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;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACzD,OAAO,OAAO,CAAC;SAChB;QAAC,MAAM;YACN,4DAA4D;YAC5D,MAAM,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC9C;KACF;IAED,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAkB,CAAC;IACvE,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAa,CAAC;IACpE,MAAM,KAAK,GAAqE,EAAE,CAAC;IACnF,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,CACf,GAAG,EAAE,CACH,KAAK,CAA2B,IAAI,MAAM,CAAC,aAAa,CAAC,EAAE;QACzD,0HAA0H;QAC1H,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;KACvB,CAAC,EACJ,eAAe,CAChB,CAAC;IACF,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,mBAAmB,CAAC,OAAO,EAAE,EAAE;QAC/D,IAAI;YACF,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;SACvC;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wDAAwD,EAAE;oBACzE,IAAI,EAAE,UAAU,CAAC,YAAY;iBAC9B,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,CAAC,CAAC;aACT;SACF;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC;QAClF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI;aACD,IAAI,CAAC,CAAC,cAA0B,EAAE,EAAE;YACnC,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,CAAC;aACD,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;YAClB,8FAA8F;YAC9F,4BAA4B;YAC5B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,kFAAkF;YAClF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;QACH,CAAC,CAAC,CAAC;KACN;IAED,IAAI;QACF,8CAA8C;QAC9C,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KAC5B;IAAC,OAAO,CAAC,EAAE;QACV,6DAA6D;QAC7D,+CAA+C;QAC/C,KAAK,MAAM,EAAC,YAAY,EAAC,IAAI,mBAAmB,EAAE;YAChD,cAAc,CAAC,YAAY,CAAC,CAAC;SAC9B;QAED,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;KAClC;YAAS;QACR,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;KACxB;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"}
|
|
@@ -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 { 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, "info" | "warn" | "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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import winston from "winston";
|
|
3
|
-
import { LEVEL } from "triple-beam";
|
|
4
|
-
import { LogLevel } from "@lodestar/utils";
|
|
5
|
-
interface DefaultMeta {
|
|
6
|
-
module: string;
|
|
7
|
-
}
|
|
8
|
-
interface LogInfo extends DefaultMeta {
|
|
9
|
-
[LEVEL]: LogLevel;
|
|
10
|
-
}
|
|
11
|
-
export declare class ConsoleDynamicLevel extends winston.transports.Console {
|
|
12
|
-
private readonly levelByModule;
|
|
13
|
-
private readonly defaultLevel;
|
|
14
|
-
private readonly levels;
|
|
15
|
-
private parent?;
|
|
16
|
-
constructor(opts: {
|
|
17
|
-
defaultLevel: LogLevel;
|
|
18
|
-
} & winston.transports.ConsoleTransportOptions);
|
|
19
|
-
setModuleLevel(module: string, level: LogLevel): void;
|
|
20
|
-
deleteModuleLevel(module: string): boolean;
|
|
21
|
-
_write(info: LogInfo, enc: BufferEncoding, callback: (error?: Error | null | undefined) => void): void;
|
|
22
|
-
}
|
|
23
|
-
export {};
|
|
24
|
-
//# sourceMappingURL=loggerConsoleTransport.d.ts.map
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import winston from "winston";
|
|
2
|
-
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
3
|
-
import { LEVEL } from "triple-beam";
|
|
4
|
-
export class ConsoleDynamicLevel extends winston.transports.Console {
|
|
5
|
-
constructor(opts) {
|
|
6
|
-
super(opts);
|
|
7
|
-
this.levelByModule = new Map();
|
|
8
|
-
this.defaultLevel = opts.defaultLevel;
|
|
9
|
-
// Set level and parent to undefined so that underlying transport logs everything
|
|
10
|
-
this.level = undefined;
|
|
11
|
-
}
|
|
12
|
-
setModuleLevel(module, level) {
|
|
13
|
-
this.levelByModule.set(module, level);
|
|
14
|
-
}
|
|
15
|
-
deleteModuleLevel(module) {
|
|
16
|
-
return this.levelByModule.delete(module);
|
|
17
|
-
}
|
|
18
|
-
_write(info, enc, callback) {
|
|
19
|
-
var _a;
|
|
20
|
-
const moduleLevel = (_a = this.levelByModule.get(info.module)) !== null && _a !== void 0 ? _a : this.defaultLevel;
|
|
21
|
-
// Min number is highest prio log level
|
|
22
|
-
// levels = {error: 0, warn: 1, info: 2, ...}
|
|
23
|
-
if (this.levels[moduleLevel] >= this.levels[info[LEVEL]]) {
|
|
24
|
-
// Set level and parent to undefined so that underlying transport logs everything
|
|
25
|
-
if (this.parent) {
|
|
26
|
-
this.parent = undefined;
|
|
27
|
-
}
|
|
28
|
-
super._write(info, enc, callback);
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
callback(null);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=loggerConsoleTransport.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loggerConsoleTransport.js","sourceRoot":"","sources":["../../src/util/loggerConsoleTransport.ts"],"names":[],"mappings":"AAAA,OAAO,OAAiB,MAAM,SAAS,CAAC;AACxC,6DAA6D;AAC7D,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAC;AAWlC,MAAM,OAAO,mBAAoB,SAAQ,OAAO,CAAC,UAAU,CAAC,OAAO;IAQjE,YAAY,IAA2E;QACrF,KAAK,CAAC,IAAI,CAAC,CAAC;QARG,kBAAa,GAAG,IAAI,GAAG,EAAoB,CAAC;QAU3D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAEtC,iFAAiF;QACjF,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,cAAc,CAAC,MAAc,EAAE,KAAe;QAC5C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,iBAAiB,CAAC,MAAc;QAC9B,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,IAAa,EAAE,GAAmB,EAAE,QAAoD;;QAC7F,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAE,IAAgB,CAAC,MAAM,CAAC,mCAAI,IAAI,CAAC,YAAY,CAAC;QAE1F,uCAAuC;QACvC,6CAA6C;QAE7C,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;YACxD,iFAAiF;YACjF,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;aACzB;YAED,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;SACnC;aAAM;YACL,QAAQ,CAAC,IAAI,CAAC,CAAC;SAChB;IACH,CAAC;CACF"}
|