@chainsafe/lodestar 1.9.0-dev.951fda60f0 → 1.9.0-dev.9e57b7d320

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.
Files changed (114) hide show
  1. package/.git-data.json +1 -1
  2. package/README.md +1 -1
  3. package/lib/cmds/beacon/handler.js +36 -11
  4. package/lib/cmds/beacon/handler.js.map +1 -1
  5. package/lib/cmds/beacon/initBeaconState.js +23 -9
  6. package/lib/cmds/beacon/initBeaconState.js.map +1 -1
  7. package/lib/cmds/beacon/options.d.ts +5 -5
  8. package/lib/cmds/beacon/options.js +20 -9
  9. package/lib/cmds/beacon/options.js.map +1 -1
  10. package/lib/cmds/dev/options.d.ts +9 -7
  11. package/lib/cmds/lightclient/handler.js +5 -0
  12. package/lib/cmds/lightclient/handler.js.map +1 -1
  13. package/lib/cmds/lightclient/options.d.ts +2 -2
  14. package/lib/cmds/lightclient/options.js +0 -2
  15. package/lib/cmds/lightclient/options.js.map +1 -1
  16. package/lib/cmds/validator/blsToExecutionChange.d.ts +3 -3
  17. package/lib/cmds/validator/blsToExecutionChange.js +13 -6
  18. package/lib/cmds/validator/blsToExecutionChange.js.map +1 -1
  19. package/lib/cmds/validator/handler.js +16 -16
  20. package/lib/cmds/validator/handler.js.map +1 -1
  21. package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions.d.ts +16 -0
  22. package/lib/cmds/validator/keymanager/{decryptKeystoreDefinitions/index.js → decryptKeystoreDefinitions.js} +42 -32
  23. package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions.js.map +1 -0
  24. package/lib/cmds/validator/keymanager/decryptKeystores/index.d.ts +2 -0
  25. package/lib/cmds/validator/keymanager/decryptKeystores/index.js +2 -0
  26. package/lib/cmds/validator/keymanager/decryptKeystores/index.js.map +1 -0
  27. package/lib/cmds/validator/keymanager/decryptKeystores/poolSize.d.ts +6 -0
  28. package/lib/cmds/validator/keymanager/decryptKeystores/poolSize.js +19 -0
  29. package/lib/cmds/validator/keymanager/decryptKeystores/poolSize.js.map +1 -0
  30. package/lib/cmds/validator/keymanager/decryptKeystores/threadPool.d.ts +25 -0
  31. package/lib/cmds/validator/keymanager/decryptKeystores/threadPool.js +53 -0
  32. package/lib/cmds/validator/keymanager/decryptKeystores/threadPool.js.map +1 -0
  33. package/lib/cmds/validator/keymanager/decryptKeystores/types.d.ts +11 -0
  34. package/lib/cmds/validator/keymanager/decryptKeystores/types.js +4 -0
  35. package/lib/cmds/validator/keymanager/decryptKeystores/types.js.map +1 -0
  36. package/lib/cmds/validator/keymanager/decryptKeystores/worker.d.ts +9 -0
  37. package/lib/cmds/validator/keymanager/{decryptKeystoreDefinitions → decryptKeystores}/worker.js +6 -5
  38. package/lib/cmds/validator/keymanager/decryptKeystores/worker.js.map +1 -0
  39. package/lib/cmds/validator/keymanager/impl.d.ts +2 -1
  40. package/lib/cmds/validator/keymanager/impl.js +23 -16
  41. package/lib/cmds/validator/keymanager/impl.js.map +1 -1
  42. package/lib/cmds/validator/keymanager/keystoreCache.js +2 -1
  43. package/lib/cmds/validator/keymanager/keystoreCache.js.map +1 -1
  44. package/lib/cmds/validator/list.js +1 -1
  45. package/lib/cmds/validator/list.js.map +1 -1
  46. package/lib/cmds/validator/options.d.ts +4 -3
  47. package/lib/cmds/validator/options.js +22 -16
  48. package/lib/cmds/validator/options.js.map +1 -1
  49. package/lib/cmds/validator/signers/importExternalKeystores.js +0 -2
  50. package/lib/cmds/validator/signers/importExternalKeystores.js.map +1 -1
  51. package/lib/cmds/validator/signers/index.js +3 -1
  52. package/lib/cmds/validator/signers/index.js.map +1 -1
  53. package/lib/cmds/validator/slashingProtection/export.d.ts +1 -1
  54. package/lib/cmds/validator/slashingProtection/export.js +7 -4
  55. package/lib/cmds/validator/slashingProtection/export.js.map +1 -1
  56. package/lib/cmds/validator/slashingProtection/import.d.ts +1 -1
  57. package/lib/cmds/validator/slashingProtection/import.js +7 -3
  58. package/lib/cmds/validator/slashingProtection/import.js.map +1 -1
  59. package/lib/cmds/validator/slashingProtection/options.js +1 -1
  60. package/lib/cmds/validator/slashingProtection/options.js.map +1 -1
  61. package/lib/cmds/validator/slashingProtection/utils.d.ts +2 -2
  62. package/lib/cmds/validator/slashingProtection/utils.js +4 -8
  63. package/lib/cmds/validator/slashingProtection/utils.js.map +1 -1
  64. package/lib/cmds/validator/voluntaryExit.js +2 -2
  65. package/lib/cmds/validator/voluntaryExit.js.map +1 -1
  66. package/lib/options/beaconNodeOptions/api.d.ts +6 -5
  67. package/lib/options/beaconNodeOptions/api.js +8 -2
  68. package/lib/options/beaconNodeOptions/api.js.map +1 -1
  69. package/lib/options/beaconNodeOptions/builder.d.ts +4 -5
  70. package/lib/options/beaconNodeOptions/builder.js +11 -15
  71. package/lib/options/beaconNodeOptions/builder.js.map +1 -1
  72. package/lib/options/beaconNodeOptions/chain.d.ts +13 -12
  73. package/lib/options/beaconNodeOptions/chain.js +14 -4
  74. package/lib/options/beaconNodeOptions/chain.js.map +1 -1
  75. package/lib/options/beaconNodeOptions/eth1.d.ts +6 -6
  76. package/lib/options/beaconNodeOptions/eth1.js +7 -2
  77. package/lib/options/beaconNodeOptions/eth1.js.map +1 -1
  78. package/lib/options/beaconNodeOptions/execution.d.ts +1 -1
  79. package/lib/options/beaconNodeOptions/execution.js +9 -5
  80. package/lib/options/beaconNodeOptions/execution.js.map +1 -1
  81. package/lib/options/beaconNodeOptions/index.d.ts +13 -12
  82. package/lib/options/beaconNodeOptions/metrics.d.ts +1 -1
  83. package/lib/options/beaconNodeOptions/metrics.js +2 -2
  84. package/lib/options/beaconNodeOptions/metrics.js.map +1 -1
  85. package/lib/options/beaconNodeOptions/monitoring.d.ts +5 -5
  86. package/lib/options/beaconNodeOptions/network.d.ts +19 -19
  87. package/lib/options/beaconNodeOptions/network.js +2 -2
  88. package/lib/options/beaconNodeOptions/network.js.map +1 -1
  89. package/lib/options/beaconNodeOptions/sync.d.ts +4 -4
  90. package/lib/options/beaconNodeOptions/sync.js +2 -1
  91. package/lib/options/beaconNodeOptions/sync.js.map +1 -1
  92. package/lib/options/globalOptions.d.ts +2 -2
  93. package/lib/options/logOptions.js +3 -3
  94. package/lib/options/logOptions.js.map +1 -1
  95. package/lib/util/command.d.ts +2 -1
  96. package/lib/util/command.js.map +1 -1
  97. package/lib/util/file.js.map +1 -1
  98. package/lib/util/index.d.ts +1 -0
  99. package/lib/util/index.js +1 -0
  100. package/lib/util/index.js.map +1 -1
  101. package/lib/util/pruneOldFilesInDir.d.ts +2 -0
  102. package/lib/util/pruneOldFilesInDir.js +17 -0
  103. package/lib/util/pruneOldFilesInDir.js.map +1 -0
  104. package/package.json +14 -14
  105. package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/index.d.ts +0 -8
  106. package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/index.js.map +0 -1
  107. package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/poolSize.d.ts +0 -6
  108. package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/poolSize.js +0 -19
  109. package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/poolSize.js.map +0 -1
  110. package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/types.d.ts +0 -12
  111. package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/types.js +0 -2
  112. package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/types.js.map +0 -1
  113. package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/worker.d.ts +0 -9
  114. package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions/worker.js.map +0 -1
