test-validator: Plumb --limit-ledger-size
This commit is contained in:
parent
bc7e741514
commit
f17b80236f
|
@ -82,6 +82,7 @@ pub struct TestValidatorGenesis {
|
||||||
pub validator_exit: Arc<RwLock<ValidatorExit>>,
|
pub validator_exit: Arc<RwLock<ValidatorExit>>,
|
||||||
pub start_progress: Arc<RwLock<ValidatorStartProgress>>,
|
pub start_progress: Arc<RwLock<ValidatorStartProgress>>,
|
||||||
pub authorized_voter_keypairs: Arc<RwLock<Vec<Arc<Keypair>>>>,
|
pub authorized_voter_keypairs: Arc<RwLock<Vec<Arc<Keypair>>>>,
|
||||||
|
pub max_ledger_shreds: Option<u64>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl TestValidatorGenesis {
|
impl TestValidatorGenesis {
|
||||||
|
@ -497,9 +498,7 @@ impl TestValidator {
|
||||||
bpf_jit: !config.no_bpf_jit,
|
bpf_jit: !config.no_bpf_jit,
|
||||||
validator_exit: config.validator_exit.clone(),
|
validator_exit: config.validator_exit.clone(),
|
||||||
rocksdb_compaction_interval: Some(100), // Compact every 100 slots
|
rocksdb_compaction_interval: Some(100), // Compact every 100 slots
|
||||||
max_ledger_shreds: Some(10_000), /* 10,000 was derived empirically by watching the size
|
max_ledger_shreds: config.max_ledger_shreds,
|
||||||
of the rocksdb/ directory self-limit itself to the
|
|
||||||
40MB-150MB range when running `solana-test-validator` */
|
|
||||||
no_wait_for_vote_to_start_leader: true,
|
no_wait_for_vote_to_start_leader: true,
|
||||||
..ValidatorConfig::default()
|
..ValidatorConfig::default()
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,7 +2,7 @@ use {
|
||||||
clap::{value_t, value_t_or_exit, App, Arg},
|
clap::{value_t, value_t_or_exit, App, Arg},
|
||||||
fd_lock::FdLock,
|
fd_lock::FdLock,
|
||||||
solana_clap_utils::{
|
solana_clap_utils::{
|
||||||
input_parsers::{pubkey_of, pubkeys_of},
|
input_parsers::{pubkey_of, pubkeys_of, value_of},
|
||||||
input_validators::{
|
input_validators::{
|
||||||
is_pubkey, is_pubkey_or_keypair, is_slot, is_url_or_moniker,
|
is_pubkey, is_pubkey_or_keypair, is_slot, is_url_or_moniker,
|
||||||
normalize_to_url_if_moniker,
|
normalize_to_url_if_moniker,
|
||||||
|
@ -35,6 +35,12 @@ use {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* 10,000 was derived empirically by watching the size
|
||||||
|
* of the rocksdb/ directory self-limit itself to the
|
||||||
|
* 40MB-150MB range when running `solana-test-validator`
|
||||||
|
*/
|
||||||
|
const DEFAULT_MAX_LEDGER_SHREDS: u64 = 10_000;
|
||||||
|
|
||||||
#[derive(PartialEq)]
|
#[derive(PartialEq)]
|
||||||
enum Output {
|
enum Output {
|
||||||
None,
|
None,
|
||||||
|
@ -45,6 +51,7 @@ enum Output {
|
||||||
fn main() {
|
fn main() {
|
||||||
let default_rpc_port = rpc_port::DEFAULT_RPC_PORT.to_string();
|
let default_rpc_port = rpc_port::DEFAULT_RPC_PORT.to_string();
|
||||||
let default_faucet_port = FAUCET_PORT.to_string();
|
let default_faucet_port = FAUCET_PORT.to_string();
|
||||||
|
let default_limit_ledger_size = DEFAULT_MAX_LEDGER_SHREDS.to_string();
|
||||||
|
|
||||||
let matches = App::new("solana-test-validator")
|
let matches = App::new("solana-test-validator")
|
||||||
.about("Test Validator")
|
.about("Test Validator")
|
||||||
|
@ -248,6 +255,14 @@ fn main() {
|
||||||
referenced by the --url argument will be used",
|
referenced by the --url argument will be used",
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
.arg(
|
||||||
|
Arg::with_name("limit_ledger_size")
|
||||||
|
.long("limit-ledger-size")
|
||||||
|
.value_name("SHRED_COUNT")
|
||||||
|
.takes_value(true)
|
||||||
|
.default_value(default_limit_ledger_size.as_str())
|
||||||
|
.help("Keep this amount of shreds in root slots."),
|
||||||
|
)
|
||||||
.get_matches();
|
.get_matches();
|
||||||
|
|
||||||
let cli_config = if let Some(config_file) = matches.value_of("config_file") {
|
let cli_config = if let Some(config_file) = matches.value_of("config_file") {
|
||||||
|
@ -460,6 +475,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut genesis = TestValidatorGenesis::default();
|
let mut genesis = TestValidatorGenesis::default();
|
||||||
|
genesis.max_ledger_shreds = value_of(&matches, "limit_ledger_size");
|
||||||
|
|
||||||
admin_rpc_service::run(
|
admin_rpc_service::run(
|
||||||
&ledger_path,
|
&ledger_path,
|
||||||
|
|
Loading…
Reference in New Issue