From 4c1ca33081e33c427561b1078114301bc0cdd407 Mon Sep 17 00:00:00 2001 From: nflaig Date: Mon, 13 Mar 2023 15:46:17 +0100 Subject: [PATCH] Add cli option to run as part of a distributed validator cluster --- packages/cli/src/cmds/validator/handler.ts | 2 ++ packages/cli/src/cmds/validator/options.ts | 10 ++++++++++ packages/validator/src/validator.ts | 3 ++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/cmds/validator/handler.ts b/packages/cli/src/cmds/validator/handler.ts index 04635dbe1446..9cc12acf891b 100644 --- a/packages/cli/src/cmds/validator/handler.ts +++ b/packages/cli/src/cmds/validator/handler.ts @@ -51,6 +51,7 @@ export async function validatorHandler(args: IValidatorCliArgs & GlobalArgs): Pr const {version, commit} = getVersionData(); logger.info("Lodestar", {network, version, commit}); + if (args.distributed) logger.info("Client is configured to run as part of a distributed validator cluster"); logger.info("Connecting to LevelDB database", {path: validatorPaths.validatorsDbDir}); const dbPath = validatorPaths.validatorsDbDir; @@ -167,6 +168,7 @@ export async function validatorHandler(args: IValidatorCliArgs & GlobalArgs): Pr scAfterBlockDelaySlotFraction: args.scAfterBlockDelaySlotFraction, disableAttestationGrouping: args.disableAttestationGrouping, valProposerConfig, + distributed: args.distributed, }, metrics ); diff --git a/packages/cli/src/cmds/validator/options.ts b/packages/cli/src/cmds/validator/options.ts index 1ad12b1ef0c5..abd3e2efe1c0 100644 --- a/packages/cli/src/cmds/validator/options.ts +++ b/packages/cli/src/cmds/validator/options.ts @@ -53,6 +53,8 @@ export type IValidatorCliArgs = AccountValidatorArgs & "externalSigner.pubkeys"?: string[]; "externalSigner.fetch"?: boolean; + distributed?: boolean; + interopIndexes?: string; fromMnemonic?: string; mnemonicIndexes?: string; @@ -286,6 +288,14 @@ export const validatorOptions: CliCommandOptions = { group: "externalSignerUrl", }, + // Distributed validator + + distributed: { + description: "Enables specific features required to run as part of a distributed validator cluster", + default: false, + type: "boolean", + }, + // Metrics metrics: { diff --git a/packages/validator/src/validator.ts b/packages/validator/src/validator.ts index 88d6033b5210..5debd3c60f9c 100644 --- a/packages/validator/src/validator.ts +++ b/packages/validator/src/validator.ts @@ -37,6 +37,7 @@ export type ValidatorOptions = { doppelgangerProtectionEnabled?: boolean; closed?: boolean; valProposerConfig?: ValidatorProposerConfig; + distributed?: boolean; }; // TODO: Extend the timeout, and let it be customizable @@ -126,7 +127,7 @@ export class Validator { metrics, { afterBlockDelaySlotFraction: opts.afterBlockDelaySlotFraction, - disableAttestationGrouping: opts.disableAttestationGrouping, + disableAttestationGrouping: opts.disableAttestationGrouping || opts.distributed, } );