diff --git a/Cargo.lock b/Cargo.lock index 492d117474..ee0af73c97 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3249,7 +3249,7 @@ dependencies = [ [[package]] name = "jito-protos" -version = "2.0.16" +version = "2.0.15" dependencies = [ "bytes", "prost", @@ -6085,7 +6085,7 @@ dependencies = [ [[package]] name = "solana-bundle" -version = "2.0.16" +version = "2.0.15" dependencies = [ "anchor-lang", "assert_matches", @@ -7592,7 +7592,7 @@ dependencies = [ [[package]] name = "solana-runtime-plugin" -version = "2.0.16" +version = "2.0.15" dependencies = [ "crossbeam-channel", "json5", @@ -7944,7 +7944,7 @@ dependencies = [ [[package]] name = "solana-tip-distributor" -version = "2.0.16" +version = "2.0.15" dependencies = [ "anchor-lang", "clap 4.3.21", diff --git a/Cargo.toml b/Cargo.toml index 92730635c7..e7d06eaf14 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -248,7 +248,7 @@ jemallocator = { package = "tikv-jemallocator", version = "0.4.1", features = [ "unprefixed_malloc_on_supported_platforms", ] } js-sys = "0.3.69" -jito-protos = { path = "jito-protos", version = "=2.0.16" } +jito-protos = { path = "jito-protos", version = "=2.0.15" } jito-tip-distribution = { path = "jito-programs/mev-programs/programs/tip-distribution", features = ["no-entrypoint"] } jito-tip-payment = { path = "jito-programs/mev-programs/programs/tip-payment", features = ["no-entrypoint"] } json5 = "0.4.1" @@ -334,99 +334,99 @@ smallvec = "1.13.2" smpl_jwt = "0.7.1" socket2 = "0.5.7" soketto = "0.7" -solana-account-decoder = { path = "account-decoder", version = "=2.0.16" } -solana-accounts-db = { path = "accounts-db", version = "=2.0.16" } -solana-address-lookup-table-program = { path = "programs/address-lookup-table", version = "=2.0.16" } -solana-banks-client = { path = "banks-client", version = "=2.0.16" } -solana-banks-interface = { path = "banks-interface", version = "=2.0.16" } -solana-banks-server = { path = "banks-server", version = "=2.0.16" } -solana-bench-tps = { path = "bench-tps", version = "=2.0.16" } -solana-bloom = { path = "bloom", version = "=2.0.16" } -solana-bpf-loader-program = { path = "programs/bpf_loader", version = "=2.0.16" } -solana-bucket-map = { path = "bucket_map", version = "=2.0.16" } -solana-bundle = { path = "bundle", version = "=2.0.16" } -agave-cargo-registry = { path = "cargo-registry", version = "=2.0.16" } -solana-clap-utils = { path = "clap-utils", version = "=2.0.16" } -solana-clap-v3-utils = { path = "clap-v3-utils", version = "=2.0.16" } -solana-cli = { path = "cli", version = "=2.0.16" } -solana-cli-config = { path = "cli-config", version = "=2.0.16" } -solana-cli-output = { path = "cli-output", version = "=2.0.16" } -solana-client = { path = "client", version = "=2.0.16" } -solana-compute-budget = { path = "compute-budget", version = "=2.0.16" } -solana-compute-budget-program = { path = "programs/compute-budget", version = "=2.0.16" } -solana-config-program = { path = "programs/config", version = "=2.0.16" } -solana-connection-cache = { path = "connection-cache", version = "=2.0.16", default-features = false } -solana-core = { path = "core", version = "=2.0.16" } -solana-cost-model = { path = "cost-model", version = "=2.0.16" } -solana-curve25519 = { path = "curves/curve25519", version = "=2.0.16" } -solana-download-utils = { path = "download-utils", version = "=2.0.16" } -solana-entry = { path = "entry", version = "=2.0.16" } -solana-faucet = { path = "faucet", version = "=2.0.16" } -solana-frozen-abi = { path = "frozen-abi", version = "=2.0.16" } -solana-frozen-abi-macro = { path = "frozen-abi/macro", version = "=2.0.16" } -solana-tps-client = { path = "tps-client", version = "=2.0.16" } -solana-genesis = { path = "genesis", version = "=2.0.16" } -solana-genesis-utils = { path = "genesis-utils", version = "=2.0.16" } -agave-geyser-plugin-interface = { path = "geyser-plugin-interface", version = "=2.0.16" } -solana-geyser-plugin-manager = { path = "geyser-plugin-manager", version = "=2.0.16" } -solana-gossip = { path = "gossip", version = "=2.0.16" } -solana-inline-spl = { path = "inline-spl", version = "=2.0.16" } -solana-ledger = { path = "ledger", version = "=2.0.16" } -solana-loader-v4-program = { path = "programs/loader-v4", version = "=2.0.16" } -solana-local-cluster = { path = "local-cluster", version = "=2.0.16" } -solana-logger = { path = "logger", version = "=2.0.16" } -solana-measure = { path = "measure", version = "=2.0.16" } -solana-merkle-tree = { path = "merkle-tree", version = "=2.0.16" } -solana-metrics = { path = "metrics", version = "=2.0.16" } -solana-net-utils = { path = "net-utils", version = "=2.0.16" } +solana-account-decoder = { path = "account-decoder", version = "=2.0.15" } +solana-accounts-db = { path = "accounts-db", version = "=2.0.15" } +solana-address-lookup-table-program = { path = "programs/address-lookup-table", version = "=2.0.15" } +solana-banks-client = { path = "banks-client", version = "=2.0.15" } +solana-banks-interface = { path = "banks-interface", version = "=2.0.15" } +solana-banks-server = { path = "banks-server", version = "=2.0.15" } +solana-bench-tps = { path = "bench-tps", version = "=2.0.15" } +solana-bloom = { path = "bloom", version = "=2.0.15" } +solana-bpf-loader-program = { path = "programs/bpf_loader", version = "=2.0.15" } +solana-bucket-map = { path = "bucket_map", version = "=2.0.15" } +solana-bundle = { path = "bundle", version = "=2.0.15" } +agave-cargo-registry = { path = "cargo-registry", version = "=2.0.15" } +solana-clap-utils = { path = "clap-utils", version = "=2.0.15" } +solana-clap-v3-utils = { path = "clap-v3-utils", version = "=2.0.15" } +solana-cli = { path = "cli", version = "=2.0.15" } +solana-cli-config = { path = "cli-config", version = "=2.0.15" } +solana-cli-output = { path = "cli-output", version = "=2.0.15" } +solana-client = { path = "client", version = "=2.0.15" } +solana-compute-budget = { path = "compute-budget", version = "=2.0.15" } +solana-compute-budget-program = { path = "programs/compute-budget", version = "=2.0.15" } +solana-config-program = { path = "programs/config", version = "=2.0.15" } +solana-connection-cache = { path = "connection-cache", version = "=2.0.15", default-features = false } +solana-core = { path = "core", version = "=2.0.15" } +solana-cost-model = { path = "cost-model", version = "=2.0.15" } +solana-curve25519 = { path = "curves/curve25519", version = "=2.0.15" } +solana-download-utils = { path = "download-utils", version = "=2.0.15" } +solana-entry = { path = "entry", version = "=2.0.15" } +solana-faucet = { path = "faucet", version = "=2.0.15" } +solana-frozen-abi = { path = "frozen-abi", version = "=2.0.15" } +solana-frozen-abi-macro = { path = "frozen-abi/macro", version = "=2.0.15" } +solana-tps-client = { path = "tps-client", version = "=2.0.15" } +solana-genesis = { path = "genesis", version = "=2.0.15" } +solana-genesis-utils = { path = "genesis-utils", version = "=2.0.15" } +agave-geyser-plugin-interface = { path = "geyser-plugin-interface", version = "=2.0.15" } +solana-geyser-plugin-manager = { path = "geyser-plugin-manager", version = "=2.0.15" } +solana-gossip = { path = "gossip", version = "=2.0.15" } +solana-inline-spl = { path = "inline-spl", version = "=2.0.15" } +solana-ledger = { path = "ledger", version = "=2.0.15" } +solana-loader-v4-program = { path = "programs/loader-v4", version = "=2.0.15" } +solana-local-cluster = { path = "local-cluster", version = "=2.0.15" } +solana-logger = { path = "logger", version = "=2.0.15" } +solana-measure = { path = "measure", version = "=2.0.15" } +solana-merkle-tree = { path = "merkle-tree", version = "=2.0.15" } +solana-metrics = { path = "metrics", version = "=2.0.15" } +solana-net-utils = { path = "net-utils", version = "=2.0.15" } solana-nohash-hasher = "0.2.1" -solana-notifier = { path = "notifier", version = "=2.0.16" } -solana-package-metadata-macro = { path = "sdk/package-metadata-macro", version = "=2.0.16" } -solana-perf = { path = "perf", version = "=2.0.16" } -solana-poh = { path = "poh", version = "=2.0.16" } -solana-poseidon = { path = "poseidon", version = "=2.0.16" } -solana-program = { path = "sdk/program", version = "=2.0.16" } -solana-program-runtime = { path = "program-runtime", version = "=2.0.16" } -solana-program-test = { path = "program-test", version = "=2.0.16" } -solana-pubsub-client = { path = "pubsub-client", version = "=2.0.16" } -solana-quic-client = { path = "quic-client", version = "=2.0.16" } -solana-rayon-threadlimit = { path = "rayon-threadlimit", version = "=2.0.16" } -solana-remote-wallet = { path = "remote-wallet", version = "=2.0.16", default-features = false } -solana-unified-scheduler-logic = { path = "unified-scheduler-logic", version = "=2.0.16" } -solana-unified-scheduler-pool = { path = "unified-scheduler-pool", version = "=2.0.16" } -solana-rpc = { path = "rpc", version = "=2.0.16" } -solana-rpc-client = { path = "rpc-client", version = "=2.0.16", default-features = false } -solana-rpc-client-api = { path = "rpc-client-api", version = "=2.0.16" } -solana-rpc-client-nonce-utils = { path = "rpc-client-nonce-utils", version = "=2.0.16" } -solana-runtime = { path = "runtime", version = "=2.0.16" } -solana-runtime-plugin = { path = "runtime-plugin", version = "=2.0.16" } -solana-runtime-transaction = { path = "runtime-transaction", version = "=2.0.16" } -solana-sdk = { path = "sdk", version = "=2.0.16" } -solana-sdk-macro = { path = "sdk/macro", version = "=2.0.16" } -solana-send-transaction-service = { path = "send-transaction-service", version = "=2.0.16" } -solana-stake-program = { path = "programs/stake", version = "=2.0.16" } -solana-storage-bigtable = { path = "storage-bigtable", version = "=2.0.16" } -solana-storage-proto = { path = "storage-proto", version = "=2.0.16" } -solana-streamer = { path = "streamer", version = "=2.0.16" } -solana-svm = { path = "svm", version = "=2.0.16" } -solana-system-program = { path = "programs/system", version = "=2.0.16" } -solana-test-validator = { path = "test-validator", version = "=2.0.16" } -solana-thin-client = { path = "thin-client", version = "=2.0.16" } -solana-tpu-client = { path = "tpu-client", version = "=2.0.16", default-features = false } -solana-transaction-status = { path = "transaction-status", version = "=2.0.16" } -solana-transaction-metrics-tracker = { path = "transaction-metrics-tracker", version = "=2.0.16" } -solana-turbine = { path = "turbine", version = "=2.0.16" } -solana-type-overrides = { path = "type-overrides", version = "=2.0.16" } -solana-udp-client = { path = "udp-client", version = "=2.0.16" } -solana-version = { path = "version", version = "=2.0.16" } -solana-vote = { path = "vote", version = "=2.0.16" } -solana-vote-program = { path = "programs/vote", version = "=2.0.16" } -solana-wen-restart = { path = "wen-restart", version = "=2.0.16" } -solana-zk-elgamal-proof-program = { path = "programs/zk-elgamal-proof", version = "=2.0.16" } -solana-zk-keygen = { path = "zk-keygen", version = "=2.0.16" } -solana-zk-sdk = { path = "zk-sdk", version = "=2.0.16" } -solana-zk-token-proof-program = { path = "programs/zk-token-proof", version = "=2.0.16" } -solana-zk-token-sdk = { path = "zk-token-sdk", version = "=2.0.16" } +solana-notifier = { path = "notifier", version = "=2.0.15" } +solana-package-metadata-macro = { path = "sdk/package-metadata-macro", version = "=2.0.15" } +solana-perf = { path = "perf", version = "=2.0.15" } +solana-poh = { path = "poh", version = "=2.0.15" } +solana-poseidon = { path = "poseidon", version = "=2.0.15" } +solana-program = { path = "sdk/program", version = "=2.0.15" } +solana-program-runtime = { path = "program-runtime", version = "=2.0.15" } +solana-program-test = { path = "program-test", version = "=2.0.15" } +solana-pubsub-client = { path = "pubsub-client", version = "=2.0.15" } +solana-quic-client = { path = "quic-client", version = "=2.0.15" } +solana-rayon-threadlimit = { path = "rayon-threadlimit", version = "=2.0.15" } +solana-remote-wallet = { path = "remote-wallet", version = "=2.0.15", default-features = false } +solana-unified-scheduler-logic = { path = "unified-scheduler-logic", version = "=2.0.15" } +solana-unified-scheduler-pool = { path = "unified-scheduler-pool", version = "=2.0.15" } +solana-rpc = { path = "rpc", version = "=2.0.15" } +solana-rpc-client = { path = "rpc-client", version = "=2.0.15", default-features = false } +solana-rpc-client-api = { path = "rpc-client-api", version = "=2.0.15" } +solana-rpc-client-nonce-utils = { path = "rpc-client-nonce-utils", version = "=2.0.15" } +solana-runtime = { path = "runtime", version = "=2.0.15" } +solana-runtime-plugin = { path = "runtime-plugin", version = "=2.0.15" } +solana-runtime-transaction = { path = "runtime-transaction", version = "=2.0.15" } +solana-sdk = { path = "sdk", version = "=2.0.15" } +solana-sdk-macro = { path = "sdk/macro", version = "=2.0.15" } +solana-send-transaction-service = { path = "send-transaction-service", version = "=2.0.15" } +solana-stake-program = { path = "programs/stake", version = "=2.0.15" } +solana-storage-bigtable = { path = "storage-bigtable", version = "=2.0.15" } +solana-storage-proto = { path = "storage-proto", version = "=2.0.15" } +solana-streamer = { path = "streamer", version = "=2.0.15" } +solana-svm = { path = "svm", version = "=2.0.15" } +solana-system-program = { path = "programs/system", version = "=2.0.15" } +solana-test-validator = { path = "test-validator", version = "=2.0.15" } +solana-thin-client = { path = "thin-client", version = "=2.0.15" } +solana-tpu-client = { path = "tpu-client", version = "=2.0.15", default-features = false } +solana-transaction-status = { path = "transaction-status", version = "=2.0.15" } +solana-transaction-metrics-tracker = { path = "transaction-metrics-tracker", version = "=2.0.15" } +solana-turbine = { path = "turbine", version = "=2.0.15" } +solana-type-overrides = { path = "type-overrides", version = "=2.0.15" } +solana-udp-client = { path = "udp-client", version = "=2.0.15" } +solana-version = { path = "version", version = "=2.0.15" } +solana-vote = { path = "vote", version = "=2.0.15" } +solana-vote-program = { path = "programs/vote", version = "=2.0.15" } +solana-wen-restart = { path = "wen-restart", version = "=2.0.15" } +solana-zk-elgamal-proof-program = { path = "programs/zk-elgamal-proof", version = "=2.0.15" } +solana-zk-keygen = { path = "zk-keygen", version = "=2.0.15" } +solana-zk-sdk = { path = "zk-sdk", version = "=2.0.15" } +solana-zk-token-proof-program = { path = "programs/zk-token-proof", version = "=2.0.15" } +solana-zk-token-sdk = { path = "zk-token-sdk", version = "=2.0.15" } solana_rbpf = "=0.8.4" spl-associated-token-account = "=4.0.0" spl-instruction-padding = "0.2" diff --git a/core/src/admin_rpc_post_init.rs b/core/src/admin_rpc_post_init.rs index c58ba0db9c..425a4375c1 100644 --- a/core/src/admin_rpc_post_init.rs +++ b/core/src/admin_rpc_post_init.rs @@ -27,5 +27,4 @@ pub struct AdminRpcRequestMetadataPostInit { pub block_engine_config: Arc>, pub relayer_config: Arc>, pub shred_receiver_address: Arc>>, - pub shred_retransmit_receiver_address: Arc>>, } diff --git a/core/src/validator.rs b/core/src/validator.rs index 8902e6ea24..7977b9aff8 100644 --- a/core/src/validator.rs +++ b/core/src/validator.rs @@ -290,7 +290,6 @@ pub struct ValidatorConfig { pub block_engine_config: Arc>, // Using Option inside RwLock is ugly, but only convenient way to allow toggle on/off pub shred_receiver_address: Arc>>, - pub shred_retransmit_receiver_address: Arc>>, pub tip_manager_config: TipManagerConfig, pub preallocated_bundle_cost: u64, } @@ -368,7 +367,6 @@ impl Default for ValidatorConfig { relayer_config: Arc::new(Mutex::new(RelayerConfig::default())), block_engine_config: Arc::new(Mutex::new(BlockEngineConfig::default())), shred_receiver_address: Arc::new(RwLock::new(None)), - shred_retransmit_receiver_address: Arc::new(RwLock::new(None)), tip_manager_config: TipManagerConfig::default(), preallocated_bundle_cost: u64::default(), } @@ -1410,7 +1408,7 @@ impl Validator { outstanding_repair_requests.clone(), cluster_slots.clone(), wen_restart_repair_slots.clone(), - config.shred_retransmit_receiver_address.clone(), + config.shred_receiver_address.clone(), )?; if in_wen_restart { @@ -1511,7 +1509,6 @@ impl Validator { block_engine_config: config.block_engine_config.clone(), relayer_config: config.relayer_config.clone(), shred_receiver_address: config.shred_receiver_address.clone(), - shred_retransmit_receiver_address: config.shred_retransmit_receiver_address.clone(), }); Ok(Self { diff --git a/local-cluster/src/validator_configs.rs b/local-cluster/src/validator_configs.rs index 48c97b655b..05971e1f02 100644 --- a/local-cluster/src/validator_configs.rs +++ b/local-cluster/src/validator_configs.rs @@ -76,7 +76,6 @@ pub fn safe_clone_config(config: &ValidatorConfig) -> ValidatorConfig { relayer_config: config.relayer_config.clone(), block_engine_config: config.block_engine_config.clone(), shred_receiver_address: config.shred_receiver_address.clone(), - shred_retransmit_receiver_address: config.shred_retransmit_receiver_address.clone(), tip_manager_config: config.tip_manager_config.clone(), preallocated_bundle_cost: config.preallocated_bundle_cost, } diff --git a/programs/sbf/Cargo.lock b/programs/sbf/Cargo.lock index abbb9c12ce..f4b8af756f 100644 --- a/programs/sbf/Cargo.lock +++ b/programs/sbf/Cargo.lock @@ -2552,7 +2552,7 @@ dependencies = [ [[package]] name = "jito-protos" -version = "2.0.16" +version = "2.0.15" dependencies = [ "bytes", "prost", @@ -4955,7 +4955,7 @@ dependencies = [ [[package]] name = "solana-bundle" -version = "2.0.16" +version = "2.0.15" dependencies = [ "anchor-lang", "itertools 0.12.1", @@ -5936,7 +5936,7 @@ dependencies = [ [[package]] name = "solana-runtime-plugin" -version = "2.0.16" +version = "2.0.15" dependencies = [ "crossbeam-channel", "json5", diff --git a/validator/src/admin_rpc_service.rs b/validator/src/admin_rpc_service.rs index 0fe758bfe9..4cd7b44c93 100644 --- a/validator/src/admin_rpc_service.rs +++ b/validator/src/admin_rpc_service.rs @@ -269,13 +269,6 @@ pub trait AdminRpc { #[rpc(meta, name = "setShredReceiverAddress")] fn set_shred_receiver_address(&self, meta: Self::Metadata, addr: String) -> Result<()>; - - #[rpc(meta, name = "setShredRetransmitReceiverAddress")] - fn set_shred_retransmit_receiver_address( - &self, - meta: Self::Metadata, - addr: String, - ) -> Result<()>; } pub struct AdminRpcImpl; @@ -581,28 +574,6 @@ impl AdminRpc for AdminRpcImpl { }) } - fn set_shred_retransmit_receiver_address( - &self, - meta: Self::Metadata, - addr: String, - ) -> Result<()> { - let shred_receiver_address = if addr.is_empty() { - None - } else { - Some(SocketAddr::from_str(&addr).map_err(|_| { - jsonrpc_core::error::Error::invalid_params(format!( - "invalid shred receiver address: {}", - addr - )) - })?) - }; - - meta.with_post_init(|post_init| { - *post_init.shred_retransmit_receiver_address.write().unwrap() = shred_receiver_address; - Ok(()) - }) - } - fn set_staked_nodes_overrides(&self, meta: Self::Metadata, path: String) -> Result<()> { let loaded_config = load_staked_nodes_overrides(&path) .map_err(|err| { @@ -1052,7 +1023,6 @@ mod tests { let block_engine_config = Arc::new(Mutex::new(BlockEngineConfig::default())); let relayer_config = Arc::new(Mutex::new(RelayerConfig::default())); let shred_receiver_address = Arc::new(RwLock::new(None)); - let shred_retransmit_receiver_address = Arc::new(RwLock::new(None)); let meta = AdminRpcRequestMetadata { rpc_addr: None, start_time: SystemTime::now(), @@ -1076,7 +1046,6 @@ mod tests { block_engine_config, relayer_config, shred_receiver_address, - shred_retransmit_receiver_address, }))), staked_nodes_overrides: Arc::new(RwLock::new(HashMap::new())), rpc_to_plugin_manager_sender: None, diff --git a/validator/src/cli.rs b/validator/src/cli.rs index d7af738af0..8d8c4767a6 100644 --- a/validator/src/cli.rs +++ b/validator/src/cli.rs @@ -164,14 +164,7 @@ pub fn app<'a>(version: &'a str, default_args: &'a DefaultArgs) -> App<'a, 'a> { .long("shred-receiver-address") .value_name("SHRED_RECEIVER_ADDRESS") .takes_value(true) - .help("Validator will forward all leader shreds to this address in addition to normal turbine operation. Set to empty string to disable.") - ) - .arg( - Arg::with_name("shred_retransmit_receiver_address") - .long("shred-retransmit-receiver-address") - .value_name("SHRED_RETRANSMIT_RECEIVER_ADDRESS") - .takes_value(true) - .help("Validator will forward all retransmit shreds to this address in addition to normal turbine operation. Set to empty string to disable.") + .help("Validator will forward all shreds to this address in addition to normal turbine operation. Set to empty string to disable.") ) .arg( Arg::with_name("identity") @@ -1735,18 +1728,6 @@ pub fn app<'a>(version: &'a str, default_args: &'a DefaultArgs) -> App<'a, 'a> { .required(true) ) ) - .subcommand( - SubCommand::with_name("set-shred-retransmit-receiver-address") - .about("Changes shred retransmit receiver address") - .arg( - Arg::with_name("shred_receiver_address") - .long("shred-receiver-address") - .value_name("SHRED_RECEIVER_ADDRESS") - .takes_value(true) - .help("Validator will forward all retransmit shreds to this address in addition to normal turbine operation. Set to empty string to disable.") - .required(true) - ) - ) .subcommand( SubCommand::with_name("exit") .about("Send an exit request to the validator") diff --git a/validator/src/main.rs b/validator/src/main.rs index 083ed464ff..9ce6a23b79 100644 --- a/validator/src/main.rs +++ b/validator/src/main.rs @@ -536,22 +536,6 @@ pub fn main() { }); return; } - ("set-shred-retransmit-receiver-address", Some(subcommand_matches)) => { - let addr = value_t_or_exit!(subcommand_matches, "shred_receiver_address", String); - let admin_client = admin_rpc_service::connect(&ledger_path); - admin_rpc_service::runtime() - .block_on(async move { - admin_client - .await? - .set_shred_retransmit_receiver_address(addr) - .await - }) - .unwrap_or_else(|err| { - println!("set shred receiver address failed: {}", err); - exit(1); - }); - return; - } ("authorized-voter", Some(authorized_voter_subcommand_matches)) => { match authorized_voter_subcommand_matches.subcommand() { ("add", Some(subcommand_matches)) => { @@ -1722,13 +1706,6 @@ pub fn main() { .value_of("shred_receiver_address") .map(|addr| SocketAddr::from_str(addr).expect("shred_receiver_address invalid")), )), - shred_retransmit_receiver_address: Arc::new(RwLock::new( - matches - .value_of("shred_retransmit_receiver_address") - .map(|addr| { - SocketAddr::from_str(addr).expect("shred_retransmit_receiver_address invalid") - }), - )), staked_nodes_overrides: staked_nodes_overrides.clone(), use_snapshot_archives_at_startup: value_t_or_exit!( matches,