package/.git-data.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "branch": "unstable",
3
- "commit": "951fda60f0c8d17a981b03301eece58c886e09a1"
3
+ "commit": "9e57b7d320fcb2440cb8a8215e24a9232cf9fc0a"
4
4
  }
package/README.md CHANGED
@@ -23,7 +23,7 @@ Here's a quick list of the available CLI commands:
23
23
  | - | - |
24
24
  | `./bin/lodestar init` | Write a configuration and network identity to disk, by default `./.lodestar`|
25
25
  |`./bin/lodestar beacon` | Run a beacon node using a configuration from disk, by default `./.lodestar`|
26
- |`./bin/lodestar account` | Run various subcommands for creating/managing Ethereum Consensus accounts|
26
+ |`./bin/lodestar account` | Run various sub-commands for creating/managing Ethereum Consensus accounts|
27
27
  |`./bin/lodestar validator` | Run one or more validator clients|
28
28
  |`./bin/lodestar dev` | Quickly bootstrap a beacon node and multiple validators. Use for development and testing|
29
29
  Append `--help` to any of these commands to print out all options for each command.
@@ -9,11 +9,13 @@ import { getNodeLogger } from "@lodestar/logger/node";
9
9
  import { parseBeaconNodeArgs } from "../../options/index.js";
10
10
  import { BeaconNodeOptions, getBeaconConfigFromArgs } from "../../config/index.js";
