Add replay invalidator scaffolding upstream (#31567)

* Add replay invalidator scaffolding upstream
This commit is contained in:
Brennan 2023-05-16 13:08:39 -07:00 committed by GitHub
parent 5bc41a0eb8
commit a9b19f5b14
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 0 deletions

View File

@ -15,6 +15,7 @@ use {
sigverify::TransactionSigVerifier,
sigverify_stage::SigVerifyStage,
staked_nodes_updater_service::StakedNodesUpdaterService,
validator::GeneratorConfig,
},
crossbeam_channel::{unbounded, Receiver},
solana_client::connection_cache::{ConnectionCache, Protocol},
@ -106,6 +107,7 @@ impl Tpu {
tracer_thread_hdl: TracerThread,
tpu_enable_udp: bool,
prioritization_fee_cache: &Arc<PrioritizationFeeCache>,
_generator_config: Option<GeneratorConfig>, /* vestigial code for replay invalidator */
) -> Self {
let TpuSockets {
transactions: transactions_sockets,

View File

@ -175,6 +175,13 @@ impl BlockProductionMethod {
}
}
/// Configuration for the block generator invalidator for replay.
#[derive(Clone, Debug)]
pub struct GeneratorConfig {
pub accounts_path: String,
pub starting_keypairs: Arc<Vec<Keypair>>,
}
pub struct ValidatorConfig {
pub halt_at_slot: Option<Slot>,
pub expected_genesis_hash: Option<Hash>,
@ -240,6 +247,7 @@ pub struct ValidatorConfig {
pub banking_trace_dir_byte_limit: banking_trace::DirByteLimit,
pub block_verification_method: BlockVerificationMethod,
pub block_production_method: BlockProductionMethod,
pub generator_config: Option<GeneratorConfig>,
}
impl Default for ValidatorConfig {
@ -306,6 +314,7 @@ impl Default for ValidatorConfig {
banking_trace_dir_byte_limit: 0,
block_verification_method: BlockVerificationMethod::default(),
block_production_method: BlockProductionMethod::default(),
generator_config: None,
}
}
}
@ -1184,6 +1193,7 @@ impl Validator {
tracer_thread,
tpu_enable_udp,
&prioritization_fee_cache,
config.generator_config.clone(),
);
datapoint_info!(

View File

@ -68,6 +68,7 @@ pub fn safe_clone_config(config: &ValidatorConfig) -> ValidatorConfig {
banking_trace_dir_byte_limit: config.banking_trace_dir_byte_limit,
block_verification_method: config.block_verification_method.clone(),
block_production_method: config.block_production_method.clone(),
generator_config: config.generator_config.clone(),
}
}