@chainsafe/lodestar 1.9.2 → 1.10.0-dev.00b94f3802
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 +2 -2
- package/README.md +1 -1
- package/lib/cmds/beacon/initPeerIdAndEnr.d.ts +1 -2
- package/lib/cmds/beacon/initPeerIdAndEnr.js +28 -27
- package/lib/cmds/beacon/initPeerIdAndEnr.js.map +1 -1
- package/lib/cmds/beacon/options.d.ts +2 -5
- package/lib/cmds/beacon/options.js +6 -9
- package/lib/cmds/beacon/options.js.map +1 -1
- package/lib/cmds/dev/files.js +1 -1
- package/lib/cmds/dev/files.js.map +1 -1
- package/lib/cmds/dev/options.d.ts +13 -8
- package/lib/cmds/lightclient/handler.js +6 -1
- package/lib/cmds/lightclient/handler.js.map +1 -1
- package/lib/cmds/lightclient/options.d.ts +2 -2
- package/lib/cmds/lightclient/options.js +0 -2
- package/lib/cmds/lightclient/options.js.map +1 -1
- package/lib/cmds/validator/blsToExecutionChange.d.ts +3 -3
- package/lib/cmds/validator/blsToExecutionChange.js +16 -9
- package/lib/cmds/validator/blsToExecutionChange.js.map +1 -1
- package/lib/cmds/validator/handler.js +4 -3
- package/lib/cmds/validator/handler.js.map +1 -1
- package/lib/cmds/validator/import.d.ts +3 -1
- package/lib/cmds/validator/import.js +3 -3
- package/lib/cmds/validator/import.js.map +1 -1
- package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions.js +4 -1
- package/lib/cmds/validator/keymanager/decryptKeystoreDefinitions.js.map +1 -1
- package/lib/cmds/validator/keymanager/decryptKeystores/poolSize.js +1 -2
- package/lib/cmds/validator/keymanager/decryptKeystores/poolSize.js.map +1 -1
- package/lib/cmds/validator/keymanager/decryptKeystores/threadPool.js.map +1 -1
- package/lib/cmds/validator/keymanager/impl.js +1 -1
- package/lib/cmds/validator/keymanager/impl.js.map +1 -1
- package/lib/cmds/validator/keymanager/keystoreCache.js +1 -1
- package/lib/cmds/validator/keymanager/keystoreCache.js.map +1 -1
- package/lib/cmds/validator/keymanager/server.js +1 -1
- package/lib/cmds/validator/keymanager/server.js.map +1 -1
- package/lib/cmds/validator/list.js +1 -1
- package/lib/cmds/validator/list.js.map +1 -1
- package/lib/cmds/validator/options.d.ts +3 -3
- package/lib/cmds/validator/options.js +17 -16
- package/lib/cmds/validator/options.js.map +1 -1
- package/lib/cmds/validator/signers/index.js +3 -3
- package/lib/cmds/validator/signers/index.js.map +1 -1
- package/lib/cmds/validator/slashingProtection/export.d.ts +1 -1
- package/lib/cmds/validator/slashingProtection/export.js +6 -3
- 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 +6 -2
- package/lib/cmds/validator/slashingProtection/import.js.map +1 -1
- package/lib/cmds/validator/slashingProtection/options.js +1 -1
- package/lib/cmds/validator/slashingProtection/options.js.map +1 -1
- package/lib/cmds/validator/voluntaryExit.js +11 -6
- package/lib/cmds/validator/voluntaryExit.js.map +1 -1
- package/lib/config/peerId.d.ts +1 -1
- package/lib/networks/index.d.ts +1 -1
- package/lib/networks/index.js +9 -4
- package/lib/networks/index.js.map +1 -1
- package/lib/options/beaconNodeOptions/api.d.ts +6 -6
- package/lib/options/beaconNodeOptions/api.js +2 -2
- package/lib/options/beaconNodeOptions/api.js.map +1 -1
- package/lib/options/beaconNodeOptions/builder.d.ts +4 -4
- package/lib/options/beaconNodeOptions/builder.js +7 -6
- package/lib/options/beaconNodeOptions/builder.js.map +1 -1
- package/lib/options/beaconNodeOptions/chain.d.ts +13 -13
- package/lib/options/beaconNodeOptions/chain.js +5 -4
- package/lib/options/beaconNodeOptions/chain.js.map +1 -1
- package/lib/options/beaconNodeOptions/eth1.d.ts +6 -6
- package/lib/options/beaconNodeOptions/eth1.js +3 -2
- package/lib/options/beaconNodeOptions/eth1.js.map +1 -1
- package/lib/options/beaconNodeOptions/execution.d.ts +1 -1
- package/lib/options/beaconNodeOptions/execution.js +5 -5
- package/lib/options/beaconNodeOptions/execution.js.map +1 -1
- package/lib/options/beaconNodeOptions/index.d.ts +16 -11
- package/lib/options/beaconNodeOptions/metrics.d.ts +1 -1
- package/lib/options/beaconNodeOptions/metrics.js +2 -2
- package/lib/options/beaconNodeOptions/metrics.js.map +1 -1
- package/lib/options/beaconNodeOptions/monitoring.d.ts +5 -5
- package/lib/options/beaconNodeOptions/network.d.ts +33 -19
- package/lib/options/beaconNodeOptions/network.js +108 -14
- package/lib/options/beaconNodeOptions/network.js.map +1 -1
- package/lib/options/beaconNodeOptions/sync.d.ts +4 -4
- package/lib/options/beaconNodeOptions/sync.js +2 -1
- package/lib/options/beaconNodeOptions/sync.js.map +1 -1
- package/lib/options/globalOptions.d.ts +2 -2
- package/lib/options/logOptions.js +2 -2
- package/lib/options/logOptions.js.map +1 -1
- package/lib/util/command.d.ts +2 -1
- package/lib/util/command.js.map +1 -1
- package/package.json +24 -23
- package/lib/networks/zhejiang.d.ts +0 -6
- package/lib/networks/zhejiang.js +0 -7
- package/lib/networks/zhejiang.js.map +0 -1
package/.git-data.json
CHANGED
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
|
|
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.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PeerId } from "@libp2p/interface-peer-id";
|
|
1
|
+
import type { PeerId } from "@libp2p/interface-peer-id";
|
|
2
2
|
import { Multiaddr } from "@multiformats/multiaddr";
|
|
3
3
|
import { SignableENR } from "@chainsafe/discv5";
|
|
4
4
|
import { Logger } from "@lodestar/utils";
|
|
@@ -7,7 +7,6 @@ import { BeaconArgs } from "./options.js";
|
|
|
7
7
|
* Check if multiaddr belongs to the local network interfaces.
|
|
8
8
|
*/
|
|
9
9
|
export declare function isLocalMultiAddr(multiaddr: Multiaddr | undefined): boolean;
|
|
10
|
-
export declare function clearMultiaddrUDP(enr: SignableENR): void;
|
|
11
10
|
export declare function overwriteEnrWithCliArgs(enr: SignableENR, args: BeaconArgs, logger: Logger): void;
|
|
12
11
|
/**
|
|
13
12
|
* Create new PeerId and ENR by default, unless persistNetworkIdentity is provided
|
|
@@ -5,7 +5,7 @@ import { createSecp256k1PeerId } from "@libp2p/peer-id-factory";
|
|
|
5
5
|
import { createKeypairFromPeerId, SignableENR } from "@chainsafe/discv5";
|
|
6
6
|
import { exportToJSON, readPeerId } from "../../config/index.js";
|
|
7
7
|
import { writeFile600Perm } from "../../util/file.js";
|
|
8
|
-
import {
|
|
8
|
+
import { parseListenArgs } from "../../options/beaconNodeOptions/network.js";
|
|
9
9
|
/**
|
|
10
10
|
* Check if multiaddr belongs to the local network interfaces.
|
|
11
11
|
*/
|
|
@@ -42,31 +42,17 @@ export function isLocalMultiAddr(multiaddr) {
|
|
|
42
42
|
}
|
|
43
43
|
return false;
|
|
44
44
|
}
|
|
45
|
-
export function clearMultiaddrUDP(enr) {
|
|
46
|
-
// enr.multiaddrUDP = undefined in new version
|
|
47
|
-
enr.delete("ip");
|
|
48
|
-
enr.delete("udp");
|
|
49
|
-
enr.delete("ip6");
|
|
50
|
-
enr.delete("udp6");
|
|
51
|
-
}
|
|
52
45
|
export function overwriteEnrWithCliArgs(enr, args, logger) {
|
|
53
|
-
var _a, _b, _c, _d, _e;
|
|
54
|
-
|
|
55
|
-
enr.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if (args["enr.tcp6"] != null)
|
|
64
|
-
enr.tcp6 = args["enr.tcp6"];
|
|
65
|
-
if (args["enr.udp6"] != null)
|
|
66
|
-
enr.udp6 = args["enr.udp6"];
|
|
67
|
-
const udpMultiaddr = enr.getLocationMultiaddr("udp");
|
|
68
|
-
if (udpMultiaddr) {
|
|
69
|
-
const isLocal = isLocalMultiAddr(udpMultiaddr);
|
|
46
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
47
|
+
const { port, discoveryPort, port6, discoveryPort6 } = parseListenArgs(args);
|
|
48
|
+
enr.ip = (_a = args["enr.ip"]) !== null && _a !== void 0 ? _a : enr.ip;
|
|
49
|
+
enr.tcp = (_c = (_b = args["enr.tcp"]) !== null && _b !== void 0 ? _b : port) !== null && _c !== void 0 ? _c : enr.tcp;
|
|
50
|
+
enr.udp = (_e = (_d = args["enr.udp"]) !== null && _d !== void 0 ? _d : discoveryPort) !== null && _e !== void 0 ? _e : enr.udp;
|
|
51
|
+
enr.ip6 = (_f = args["enr.ip6"]) !== null && _f !== void 0 ? _f : enr.ip6;
|
|
52
|
+
enr.tcp6 = (_h = (_g = args["enr.tcp6"]) !== null && _g !== void 0 ? _g : port6) !== null && _h !== void 0 ? _h : enr.tcp6;
|
|
53
|
+
enr.udp6 = (_k = (_j = args["enr.udp6"]) !== null && _j !== void 0 ? _j : discoveryPort6) !== null && _k !== void 0 ? _k : enr.udp6;
|
|
54
|
+
function testMultiaddrForLocal(mu, ip4) {
|
|
55
|
+
const isLocal = isLocalMultiAddr(mu);
|
|
70
56
|
if (args.nat) {
|
|
71
57
|
if (isLocal) {
|
|
72
58
|
logger.warn("--nat flag is set with no purpose");
|
|
@@ -74,11 +60,26 @@ export function overwriteEnrWithCliArgs(enr, args, logger) {
|
|
|
74
60
|
}
|
|
75
61
|
else {
|
|
76
62
|
if (!isLocal) {
|
|
77
|
-
logger.warn(
|
|
78
|
-
|
|
63
|
+
logger.warn(`Configured ENR ${ip4 ? "IPv4" : "IPv6"} address is not local, clearing ENR ${ip4 ? "ip" : "ip6"} and ${ip4 ? "udp" : "udp6"}. Set the --nat flag to prevent this`);
|
|
64
|
+
if (ip4) {
|
|
65
|
+
enr.delete("ip");
|
|
66
|
+
enr.delete("udp");
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
enr.delete("ip6");
|
|
70
|
+
enr.delete("udp6");
|
|
71
|
+
}
|
|
79
72
|
}
|
|
80
73
|
}
|
|
81
74
|
}
|
|
75
|
+
const udpMultiaddr4 = enr.getLocationMultiaddr("udp4");
|
|
76
|
+
if (udpMultiaddr4) {
|
|
77
|
+
testMultiaddrForLocal(udpMultiaddr4, true);
|
|
78
|
+
}
|
|
79
|
+
const udpMultiaddr6 = enr.getLocationMultiaddr("udp6");
|
|
80
|
+
if (udpMultiaddr6) {
|
|
81
|
+
testMultiaddrForLocal(udpMultiaddr6, false);
|
|
82
|
+
}
|
|
82
83
|
}
|
|
83
84
|
/**
|
|
84
85
|
* Create new PeerId and ENR by default, unless persistNetworkIdentity is provided
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initPeerIdAndEnr.js","sourceRoot":"","sources":["../../../src/cmds/beacon/initPeerIdAndEnr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAC,uBAAuB,EAAE,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAC,YAAY,EAAE,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"initPeerIdAndEnr.js","sourceRoot":"","sources":["../../../src/cmds/beacon/initPeerIdAndEnr.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ type BeaconExtraArgs = {
|
|
|
19
19
|
peerStoreDir?: string;
|
|
20
20
|
persistNetworkIdentity?: boolean;
|
|
21
21
|
private?: boolean;
|
|
22
|
+
attachToGlobalThis?: boolean;
|
|
22
23
|
};
|
|
23
24
|
export declare const beaconExtraOptions: CliCommandOptions<BeaconExtraArgs>;
|
|
24
25
|
type ENRArgs = {
|
|
@@ -30,11 +31,7 @@ type ENRArgs = {
|
|
|
30
31
|
"enr.udp6"?: number;
|
|
31
32
|
nat?: boolean;
|
|
32
33
|
};
|
|
33
|
-
export type
|
|
34
|
-
attachToGlobalThis: boolean;
|
|
35
|
-
};
|
|
36
|
-
export declare const debugOptions: CliCommandOptions<DebugArgs>;
|
|
37
|
-
export type BeaconArgs = BeaconExtraArgs & LogArgs & BeaconPaths & BeaconNodeArgs & ENRArgs & DebugArgs;
|
|
34
|
+
export type BeaconArgs = BeaconExtraArgs & LogArgs & BeaconPaths & BeaconNodeArgs & ENRArgs;
|
|
38
35
|
export declare const beaconOptions: {
|
|
39
36
|
[k: string]: Options;
|
|
40
37
|
};
|
|
@@ -33,7 +33,7 @@ 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
|
|
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
|
},
|
|
@@ -80,6 +80,11 @@ export const beaconExtraOptions = {
|
|
|
80
80
|
description: "Do not send implementation details over p2p identify protocol and in builder requests",
|
|
81
81
|
type: "boolean",
|
|
82
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
|
+
},
|
|
83
88
|
};
|
|
84
89
|
const enrOptions = {
|
|
85
90
|
"enr.ip": {
|
|
@@ -118,19 +123,11 @@ const enrOptions = {
|
|
|
118
123
|
group: "enr",
|
|
119
124
|
},
|
|
120
125
|
};
|
|
121
|
-
export const debugOptions = {
|
|
122
|
-
attachToGlobalThis: {
|
|
123
|
-
hidden: true,
|
|
124
|
-
description: "Attach the beacon node to `globalThis`. Useful to inspect a running beacon node.",
|
|
125
|
-
type: "boolean",
|
|
126
|
-
},
|
|
127
|
-
};
|
|
128
126
|
export const beaconOptions = {
|
|
129
127
|
...beaconExtraOptions,
|
|
130
128
|
...logOptions,
|
|
131
129
|
...beaconNodeOptions,
|
|
132
130
|
...paramsOptions,
|
|
133
131
|
...enrOptions,
|
|
134
|
-
...debugOptions,
|
|
135
132
|
};
|
|
136
133
|
//# sourceMappingURL=options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/cmds/beacon/options.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAE,aAAa,EAAiB,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAU,UAAU,EAAC,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAC,kBAAkB,EAAc,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/cmds/beacon/options.ts"],"names":[],"mappings":"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"}
|
package/lib/cmds/dev/files.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { Keystore } from "@chainsafe/bls-keystore";
|
|
3
4
|
import { nodeUtils } from "@lodestar/beacon-node";
|
|
4
5
|
import { chainConfigToJson } from "@lodestar/config";
|
|
5
6
|
import { dumpYaml } from "@lodestar/utils";
|
|
6
7
|
import { interopSecretKey } from "@lodestar/state-transition";
|
|
7
|
-
import { Keystore } from "@chainsafe/bls-keystore";
|
|
8
8
|
import { PersistedKeysBackend } from "../validator/keymanager/persistedKeys.js";
|
|
9
9
|
/* eslint-disable no-console */
|
|
10
10
|
export async function writeTestnetFiles(config, targetDir, genesisValidators) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/cmds/dev/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAkB,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/cmds/dev/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAkB,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAC,oBAAoB,EAAC,MAAM,0CAA0C,CAAC;AAE9E,+BAA+B;AAE/B,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAuB,EACvB,SAAiB,EACjB,iBAAyB;IAEzB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAE1C,MAAM,EAAC,KAAK,EAAC,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,iBAAiB,EAAE,EAAC,WAAW,EAAE,aAAa,EAAC,CAAC,CAAC;IAEhG,qBAAqB;IACrB,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IAC3C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IACzE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3F,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAAE,GAAG,CAAC,CAAC;IAEhE,MAAM,yBAAyB,GAAG,IAAI,oBAAoB,CAAC;QACzD,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;QAC/C,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC;QAC3C,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC;QAClD,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;KAC9C,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,eAAe,CAAC;IAEjC,kBAAkB;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE;QAC1C,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;QAExC,MAAM,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAE/B,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAE/F,yBAAyB,CAAC,aAAa,CAAC;YACtC,WAAW,EAAE,QAAQ,CAAC,SAAS,EAAE;YACjC,QAAQ;YACR,uBAAuB;YACvB,eAAe,EAAE,KAAK;YACtB,2CAA2C;YAC3C,kBAAkB,EAAE,KAAK;SAC1B,CAAC,CAAC;KACJ;AACH,CAAC"}
|
|
@@ -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;
|
|
@@ -27,6 +27,8 @@ export declare const devOptions: {
|
|
|
27
27
|
targetPeers?: Options | undefined;
|
|
28
28
|
discv5?: Options | undefined;
|
|
29
29
|
disablePeerScoring?: Options | undefined;
|
|
30
|
+
deterministicLongLivedAttnets?: Options | undefined;
|
|
31
|
+
slotsToSubscribeBeforeAggregatorDuty?: Options | undefined;
|
|
30
32
|
"api.maxGindicesInProof"?: Options | undefined;
|
|
31
33
|
"rest.namespace"?: Options | undefined;
|
|
32
34
|
rest?: Options | undefined;
|
|
@@ -72,6 +74,11 @@ export declare const devOptions: {
|
|
|
72
74
|
"monitoring.initialDelay": Options;
|
|
73
75
|
"monitoring.requestTimeout": Options;
|
|
74
76
|
"monitoring.collectSystemStats": Options;
|
|
77
|
+
listenAddress?: Options | undefined;
|
|
78
|
+
discoveryPort?: Options | undefined;
|
|
79
|
+
listenAddress6?: Options | undefined;
|
|
80
|
+
port6?: Options | undefined;
|
|
81
|
+
discoveryPort6?: Options | undefined;
|
|
75
82
|
"network.maxPeers"?: Options | undefined;
|
|
76
83
|
bootnodes?: Options | undefined;
|
|
77
84
|
"network.connectToDiscv5Bootnodes"?: Options | undefined;
|
|
@@ -85,8 +92,6 @@ export declare const devOptions: {
|
|
|
85
92
|
"network.rateLimitMultiplier"?: Options | undefined;
|
|
86
93
|
"network.maxGossipTopicConcurrency"?: Options | undefined;
|
|
87
94
|
"network.useWorker"?: Options | undefined;
|
|
88
|
-
listenAddress?: Options | undefined;
|
|
89
|
-
discoveryPort?: Options | undefined;
|
|
90
95
|
"network.requestCountPeerLimit"?: Options | undefined;
|
|
91
96
|
"network.blockCountTotalLimit"?: Options | undefined;
|
|
92
97
|
"network.blockCountPeerLimit"?: Options | undefined;
|
|
@@ -106,16 +111,16 @@ export declare const devOptions: {
|
|
|
106
111
|
"keymanager.cors": Options;
|
|
107
112
|
"keymanager.headerLimit": Options;
|
|
108
113
|
"keymanager.bodyLimit": Options;
|
|
109
|
-
logLevel: Options
|
|
114
|
+
logLevel: Options & Required<Pick<Options, "default">>;
|
|
110
115
|
logFile: Options;
|
|
111
|
-
logFileLevel: Options
|
|
112
|
-
logFileDailyRotate: Options
|
|
116
|
+
logFileLevel: Options & Required<Pick<Options, "default">>;
|
|
117
|
+
logFileDailyRotate: Options & Required<Pick<Options, "default">>;
|
|
113
118
|
logFormatGenesisTime: Options;
|
|
114
119
|
logPrefix: Options;
|
|
115
120
|
logFormat: Options;
|
|
116
121
|
logLevelModule: Options;
|
|
117
122
|
validatorsDbDir: Options;
|
|
118
|
-
beaconNodes: Options
|
|
123
|
+
beaconNodes: Options & Required<Pick<Options, "default">>;
|
|
119
124
|
force: Options;
|
|
120
125
|
graffiti: Options;
|
|
121
126
|
afterBlockDelaySlotFraction: Options;
|
|
@@ -123,7 +128,7 @@ export declare const devOptions: {
|
|
|
123
128
|
disableAttestationGrouping: Options;
|
|
124
129
|
proposerSettingsFile: Options;
|
|
125
130
|
strictFeeRecipientCheck: Options;
|
|
126
|
-
|
|
131
|
+
doppelgangerProtection: Options;
|
|
127
132
|
defaultGasLimit: Options;
|
|
128
133
|
"builder.selection": Options;
|
|
129
134
|
importKeystores: Options;
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
+
import { fromHexString } from "@chainsafe/ssz";
|
|
2
3
|
import { ApiError, getClient } from "@lodestar/api";
|
|
3
4
|
import { Lightclient } from "@lodestar/light-client";
|
|
4
|
-
import { fromHexString } from "@chainsafe/ssz";
|
|
5
5
|
import { LightClientRestTransport } from "@lodestar/light-client/transport";
|
|
6
6
|
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,
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/cmds/lightclient/handler.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAC;AACnD,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
|
|
5
|
-
checkpointRoot
|
|
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;
|
|
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
|
|
6
|
-
fromBlsPrivkey
|
|
7
|
-
toExecutionAddress
|
|
5
|
+
publicKey?: string;
|
|
6
|
+
fromBlsPrivkey?: string;
|
|
7
|
+
toExecutionAddress?: string;
|
|
8
8
|
};
|
|
9
9
|
export declare const blsToExecutionChange: CliCommand<BlsToExecutionChangeArgs, IValidatorCliArgs & GlobalArgs>;
|
|
10
10
|
export {};
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import { fromHexString } from "@chainsafe/ssz";
|
|
2
|
+
import bls from "@chainsafe/bls";
|
|
3
|
+
import { PointFormat } from "@chainsafe/bls/types";
|
|
1
4
|
import { computeSigningRoot } from "@lodestar/state-transition";
|
|
2
5
|
import { DOMAIN_BLS_TO_EXECUTION_CHANGE, ForkName } from "@lodestar/params";
|
|
3
6
|
import { createBeaconConfig } from "@lodestar/config";
|
|
4
7
|
import { ssz } from "@lodestar/types";
|
|
5
8
|
import { ApiError, getClient } from "@lodestar/api";
|
|
6
|
-
import {
|
|
7
|
-
import bls from "@chainsafe/bls";
|
|
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
|
|
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
|
|
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
|
|
56
|
-
const fromBlsPubkey =
|
|
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(
|
|
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:
|
|
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":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"blsToExecutionChange.js","sourceRoot":"","sources":["../../../src/cmds/validator/blsToExecutionChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,GAAG,MAAM,gBAAgB,CAAC;AACjC,OAAO,EAAC,WAAW,EAAC,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAC,8BAA8B,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAC,GAAG,EAAU,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;AAElD,OAAO,EAAa,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAC,uBAAuB,EAAC,MAAM,uBAAuB,CAAC;AAW9D,MAAM,CAAC,MAAM,oBAAoB,GAAyE;IACxG,OAAO,EAAE,yBAAyB;IAElC,QAAQ,EACN;;4CAEwC;IAE1C,QAAQ,EAAE;QACR;YACE,OAAO,EAAE,mGAAmG;YAC5G,WAAW,EAAE,8EAA8E;SAC5F;KACF;IAED,OAAO,EAAE;QACP,SAAS,EAAE;YACT,WAAW,EAAE,qFAAqF;YAClG,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,IAAI;SACb;QACD,cAAc,EAAE;YACd,WAAW,EAAE,iDAAiD;YAC9D,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,IAAI;SACb;QACD,kBAAkB,EAAE;YAClB,WAAW,EAAE,wEAAwE;YACrF,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,IAAI;SACb;KACF;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,EAAC,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAC,GAAG,IAAI,CAAC;QAC7D,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,UAAU,CAAC,4BAA4B,CAAC,CAAC;QACnE,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,UAAU,CAAC,iCAAiC,CAAC,CAAC;QAC7E,IAAI,CAAC,kBAAkB;YAAE,MAAM,IAAI,UAAU,CAAC,qCAAqC,CAAC,CAAC;QAErF,0FAA0F;QAC1F,gCAAgC;QAChC,MAAM,EAAC,MAAM,EAAE,eAAe,EAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,SAAS,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAC,EAAE,EAAC,MAAM,EAAE,eAAe,EAAC,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACpD,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,4BAA4B,CAAC,CAAC;QAC1D,MAAM,EAAC,qBAAqB,EAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;QACzD,MAAM,MAAM,GAAG,kBAAkB,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;QAE1E,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAC,CAAC,CAAC;QAC5F,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC,CAAC;QACrE,MAAM,eAAe,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxD,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,cAAc,KAAK,SAAS,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,oBAAoB,SAAS,qBAAqB,CAAC,CAAC;SACrE;QAED,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAE/E,MAAM,oBAAoB,GAAiC;YACzD,cAAc,EAAE,cAAc,CAAC,KAAK;YACpC,aAAa;YACb,kBAAkB,EAAE,aAAa,CAAC,kBAAkB,CAAC;SACtD,CAAC;QAEF,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;QACrF,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,CAAC,CAAC;QACvG,MAAM,0BAA0B,GAAG;YACjC,OAAO,EAAE,oBAAoB;YAC7B,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE;SAClD,CAAC;QAEF,QAAQ,CAAC,MAAM,CACb,MAAM,MAAM,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,0BAA0B,CAAC,CAAC,EAChF,wCAAwC,CACzC,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,yCAAyC,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC;CACF,CAAC"}
|
|
@@ -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
|
|
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");
|
|
@@ -86,7 +86,8 @@ export async function validatorHandler(args) {
|
|
|
86
86
|
// Start metrics server if metrics are enabled.
|
|
87
87
|
// Collect NodeJS metrics defined in the Lodestar repo
|
|
88
88
|
if (metrics) {
|
|
89
|
-
collectNodeJSMetrics(register);
|
|
89
|
+
const closeMetrics = collectNodeJSMetrics(register);
|
|
90
|
+
onGracefulShutdownCbs.push(() => closeMetrics());
|
|
90
91
|
// only start server if metrics are explicitly enabled
|
|
91
92
|
if (args["metrics"]) {
|
|
92
93
|
const port = (_a = args["metrics.port"]) !== null && _a !== void 0 ? _a : validatorMetricsDefaultOptions.port;
|
|
@@ -117,7 +118,7 @@ export async function validatorHandler(args) {
|
|
|
117
118
|
processShutdownCallback,
|
|
118
119
|
signers,
|
|
119
120
|
abortController,
|
|
120
|
-
|
|
121
|
+
doppelgangerProtection,
|
|
121
122
|
afterBlockDelaySlotFraction: args.afterBlockDelaySlotFraction,
|
|
122
123
|
scAfterBlockDelaySlotFraction: args.scAfterBlockDelaySlotFraction,
|
|
123
124
|
disableAttestationGrouping: args.disableAttestationGrouping,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/cmds/validator/handler.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAC/C,OAAO,EAEL,kBAAkB,EAClB,SAAS,GAGV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAC,UAAU,EAAkB,MAAM,qBAAqB,CAAC;AAChE,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAC,uBAAuB,EAAC,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAC,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,KAAK,EAAE,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAC7G,OAAO,EAAC,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAC,eAAe,EAAE,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAoB,8BAA8B,EAAE,iCAAiC,EAAC,MAAM,cAAc,CAAC;AAClH,OAAO,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAC,oBAAoB,EAAC,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAC,uBAAuB,EAAC,MAAM,wBAAwB,CAAC;AAE/D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAoC;;IACzE,MAAM,EAAC,MAAM,EAAE,OAAO,EAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAExD,MAAM,
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/cmds/validator/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { CliCommand } from "../../util/index.js";
|
|
2
2
|
import { GlobalArgs } from "../../options/index.js";
|
|
3
3
|
import { IValidatorCliArgs } from "./options.js";
|
|
4
|
-
|
|
4
|
+
type ValidatorImportArgs = Pick<IValidatorCliArgs, "importKeystores" | "importKeystoresPassword">;
|
|
5
|
+
export declare const importCmd: CliCommand<ValidatorImportArgs, IValidatorCliArgs & GlobalArgs>;
|
|
6
|
+
export {};
|
|
5
7
|
//# sourceMappingURL=import.d.ts.map
|
|
@@ -6,7 +6,7 @@ import { validatorOptions } from "./options.js";
|
|
|
6
6
|
import { getAccountPaths } from "./paths.js";
|
|
7
7
|
import { importKeystoreDefinitionsFromExternalDir, readPassphraseOrPrompt } from "./signers/importExternalKeystores.js";
|
|
8
8
|
import { PersistedKeysBackend } from "./keymanager/persistedKeys.js";
|
|
9
|
-
|
|
9
|
+
const { importKeystores, importKeystoresPassword } = validatorOptions;
|
|
10
10
|
export const importCmd = {
|
|
11
11
|
command: "import",
|
|
12
12
|
describe: "Imports one or more EIP-2335 keystores into a Lodestar validator client directory, \
|
|
@@ -21,11 +21,11 @@ Ethereum Foundation utility.",
|
|
|
21
21
|
],
|
|
22
22
|
// Note: re-uses `--importKeystores` and `--importKeystoresPassword` from root validator command options
|
|
23
23
|
options: {
|
|
24
|
-
...validatorOptions,
|
|
25
24
|
importKeystores: {
|
|
26
|
-
...
|
|
25
|
+
...importKeystores,
|
|
27
26
|
requiresArg: true,
|
|
28
27
|
},
|
|
28
|
+
importKeystoresPassword,
|
|
29
29
|
},
|
|
30
30
|
handler: async (args) => {
|
|
31
31
|
const { network } = getBeaconConfigFromArgs(args);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../src/cmds/validator/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAC,UAAU,EAAc,wBAAwB,EAAC,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAC,gBAAgB,EAAoB,MAAM,cAAc,CAAC;AACjE,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAC,wCAAwC,EAAE,sBAAsB,EAAC,MAAM,sCAAsC,CAAC;AACtH,OAAO,EAAC,oBAAoB,EAAC,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../src/cmds/validator/import.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import { SignerType } from "@lodestar/validator";
|
|
3
2
|
import bls from "@chainsafe/bls";
|
|
3
|
+
import { SignerType } from "@lodestar/validator";
|
|
4
4
|
import { lockFilepath, unlockFilepath } from "../../../util/lockfile.js";
|
|
5
5
|
import { clearKeystoreCache, loadKeystoreCache, writeKeystoreCache } from "./keystoreCache.js";
|
|
6
6
|
import { DecryptKeystoresThreadPool } from "./decryptKeystores/index.js";
|
|
@@ -8,6 +8,9 @@ import { DecryptKeystoresThreadPool } from "./decryptKeystores/index.js";
|
|
|
8
8
|
* Decrypt keystore definitions using a thread pool
|
|
9
9
|
*/
|
|
10
10
|
export async function decryptKeystoreDefinitions(keystoreDefinitions, opts) {
|
|
11
|
+
if (keystoreDefinitions.length === 0) {
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
11
14
|
if (opts.cacheFilePath) {
|
|
12
15
|
try {
|
|
13
16
|
const signers = await loadKeystoreCache(opts.cacheFilePath, keystoreDefinitions);
|