11
11
  import { getNetworkBootnodes, getNetworkData, isKnownNetworkName, readBootnodes } from "../../networks/index.js";
12
- import { onGracefulShutdown, mkdir, writeFile600Perm, cleanOldLogFiles, parseLoggerArgs } from "../../util/index.js";
12
+ import { onGracefulShutdown, mkdir, writeFile600Perm, cleanOldLogFiles, parseLoggerArgs, pruneOldFilesInDir, } from "../../util/index.js";
13
13
  import { getVersionData } from "../../util/version.js";
14
14
  import { getBeaconPaths } from "./paths.js";
15
15
  import { initBeaconState } from "./initBeaconState.js";
16
16
  import { initPeerIdAndEnr } from "./initPeerIdAndEnr.js";
17
+ const DEFAULT_RETENTION_SSZ_OBJECTS_HOURS = 15 * 24;
18
+ const HOURS_TO_MS = 3600 * 1000;
17
19
  /**
18
20
  * Runs a beacon node.
19
21
  */
@@ -40,11 +42,7 @@ export async function beaconHandler(args) {
40
42
  networkRegistry = new Registry();
41
43
  metricsRegistries.push(networkRegistry);
42
44
  }
43
- const db = new BeaconDb({
44
- config,
45
- controller: new LevelDbController(options.db, { metrics: null, logger }),
46
- });
47
- await db.start();
45
+ const db = new BeaconDb(config, await LevelDbController.create(options.db, { metrics: null, logger }));
48
46
  logger.info("Connected to LevelDB database", { path: options.db.name });
49
47
  // BeaconNode setup
50
48
  try {
@@ -62,8 +60,25 @@ export async function beaconHandler(args) {
62
60
  wsCheckpoint,
63
61
  metricsRegistries,
64
62
  });
