From 63ed99d4d6d0006b0a17de67ac787d63aa70f696 Mon Sep 17 00:00:00 2001 From: Mark Sinclair Date: Wed, 31 Jan 2024 11:46:57 +0000 Subject: [PATCH] Add config to run the block signing in monitoring mode only. Will write 0's as the hash for rewarding. --- nym-validator-rewarder/src/cli/mod.rs | 3 +++ nym-validator-rewarder/src/config/mod.rs | 6 +++++- nym-validator-rewarder/src/config/override.rs | 4 ++++ nym-validator-rewarder/src/config/template.rs | 5 ++++- nym-validator-rewarder/src/rewarder/mod.rs | 5 +++++ 5 files changed, 21 insertions(+), 2 deletions(-) diff --git a/nym-validator-rewarder/src/cli/mod.rs b/nym-validator-rewarder/src/cli/mod.rs index 7fe1dc8117..f9572442e1 100644 --- a/nym-validator-rewarder/src/cli/mod.rs +++ b/nym-validator-rewarder/src/cli/mod.rs @@ -53,6 +53,9 @@ pub struct ConfigOverridableArgs { #[clap(long)] pub disable_block_signing_rewarding: bool, + #[clap(long)] + pub block_signing_monitoring_only: bool, + #[clap(long)] pub disable_credential_issuance_rewarding: bool, diff --git a/nym-validator-rewarder/src/config/mod.rs b/nym-validator-rewarder/src/config/mod.rs index 49571394ad..23dec58a4d 100644 --- a/nym-validator-rewarder/src/config/mod.rs +++ b/nym-validator-rewarder/src/config/mod.rs @@ -240,9 +240,12 @@ pub struct NyxdScraper { #[derive(Debug, Clone, Deserialize, Serialize)] pub struct BlockSigning { - /// Specifies whether credential issuance for block signing is enabled. + /// Specifies whether rewards for block signing is enabled. pub enabled: bool, + /// Specifies whether to only monitor and not send rewards. + pub monitor_only: bool, + /// List of validators that will receive rewards for block signing. /// If not on the list, the validator will be treated as if it had 0 voting power. pub whitelist: Vec, @@ -252,6 +255,7 @@ impl Default for BlockSigning { fn default() -> Self { BlockSigning { enabled: true, + monitor_only: false, whitelist: vec![], } } diff --git a/nym-validator-rewarder/src/config/override.rs b/nym-validator-rewarder/src/config/override.rs index 01a42ef739..f16c6555fb 100644 --- a/nym-validator-rewarder/src/config/override.rs +++ b/nym-validator-rewarder/src/config/override.rs @@ -14,6 +14,10 @@ impl ConfigOverride for ConfigOverridableArgs { config.block_signing.enabled = false } + if self.block_signing_monitoring_only { + config.block_signing.monitor_only = true + } + if self.disable_credential_issuance_rewarding { config.issuance_monitor.enabled = false } diff --git a/nym-validator-rewarder/src/config/template.rs b/nym-validator-rewarder/src/config/template.rs index 89eb22b933..7e10b44d99 100644 --- a/nym-validator-rewarder/src/config/template.rs +++ b/nym-validator-rewarder/src/config/template.rs @@ -38,9 +38,12 @@ credential_verification = {{ rewarding.ratios.credential_verification }} [block_signing] -# Specifies whether credential issuance for block signing is enabled. +# Specifies whether rewarding for block signing is enabled. enabled = {{ block_signing.enabled }} +# Specifies whether to only monitor and not send rewards. +monitor_only = {{ block_signing.monitor_only }} + # List of validators that will receive rewards for block signing. # If not on the list, the validator will be treated as if it had 0 voting power. whitelist = [ diff --git a/nym-validator-rewarder/src/rewarder/mod.rs b/nym-validator-rewarder/src/rewarder/mod.rs index f586167c09..216ee8eee8 100644 --- a/nym-validator-rewarder/src/rewarder/mod.rs +++ b/nym-validator-rewarder/src/rewarder/mod.rs @@ -209,6 +209,11 @@ impl Rewarder { &self, amounts: Vec<(AccountId, Vec)>, ) -> Result { + if self.config.block_signing.monitor_only { + info!("skipping sending rewards, monitoring mode only"); + return Ok(Hash::Sha256([0u8; 32])); + } + info!("sending rewards"); self.nyxd_client .send_rewards(self.current_epoch, amounts)