@lodestar/validator 1.41.0-dev.9fa839a030 → 1.41.0-dev.c7ce9761a4
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.
|
@@ -2,7 +2,7 @@ import { ChainForkConfig } from "@lodestar/config";
|
|
|
2
2
|
import { LoggerVc } from "../util/index.js";
|
|
3
3
|
import { ValidatorStore } from "./validatorStore.js";
|
|
4
4
|
export type ExternalSignerOptions = {
|
|
5
|
-
|
|
5
|
+
urls?: string[];
|
|
6
6
|
fetch?: boolean;
|
|
7
7
|
fetchInterval?: number;
|
|
8
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"externalSignerSync.d.ts","sourceRoot":"","sources":["../../src/services/externalSignerSync.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAIjD,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAa,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAE/D,MAAM,MAAM,qBAAqB,GAAG;IAClC,
|
|
1
|
+
{"version":3,"file":"externalSignerSync.d.ts","sourceRoot":"","sources":["../../src/services/externalSignerSync.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAIjD,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAa,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAE/D,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,WAAW,EACnB,cAAc,EAAE,cAAc,EAC9B,IAAI,CAAC,EAAE,qBAAqB,GAC3B,IAAI,CAwDN"}
|
|
@@ -10,12 +10,12 @@ import { SignerType } from "./validatorStore.js";
|
|
|
10
10
|
*/
|
|
11
11
|
export function pollExternalSignerPubkeys(config, logger, signal, validatorStore, opts) {
|
|
12
12
|
const externalSigner = opts ?? {};
|
|
13
|
-
|
|
13
|
+
const externalSignerUrls = externalSigner.urls ?? [];
|
|
14
|
+
if (externalSignerUrls.length === 0 || !externalSigner.fetch) {
|
|
14
15
|
return; // Disabled
|
|
15
16
|
}
|
|
16
|
-
async function
|
|
17
|
+
async function syncSignerPubkeys(externalSignerUrl) {
|
|
17
18
|
// External signer URL is already validated earlier
|
|
18
|
-
const externalSignerUrl = externalSigner.url;
|
|
19
19
|
const printableUrl = toPrintableUrl(externalSignerUrl);
|
|
20
20
|
try {
|
|
21
21
|
logger.debug("Fetching public keys from external signer", { url: printableUrl });
|
|
@@ -43,6 +43,13 @@ export function pollExternalSignerPubkeys(config, logger, signal, validatorStore
|
|
|
43
43
|
logger.error("Failed to fetch public keys from external signer", { url: printableUrl }, e);
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
+
async function fetchExternalSignerPubkeys() {
|
|
47
|
+
const promises = [];
|
|
48
|
+
for (const url of externalSignerUrls) {
|
|
49
|
+
promises.push(syncSignerPubkeys(url));
|
|
50
|
+
}
|
|
51
|
+
await Promise.all(promises);
|
|
52
|
+
}
|
|
46
53
|
const interval = setInterval(fetchExternalSignerPubkeys, externalSigner.fetchInterval ??
|
|
47
54
|
// Once per epoch by default
|
|
48
55
|
SLOTS_PER_EPOCH * config.SLOT_DURATION_MS);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"externalSignerSync.js","sourceRoot":"","sources":["../../src/services/externalSignerSync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,OAAO,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAC,qBAAqB,EAAC,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAC,UAAU,EAAiB,MAAM,qBAAqB,CAAC;AAQ/D;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAuB,EACvB,MAAgB,EAChB,MAAmB,EACnB,cAA8B,EAC9B,IAA4B;IAE5B,MAAM,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"externalSignerSync.js","sourceRoot":"","sources":["../../src/services/externalSignerSync.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lodestar/validator",
|
|
3
|
-
"version": "1.41.0-dev.
|
|
3
|
+
"version": "1.41.0-dev.c7ce9761a4",
|
|
4
4
|
"description": "A Typescript implementation of the validator client",
|
|
5
5
|
"author": "ChainSafe Systems",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -50,21 +50,21 @@
|
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@chainsafe/blst": "^2.2.0",
|
|
52
52
|
"@chainsafe/ssz": "^1.2.2",
|
|
53
|
-
"@lodestar/api": "^1.41.0-dev.
|
|
54
|
-
"@lodestar/config": "^1.41.0-dev.
|
|
55
|
-
"@lodestar/db": "^1.41.0-dev.
|
|
56
|
-
"@lodestar/params": "^1.41.0-dev.
|
|
57
|
-
"@lodestar/state-transition": "^1.41.0-dev.
|
|
58
|
-
"@lodestar/types": "^1.41.0-dev.
|
|
59
|
-
"@lodestar/utils": "^1.41.0-dev.
|
|
53
|
+
"@lodestar/api": "^1.41.0-dev.c7ce9761a4",
|
|
54
|
+
"@lodestar/config": "^1.41.0-dev.c7ce9761a4",
|
|
55
|
+
"@lodestar/db": "^1.41.0-dev.c7ce9761a4",
|
|
56
|
+
"@lodestar/params": "^1.41.0-dev.c7ce9761a4",
|
|
57
|
+
"@lodestar/state-transition": "^1.41.0-dev.c7ce9761a4",
|
|
58
|
+
"@lodestar/types": "^1.41.0-dev.c7ce9761a4",
|
|
59
|
+
"@lodestar/utils": "^1.41.0-dev.c7ce9761a4",
|
|
60
60
|
"strict-event-emitter-types": "^2.0.0"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
|
-
"@lodestar/logger": "^1.41.0-dev.
|
|
64
|
-
"@lodestar/spec-test-util": "^1.41.0-dev.
|
|
65
|
-
"@lodestar/test-utils": "^1.41.0-dev.
|
|
63
|
+
"@lodestar/logger": "^1.41.0-dev.c7ce9761a4",
|
|
64
|
+
"@lodestar/spec-test-util": "^1.41.0-dev.c7ce9761a4",
|
|
65
|
+
"@lodestar/test-utils": "^1.41.0-dev.c7ce9761a4",
|
|
66
66
|
"@vekexasia/bigint-buffer2": "^1.1.0",
|
|
67
67
|
"rimraf": "^4.4.1"
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "f21ecd1aecf927e267e797a2b4db37741ce6d485"
|
|
70
70
|
}
|
|
@@ -7,7 +7,7 @@ import {LoggerVc} from "../util/index.js";
|
|
|
7
7
|
import {SignerType, ValidatorStore} from "./validatorStore.js";
|
|
8
8
|
|
|
9
9
|
export type ExternalSignerOptions = {
|
|
10
|
-
|
|
10
|
+
urls?: string[];
|
|
11
11
|
fetch?: boolean;
|
|
12
12
|
fetchInterval?: number;
|
|
13
13
|
};
|
|
@@ -25,14 +25,14 @@ export function pollExternalSignerPubkeys(
|
|
|
25
25
|
opts?: ExternalSignerOptions
|
|
26
26
|
): void {
|
|
27
27
|
const externalSigner = opts ?? {};
|
|
28
|
+
const externalSignerUrls = externalSigner.urls ?? [];
|
|
28
29
|
|
|
29
|
-
if (
|
|
30
|
+
if (externalSignerUrls.length === 0 || !externalSigner.fetch) {
|
|
30
31
|
return; // Disabled
|
|
31
32
|
}
|
|
32
33
|
|
|
33
|
-
async function
|
|
34
|
+
async function syncSignerPubkeys(externalSignerUrl: string): Promise<void> {
|
|
34
35
|
// External signer URL is already validated earlier
|
|
35
|
-
const externalSignerUrl = externalSigner.url as string;
|
|
36
36
|
const printableUrl = toPrintableUrl(externalSignerUrl);
|
|
37
37
|
|
|
38
38
|
try {
|
|
@@ -64,6 +64,14 @@ export function pollExternalSignerPubkeys(
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
async function fetchExternalSignerPubkeys(): Promise<void> {
|
|
68
|
+
const promises: Promise<void>[] = [];
|
|
69
|
+
for (const url of externalSignerUrls) {
|
|
70
|
+
promises.push(syncSignerPubkeys(url));
|
|
71
|
+
}
|
|
72
|
+
await Promise.all(promises);
|
|
73
|
+
}
|
|
74
|
+
|
|
67
75
|
const interval = setInterval(
|
|
68
76
|
fetchExternalSignerPubkeys,
|
|
69
77
|
externalSigner.fetchInterval ??
|