test-validator: hold rent constant with --slots-per-epoch (#18317)

(cherry picked from commit 02b14caa5f)

Co-authored-by: Trent Nelson <trent@solana.com>
This commit is contained in:
mergify[bot]
2021-06-30 08:30:39 +00:00
committed by GitHub
parent 56a4fc3dd2
commit df8cf37b89
3 changed files with 16 additions and 1 deletions

View File

@ -70,7 +70,7 @@ impl Default for TestValidatorNodeConfig {
pub struct TestValidatorGenesis { pub struct TestValidatorGenesis {
fee_rate_governor: FeeRateGovernor, fee_rate_governor: FeeRateGovernor,
ledger_path: Option<PathBuf>, ledger_path: Option<PathBuf>,
rent: Rent, pub rent: Rent,
rpc_config: JsonRpcConfig, rpc_config: JsonRpcConfig,
rpc_ports: Option<(u16, u16)>, // (JsonRpc, JsonRpcPubSub), None == random ports rpc_ports: Option<(u16, u16)>, // (JsonRpc, JsonRpcPubSub), None == random ports
warp_slot: Option<Slot>, warp_slot: Option<Slot>,

View File

@ -1,4 +1,5 @@
//! configuration for network rent //! configuration for network rent
use crate::clock::DEFAULT_SLOTS_PER_EPOCH;
#[repr(C)] #[repr(C)]
#[derive(Serialize, Deserialize, PartialEq, Clone, Copy, Debug, AbiExample)] #[derive(Serialize, Deserialize, PartialEq, Clone, Copy, Debug, AbiExample)]
@ -81,6 +82,17 @@ impl Rent {
..Rent::default() ..Rent::default()
} }
} }
pub fn with_slots_per_epoch(slots_per_epoch: u64) -> Self {
let ratio = slots_per_epoch as f64 / DEFAULT_SLOTS_PER_EPOCH as f64;
let exemption_threshold = DEFAULT_EXEMPTION_THRESHOLD as f64 * ratio;
let lamports_per_byte_year = (DEFAULT_LAMPORTS_PER_BYTE_YEAR as f64 / ratio) as u64;
Self {
lamports_per_byte_year,
exemption_threshold,
..Self::default()
}
}
} }
#[cfg(test)] #[cfg(test)]

View File

@ -17,6 +17,7 @@ use {
epoch_schedule::{EpochSchedule, MINIMUM_SLOTS_PER_EPOCH}, epoch_schedule::{EpochSchedule, MINIMUM_SLOTS_PER_EPOCH},
native_token::sol_to_lamports, native_token::sol_to_lamports,
pubkey::Pubkey, pubkey::Pubkey,
rent::Rent,
rpc_port, rpc_port,
signature::{read_keypair_file, write_keypair_file, Keypair, Signer}, signature::{read_keypair_file, write_keypair_file, Keypair, Signer},
system_program, system_program,
@ -561,6 +562,8 @@ fn main() {
slots_per_epoch, slots_per_epoch,
/* enable_warmup_epochs = */ false, /* enable_warmup_epochs = */ false,
)); ));
genesis.rent = Rent::with_slots_per_epoch(slots_per_epoch);
} }
if let Some(gossip_host) = gossip_host { if let Some(gossip_host) = gossip_host {