65
- if (args.attachToGlobalThis)
63
+ // dev debug option to have access to the BN instance
64
+ if (args.attachToGlobalThis) {
66
65
  globalThis.bn = node;
66
+ }
67
+ // Prune invalid SSZ objects every interval
68
+ const { persistInvalidSszObjectsDir } = args;
69
+ const pruneInvalidSSZObjectsInterval = persistInvalidSszObjectsDir
70
+ ? setInterval(() => {
71
+ var _a;
72
+ try {
73
+ pruneOldFilesInDir(persistInvalidSszObjectsDir, ((_a = args.persistInvalidSszObjectsRetentionHours) !== null && _a !== void 0 ? _a : DEFAULT_RETENTION_SSZ_OBJECTS_HOURS) * HOURS_TO_MS);
74
+ }
75
+ catch (e) {
76
+ logger.warn("Error pruning invalid SSZ objects", { persistInvalidSszObjectsDir }, e);
77
+ }
78
+ // Run every ~1 hour
79
+ }, HOURS_TO_MS)
80
+ : null;
81
+ // Intercept SIGINT signal, to perform final ops before exiting
67
82
  onGracefulShutdown(async () => {
68
83
  if (args.persistNetworkIdentity) {
69
84
  try {
@@ -76,6 +91,9 @@ export async function beaconHandler(args) {
76
91
  }
77
92
  }
78
93
  abortController.abort();
94
+ if (pruneInvalidSSZObjectsInterval !== null) {
95
+ clearInterval(pruneInvalidSSZObjectsInterval);
96
+ }
79
97
  }, logger.info.bind(logger));
80
98
  abortController.signal.addEventListener("abort", async () => {
81
99
  try {
@@ -85,14 +103,14 @@ export async function beaconHandler(args) {
85
103
  catch (e) {
86
104
  logger.error("Error closing beacon node", {}, e);
87
105
  // Make sure db is always closed gracefully
88
- await db.stop();
106
+ await db.close();
89
107
  // Must explicitly exit process due to potential active handles
90
108
  process.exit(1);
91
109
  }
92
110
  }, { once: true });
93
111
  }
94
112
  catch (e) {
95
- await db.stop();
113
+ await db.close();
96
114
  if (e instanceof ErrorAborted) {
97
115
  logger.info(e.message); // Let the user know the abort was received but don't print as error
98
116
  }
@@ -128,8 +146,15 @@ export async function beaconHandlerInit(args) {
128
146
  const { peerId, enr } = await initPeerIdAndEnr(args, beaconPaths.beaconDir, logger);
129
147
  // Inject ENR to beacon options
130
148
  beaconNodeOptions.set({ network: { discv5: { enr: enr.encodeTxt(), config: { enrUpdate: !enr.ip && !enr.ip6 } } } });
131
- // Add simple version string for libp2p agent version
132
- beaconNodeOptions.set({ network: { version: version.split("/")[0] } });
149
+ if (args.private) {
150
+ beaconNodeOptions.set({ network: { private: true } });
151
+ }
152
+ else {
153
+ // Add simple version string for libp2p agent version
154
+ beaconNodeOptions.set({ network: { version: version.split("/")[0] } });
155
+ // Add User-Agent header to all builder requests
156
+ beaconNodeOptions.set({ executionBuilder: { userAgent: `Lodestar/${version}` } });
157
+ }
133
158
  // Render final options
134
159
  const options = beaconNodeOptions.getWithDefaults();
135
160
  return { config, options, beaconPaths, network, version, commit, peerId, logger };
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/cmds/beacon/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/cmds/beacon/handler.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,9 @@ async function initAndVerifyWeakSubjectivityState(config, db, logger, store, wsS
43
43
  * 4. create genesis state from eth1
44
44
  */
45
45
  export async function initBeaconState(options, args, chainForkConfig, db, logger, signal) {
46
+ if (args.forceCheckpointSync && !(args.checkpointState || args.checkpointSyncUrl)) {
47
+ throw new Error("Forced checkpoint sync without specifying a checkpointState or checkpointSyncUrl");
48
+ }
46
49
  // fetch the latest state stored in the db which will be used in all cases, if it exists, either
47
50
  // i) used directly as the anchor state
48
51
  // ii) used during verification of a weak subjectivity state,
@@ -50,15 +53,26 @@ export async function initBeaconState(options, args, chainForkConfig, db, logger
50
53
  if (lastDbState) {
51
54
  const config = createBeaconConfig(chainForkConfig, lastDbState.genesisValidatorsRoot);
52
55
  const wssCheck = isWithinWeakSubjectivityPeriod(config, lastDbState, getCheckpointFromState(lastDbState));
53
- // All cases when we want to directly use lastDbState as the anchor state:
54
- // - if no checkpoint sync args provided, or
55
- // - the lastDbState is within weak subjectivity period:
56
- if ((!args.checkpointState && !args.checkpointSyncUrl) || wssCheck) {
57
- const anchorState = await initStateFromAnchorState(config, db, logger, lastDbState, {
58
- isWithinWeakSubjectivityPeriod: wssCheck,
59
- isCheckpointState: false,
60
- });
61
- return { anchorState };
56
+ // Explicitly force syncing from checkpoint state
57
+ if (args.forceCheckpointSync) {
58
+ // Forcing to sync from checkpoint is only recommended if node is taking too long to sync from last db state.
59
+ // It is important to remind the user to remove this flag again unless it is absolutely necessary.
60
+ if (wssCheck) {
61
+ logger.warn("Forced syncing from checkpoint even though db state is within weak subjectivity period");
62
+ logger.warn("Please consider removing --forceCheckpointSync flag unless absolutely necessary");
63
+ }
64
+ }
65
+ else {
66
+ // All cases when we want to directly use lastDbState as the anchor state:
67
+ // - if no checkpoint sync args provided, or
68
+ // - the lastDbState is within weak subjectivity period:
69
+ if ((!args.checkpointState && !args.checkpointSyncUrl) || wssCheck) {
70
+ const anchorState = await initStateFromAnchorState(config, db, logger, lastDbState, {
71
+ isWithinWeakSubjectivityPeriod: wssCheck,
72
+ isCheckpointState: false,
73
+ });
74
+ return { anchorState };
75
+ }
62
76
  }
63
77
  }
64
78
  // See if we can sync state using checkpoint sync args or else start from genesis
@@ -1 +1 @@
1
- {"version":3,"file":"initBeaconState.js","sourceRoot":"","sources":["../../../src/cmds/beacon/initBeaconState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initBeaconState.js","sourceRoot":"","sources":["../../../src/cmds/beacon/initBeaconState.ts"],"names":[],"mappings":"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"}
@@ -11,11 +11,15 @@ type BeaconExtraArgs = {
11
11
  checkpointSyncUrl?: string;
12
12
  checkpointState?: string;
13
13
  wssCheckpoint?: string;
14
+ forceCheckpointSync?: boolean;
14
15
  beaconDir?: string;
15
16
  dbDir?: string;
16
17
  persistInvalidSszObjectsDir?: string;
18
+ persistInvalidSszObjectsRetentionHours?: number;
17
19
  peerStoreDir?: string;
18
20
  persistNetworkIdentity?: boolean;
21
+ private?: boolean;
22
+ attachToGlobalThis?: boolean;
19
23
  };
20
24
  export declare const beaconExtraOptions: CliCommandOptions<BeaconExtraArgs>;
21
25
  type ENRArgs = {
@@ -27,11 +31,7 @@ type ENRArgs = {
27
31
  "enr.udp6"?: number;
28
32
  nat?: boolean;
29
33
  };
30
- export type DebugArgs = {
31
- attachToGlobalThis: boolean;
32
- };
33
- export declare const debugOptions: CliCommandOptions<DebugArgs>;
34
- export type BeaconArgs = BeaconExtraArgs & LogArgs & BeaconPaths & BeaconNodeArgs & ENRArgs & DebugArgs;
34
+ export type BeaconArgs = BeaconExtraArgs & LogArgs & BeaconPaths & BeaconNodeArgs & ENRArgs;
35
35
  export declare const beaconOptions: {
36
36
  [k: string]: Options;
37
37
  };
@@ -33,10 +33,15 @@ export const beaconExtraOptions = {
33
33
  group: "weak subjectivity",
34
34
  },
35
35
  wssCheckpoint: {
36
- description: "Start beacon node off a state at the provided weak subjectivity checkpoint, to be supplied in <blockRoot>:<epoch> format. For example, 0x1234:100 will sync and start off from the weakSubjectivity state at checkpoint of epoch 100 with block root 0x1234.",
36
+ description: "Start beacon node off a state at the provided weak subjectivity checkpoint, to be supplied in <blockRoot>:<epoch> format. For example, 0x1234:100 will sync and start off from the weak subjectivity state at checkpoint of epoch 100 with block root 0x1234.",
37
37
  type: "string",
38
38
  group: "weak subjectivity",
39
39
  },
40
+ forceCheckpointSync: {
41
+ description: "Force syncing from checkpoint state even if db state is within weak subjectivity period. This helps to avoid long sync times after node has been offline for a while.",
42
+ type: "boolean",
43
+ group: "weak subjectivity",
44
+ },
40
45
  beaconDir: {
41
46
  description: "Beacon root directory",
42
47
  defaultDescription: defaultBeaconPaths.beaconDir,
@@ -55,6 +60,11 @@ export const beaconExtraOptions = {
55
60
  hidden: true,
56
61
  type: "string",
57
62
  },
63
+ persistInvalidSszObjectsRetentionHours: {
64
+ description: "Number of hours to keep invalid SSZ objects on local disk",
65
+ hidden: true,
66
+ type: "number",
67
+ },
58
68
  peerStoreDir: {
59
69
  hidden: true,
60
70
  description: "Peer store directory",
@@ -66,6 +76,15 @@ export const beaconExtraOptions = {
66
76
  description: "Whether to reuse the same peer-id across restarts",
67
77
  type: "boolean",
68
78
  },
79
+ private: {
80
+ description: "Do not send implementation details over p2p identify protocol and in builder requests",
81
+ type: "boolean",
82
+ },
83
+ attachToGlobalThis: {
84
+ hidden: true,
85
+ description: "Attach the beacon node to `globalThis`. Useful to inspect a running beacon node.",
86
+ type: "boolean",
87
+ },
69
88
  };
70
89
  const enrOptions = {
71
90
  "enr.ip": {
@@ -104,19 +123,11 @@ const enrOptions = {
104
123
  group: "enr",
105
124
  },
106
125
  };
107
- export const debugOptions = {
108
- attachToGlobalThis: {
109
- hidden: true,
110
- description: "Attach the beacon node to `globalThis`. Useful to inspect a running beacon node.",
111
- type: "boolean",
112
- },
113
- };
114
126
  export const beaconOptions = {
115
127
  ...beaconExtraOptions,
116
128
  ...logOptions,
117
129
  ...beaconNodeOptions,
118
130
  ...paramsOptions,
119
131
  ...enrOptions,
120
- ...debugOptions,
121
132
  };
122
133
  //# sourceMappingURL=options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/cmds/beacon/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/cmds/beacon/options.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ type IDevOwnArgs = {
11
11
  };
12
12
  export declare const devOptions: {
13
13
  genesisEth1Hash: Options;
14
- genesisValidators: Options;
14
+ genesisValidators: Options & Required<Pick<Options, "default">>;
15
15
  startValidators: Options;
16
16
  genesisTime: Options;
17
17
  reset: Options;
@@ -33,12 +33,12 @@ export declare const devOptions: {
33
33
  "rest.cors"?: Options | undefined;
34
34
  "rest.address"?: Options | undefined;
35
35
  "rest.port"?: Options | undefined;
36
+ "rest.headerLimit"?: Options | undefined;
36
37
  "rest.bodyLimit"?: Options | undefined;
37
38
  "builder.urls"?: Options | undefined;
38
39
  "builder.timeout"?: Options | undefined;
39
40
  "builder.faultInspectionWindow"?: Options | undefined;
40
41
  "builder.allowedFaults"?: Options | undefined;
41
- "builder.userAgent"?: Options | undefined;
42
42
  "chain.blsVerifyAllMultiThread"?: Options | undefined;
43
43
  "chain.blsVerifyAllMainThread"?: Options | undefined;
44
44
  "chain.disableBlsBatchVerify"?: Options | undefined;
@@ -50,6 +50,7 @@ export declare const devOptions: {
50
50
  "chain.computeUnrealized"?: Options | undefined;
51
51
  "chain.assertCorrectProgressiveBalances"?: Options | undefined;
52
52
  "chain.maxSkipSlots"?: Options | undefined;
53
+ "chain.trustedSetup"?: Options | undefined;
53
54
  "safe-slots-to-import-optimistically"?: Options | undefined;
54
55
  "chain.archiveStateEpochFrequency"?: Options | undefined;
55
56
  emitPayloadAttributes?: Options | undefined;
@@ -103,17 +104,18 @@ export declare const devOptions: {
103
104
  "keymanager.port": Options;
104
105
  "keymanager.address": Options;
105
106
  "keymanager.cors": Options;
107
+ "keymanager.headerLimit": Options;
106
108
  "keymanager.bodyLimit": Options;
107
- logLevel: Options;
109
+ logLevel: Options & Required<Pick<Options, "default">>;
108
110
  logFile: Options;
109
- logFileLevel: Options;
110
- logFileDailyRotate: Options;
111
+ logFileLevel: Options & Required<Pick<Options, "default">>;
112
+ logFileDailyRotate: Options & Required<Pick<Options, "default">>;
111
113
  logFormatGenesisTime: Options;
112
114
  logPrefix: Options;
113
115
  logFormat: Options;
114
116
  logLevelModule: Options;
115
117
  validatorsDbDir: Options;
116
- beaconNodes: Options;
118
+ beaconNodes: Options & Required<Pick<Options, "default">>;
117
119
  force: Options;
118
120
  graffiti: Options;
119
121
  afterBlockDelaySlotFraction: Options;
@@ -121,7 +123,7 @@ export declare const devOptions: {
121
123
  disableAttestationGrouping: Options;
122
124
  proposerSettingsFile: Options;
123
125
  strictFeeRecipientCheck: Options;
124
- doppelgangerProtectionEnabled: Options;
126
+ doppelgangerProtection: Options;
125
127
  defaultGasLimit: Options;
126
128
  "builder.selection": Options;
127
129
  importKeystores: Options;
@@ -7,11 +7,16 @@ import { getNodeLogger } from "@lodestar/logger/node";
7
7
  import { getBeaconConfigFromArgs } from "../../config/beaconParams.js";
8
8
  import { getGlobalPaths } from "../../paths/global.js";
9
9
  import { parseLoggerArgs } from "../../util/logger.js";
10
+ import { YargsError } from "../../util/errors.js";
10
11
  export async function lightclientHandler(args) {
11
12
  const { config, network } = getBeaconConfigFromArgs(args);
12
13
  const globalPaths = getGlobalPaths(args, network);
13
14
  const logger = getNodeLogger(parseLoggerArgs(args, { defaultLogFilepath: path.join(globalPaths.dataDir, "lightclient.log") }, config));
14
15
  const { beaconApiUrl, checkpointRoot } = args;
16
+ if (!beaconApiUrl)
17
+ throw new YargsError("must provide beaconApiUrl arg");
18
+ if (!checkpointRoot)
19
+ throw new YargsError("must provide checkpointRoot arg");
15
20
  const api = getClient({ baseUrl: beaconApiUrl }, { config });
16
21
  const res = await api.beacon.getGenesis();
17
22
  ApiError.assert(res, "Can not fetch genesis data");
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/cmds/lightclient/handler.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAC,wBAAwB,EAAC,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAIrD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAmC;IAC1E,MAAM,EAAC,MAAM,EAAE,OAAO,EAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAElD,MAAM,MAAM,GAAG,aAAa,CAC1B,eAAe,CAAC,IAAI,EAAE,EAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAC,EAAE,MAAM,CAAC,CACvG,CAAC;IACF,MAAM,EAAC,YAAY,EAAE,cAAc,EAAC,GAAG,IAAI,CAAC;IAC5C,MAAM,GAAG,GAAG,SAAS,CAAC,EAAC,OAAO,EAAE,YAAY,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,4BAA4B,CAAC;QAC5D,MAAM;QACN,MAAM;QACN,WAAW,EAAE;YACX,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;YAClD,qBAAqB,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB;SAC/D;QACD,cAAc,EAAE,aAAa,CAAC,cAAc,CAAC;QAC7C,SAAS,EAAE,IAAI,wBAAwB,CAAC,GAAG,CAAC;KAC7C,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/cmds/lightclient/handler.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAC,wBAAwB,EAAC,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAIhD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAmC;IAC1E,MAAM,EAAC,MAAM,EAAE,OAAO,EAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAElD,MAAM,MAAM,GAAG,aAAa,CAC1B,eAAe,CAAC,IAAI,EAAE,EAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAC,EAAE,MAAM,CAAC,CACvG,CAAC;IAEF,MAAM,EAAC,YAAY,EAAE,cAAc,EAAC,GAAG,IAAI,CAAC;IAC5C,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,UAAU,CAAC,+BAA+B,CAAC,CAAC;IACzE,IAAI,CAAC,cAAc;QAAE,MAAM,IAAI,UAAU,CAAC,iCAAiC,CAAC,CAAC;IAE7E,MAAM,GAAG,GAAG,SAAS,CAAC,EAAC,OAAO,EAAE,YAAY,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,4BAA4B,CAAC;QAC5D,MAAM;QACN,MAAM;QACN,WAAW,EAAE;YACX,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;YAClD,qBAAqB,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB;SAC/D;QACD,cAAc,EAAE,aAAa,CAAC,cAAc,CAAC;QAC7C,SAAS,EAAE,IAAI,wBAAwB,CAAC,GAAG,CAAC;KAC7C,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { LogArgs } from "../../options/logOptions.js";
2
2
  import { CliCommandOptions } from "../../util/index.js";
3
3
  export type ILightClientArgs = LogArgs & {
4
- beaconApiUrl: string;
5
- checkpointRoot: string;
4
+ beaconApiUrl?: string;
5
+ checkpointRoot?: string;
6
6
  };
7
7
  export declare const lightclientOptions: CliCommandOptions<ILightClientArgs>;
8
8
  //# sourceMappingURL=options.d.ts.map
@@ -4,12 +4,10 @@ export const lightclientOptions = {
4
4
  beaconApiUrl: {
5
5
  description: "Url to a beacon node that support lightclient API",
6
6
  type: "string",
7
- require: true,
8
7
  },
9
8
  checkpointRoot: {
10
9
  description: "Checkpoint root hex string to sync the lightclient from, start with 0x",
11
10
  type: "string",
12
- require: true,
13
11
  },
14
12
  };
15
13
  //# sourceMappingURL=options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/cmds/lightclient/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,UAAU,EAAC,MAAM,6BAA6B,CAAC;AAQhE,MAAM,CAAC,MAAM,kBAAkB,GAAwC;IACrE,GAAG,UAAU;IACb,YAAY,EAAE;QACZ,WAAW,EAAE,mDAAmD;QAChE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,IAAI;KACd;IACD,cAAc,EAAE;QACd,WAAW,EAAE,wEAAwE;QACrF,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,IAAI;KACd;CACF,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/cmds/lightclient/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,UAAU,EAAC,MAAM,6BAA6B,CAAC;AAQhE,MAAM,CAAC,MAAM,kBAAkB,GAAwC;IACrE,GAAG,UAAU;IACb,YAAY,EAAE;QACZ,WAAW,EAAE,mDAAmD;QAChE,IAAI,EAAE,QAAQ;KACf;IACD,cAAc,EAAE;QACd,WAAW,EAAE,wEAAwE;QACrF,IAAI,EAAE,QAAQ;KACf;CACF,CAAC"}
@@ -2,9 +2,9 @@ import { CliCommand } from "../../util/index.js";
2
2
  import { GlobalArgs } from "../../options/index.js";
3
3
  import { IValidatorCliArgs } from "./options.js";
4
4
  type BlsToExecutionChangeArgs = {
5
- publicKey: string;
6
- fromBlsPrivkey: string;
7
- toExecutionAddress: string;
5
+ publicKey?: string;
6
+ fromBlsPrivkey?: string;
7
+ toExecutionAddress?: string;
8
8
  };
9
9
  export declare const blsToExecutionChange: CliCommand<BlsToExecutionChangeArgs, IValidatorCliArgs & GlobalArgs>;
10
10
  export {};
@@ -6,6 +6,7 @@ import { ApiError, getClient } from "@lodestar/api";
6
6
  import { fromHexString } from "@chainsafe/ssz";
7
7
  import bls from "@chainsafe/bls";
8
8
  import { PointFormat } from "@chainsafe/bls/types";
9
+ import { YargsError } from "../../util/index.js";
9
10
  import { getBeaconConfigFromArgs } from "../../config/index.js";
10
11
  export const blsToExecutionChange = {
11
12
  command: "bls-to-execution-change",
@@ -20,7 +21,7 @@ like to choose for BLS To Execution Change.",
20
21
  ],
21
22
  options: {
22
23
  publicKey: {
23
- description: "Validator pubkey for which to set withdrawal address hence enabling withdrawals",
24
+ description: "Validator public key for which to set withdrawal address hence enabling withdrawals",
24
25
  type: "string",
25
26
  string: true,
26
27
  },
@@ -36,7 +37,13 @@ like to choose for BLS To Execution Change.",
36
37
  },
37
38
  },
38
39
  handler: async (args) => {
39
- const publicKey = args.publicKey;
40
+ const { publicKey, fromBlsPrivkey, toExecutionAddress } = args;
41
+ if (!publicKey)
42
+ throw new YargsError("must provide publicKey arg");
43
+ if (!fromBlsPrivkey)
44
+ throw new YargsError("must provide fromBlsPrivkey arg");
45
+ if (!toExecutionAddress)
46
+ throw new YargsError("must provide toExecutionAddress arg");
40
47
  // Fetch genesisValidatorsRoot always from beacon node as anyway beacon node is needed for
41
48
  // submitting the signed message
42
49
  const { config: chainForkConfig } = getBeaconConfigFromArgs(args);
@@ -52,19 +59,19 @@ like to choose for BLS To Execution Change.",
52
59
  if (stateValidator === undefined) {
53
60
  throw new Error(`Validator pubkey ${publicKey} not found in state`);
54
61
  }
55
- const fromBlsPrivkey = bls.SecretKey.fromBytes(fromHexString(args.fromBlsPrivkey));
56
- const fromBlsPubkey = fromBlsPrivkey.toPublicKey().toBytes(PointFormat.compressed);
62
+ const blsPrivkey = bls.SecretKey.fromBytes(fromHexString(fromBlsPrivkey));
63
+ const fromBlsPubkey = blsPrivkey.toPublicKey().toBytes(PointFormat.compressed);
57
64
  const blsToExecutionChange = {
58
65
  validatorIndex: stateValidator.index,
59
66
  fromBlsPubkey,
60
- toExecutionAddress: fromHexString(args.toExecutionAddress),
67
+ toExecutionAddress: fromHexString(toExecutionAddress),
61
68
  };
62
69
  const signatureFork = ForkName.phase0;
63
70
  const domain = config.getDomainAtFork(signatureFork, DOMAIN_BLS_TO_EXECUTION_CHANGE);
64
71
  const signingRoot = computeSigningRoot(ssz.capella.BLSToExecutionChange, blsToExecutionChange, domain);
65
72
  const signedBLSToExecutionChange = {
66
73
  message: blsToExecutionChange,
67
- signature: fromBlsPrivkey.sign(signingRoot).toBytes(),
74
+ signature: blsPrivkey.sign(signingRoot).toBytes(),
68
75
  };
69
76
  ApiError.assert(await client.beacon.submitPoolBlsToExecutionChange([signedBLSToExecutionChange]), "Can not submit bls to execution change");
70
77
  console.log(`Submitted bls to execution change for ${publicKey}`);
@@ -1 +1 @@
1
- {"version":3,"file":"blsToExecutionChange.js","sourceRoot":"","sources":["../../../src/cmds/validator/blsToExecutionChange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blsToExecutionChange.js","sourceRoot":"","sources":["../../../src/cmds/validator/blsToExecutionChange.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ import { KeymanagerRestApiServer } from "./keymanager/server.js";
22
22
  export async function validatorHandler(args) {
23
23
  var _a, _b, _c, _d, _e, _f;
24
24
  const { config, network } = getBeaconConfigFromArgs(args);
25
- const doppelgangerProtectionEnabled = args.doppelgangerProtectionEnabled;
25
+ const { doppelgangerProtection } = args;
26
26
  const validatorPaths = getValidatorPaths(args, network);
27
27
  const accountPaths = getAccountPaths(args, network);
28
28
  const defaultLogFilepath = path.join(validatorPaths.dataDir, "validator.log");
@@ -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,18 +76,9 @@ 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
- const dbOps = {
80
- config,
81
- controller: new LevelDbController({ name: dbPath }, { metrics: null, logger }),
82
- };
83
- onGracefulShutdownCbs.push(() => dbOps.controller.stop());
84
- await dbOps.controller.start();
85
- const slashingProtection = new SlashingProtection(dbOps);
79
+ const db = await LevelDbController.create({ name: dbPath }, { metrics: null, logger });
80
+ onGracefulShutdownCbs.push(() => db.close());
81
+ const slashingProtection = new SlashingProtection(db);
86
82
  // Create metrics registry if metrics are enabled or monitoring endpoint is configured
87
83
  // Send version and network data for static registries
88
84
  const register = args["metrics"] || args["monitoring.endpoint"] ? new RegistryMetricCreator() : null;
@@ -113,14 +109,15 @@ export async function validatorHandler(args) {
113
109
  // This promise resolves once genesis is available.
114
110
  // It will wait for genesis, so this promise can be potentially very long
115
111
  const validator = await Validator.initializeFromBeaconNode({
116
- dbOps,
112
+ db,
113
+ config,
117
114
  slashingProtection,
118
115
  api: args.beaconNodes,
119
116
  logger,
120
117
  processShutdownCallback,
121
118
  signers,
122
119
  abortController,
123
- doppelgangerProtectionEnabled,
120
+ doppelgangerProtection,
124
121
  afterBlockDelaySlotFraction: args.afterBlockDelaySlotFraction,
125
122
  scAfterBlockDelaySlotFraction: args.scAfterBlockDelaySlotFraction,
126
123
  disableAttestationGrouping: args.disableAttestationGrouping,
@@ -136,12 +133,13 @@ export async function validatorHandler(args) {
136
133
  if (proposerConfigWriteDisabled) {
137
134
  logger.warn("Proposer data updates (feeRecipient/gasLimit etc) will not be available via Keymanager API as proposerSettingsFile has been set");
138
135
  }
139
- const keymanagerApi = new KeymanagerApi(validator, persistedKeysBackend, proposerConfigWriteDisabled);
136
+ const keymanagerApi = new KeymanagerApi(validator, persistedKeysBackend, abortController.signal, proposerConfigWriteDisabled);
140
137
  const keymanagerServer = new KeymanagerRestApiServer({
141
138
  address: args["keymanager.address"],
142
139
  port: args["keymanager.port"],
143
140
  cors: args["keymanager.cors"],
144
141
  isAuthEnabled: args["keymanager.authEnabled"],
142
+ headerLimit: args["keymanager.headerLimit"],
145
143
  bodyLimit: args["keymanager.bodyLimit"],
146
144
  tokenDir: dbPath,
147
145
  }, { config, logger, api: keymanagerApi, metrics: metrics ? metrics.keymanagerApiRest : null });
@@ -189,6 +187,8 @@ function parseBuilderSelection(builderSelection) {
189
187
  break;
190
188
  case "builderalways":
191
189
  break;
190
+ case "builderonly":
191
+ break;
192
192
  default:
193
193
  throw Error("Invalid input for builder selection, check help.");
194
194
  }