Inline do_process_blockstore_from_root
This commit is contained in:
parent
07d5ee062d
commit
c2ce152be8
|
@ -529,7 +529,7 @@ mod tests {
|
||||||
super::*,
|
super::*,
|
||||||
solana_gossip::contact_info::ContactInfo,
|
solana_gossip::contact_info::ContactInfo,
|
||||||
solana_ledger::{
|
solana_ledger::{
|
||||||
blockstore_processor::{process_blockstore, ProcessOptions},
|
blockstore_processor::{test_process_blockstore, ProcessOptions},
|
||||||
create_new_tmp_ledger,
|
create_new_tmp_ledger,
|
||||||
genesis_utils::{create_genesis_config, GenesisConfigInfo},
|
genesis_utils::{create_genesis_config, GenesisConfigInfo},
|
||||||
},
|
},
|
||||||
|
@ -550,18 +550,11 @@ mod tests {
|
||||||
full_leader_cache: true,
|
full_leader_cache: true,
|
||||||
..ProcessOptions::default()
|
..ProcessOptions::default()
|
||||||
};
|
};
|
||||||
let (accounts_package_sender, _) = unbounded();
|
let (bank_forks, cached_leader_schedule, _) = test_process_blockstore(
|
||||||
let (bank_forks, cached_leader_schedule, _) = process_blockstore(
|
|
||||||
&genesis_config,
|
&genesis_config,
|
||||||
&blockstore,
|
&blockstore,
|
||||||
Vec::new(),
|
|
||||||
opts,
|
opts,
|
||||||
None,
|
);
|
||||||
None,
|
|
||||||
accounts_package_sender,
|
|
||||||
None,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
let leader_schedule_cache = Arc::new(cached_leader_schedule);
|
let leader_schedule_cache = Arc::new(cached_leader_schedule);
|
||||||
let bank_forks = Arc::new(RwLock::new(bank_forks));
|
let bank_forks = Arc::new(RwLock::new(bank_forks));
|
||||||
|
|
||||||
|
|
|
@ -108,16 +108,25 @@ pub fn load(
|
||||||
}
|
}
|
||||||
|
|
||||||
info!("Processing ledger from genesis");
|
info!("Processing ledger from genesis");
|
||||||
|
|
||||||
|
let bank_forks = blockstore_processor::process_blockstore_for_bank_0(
|
||||||
|
genesis_config,
|
||||||
|
blockstore,
|
||||||
|
account_paths,
|
||||||
|
&process_options,
|
||||||
|
cache_block_meta_sender,
|
||||||
|
accounts_update_notifier,
|
||||||
|
);
|
||||||
to_loadresult(
|
to_loadresult(
|
||||||
blockstore_processor::process_blockstore(
|
blockstore_processor::process_blockstore_from_root(
|
||||||
genesis_config,
|
|
||||||
blockstore,
|
blockstore,
|
||||||
account_paths,
|
bank_forks,
|
||||||
process_options,
|
&process_options,
|
||||||
|
transaction_status_sender,
|
||||||
cache_block_meta_sender,
|
cache_block_meta_sender,
|
||||||
snapshot_config,
|
snapshot_config,
|
||||||
accounts_package_sender,
|
accounts_package_sender,
|
||||||
accounts_update_notifier,
|
None,
|
||||||
),
|
),
|
||||||
None,
|
None,
|
||||||
)
|
)
|
||||||
|
@ -197,7 +206,7 @@ fn load_from_snapshot(
|
||||||
cache_block_meta_sender,
|
cache_block_meta_sender,
|
||||||
Some(snapshot_config),
|
Some(snapshot_config),
|
||||||
accounts_package_sender,
|
accounts_package_sender,
|
||||||
full_snapshot_archive_info.slot(),
|
Some(full_snapshot_archive_info.slot()),
|
||||||
),
|
),
|
||||||
Some(starting_snapshot_hashes),
|
Some(starting_snapshot_hashes),
|
||||||
)
|
)
|
||||||
|
|
|
@ -4,7 +4,7 @@ use {
|
||||||
blockstore_meta::SlotMeta, leader_schedule_cache::LeaderScheduleCache,
|
blockstore_meta::SlotMeta, leader_schedule_cache::LeaderScheduleCache,
|
||||||
},
|
},
|
||||||
chrono_humanize::{Accuracy, HumanTime, Tense},
|
chrono_humanize::{Accuracy, HumanTime, Tense},
|
||||||
crossbeam_channel::Sender,
|
crossbeam_channel::{unbounded, Sender},
|
||||||
itertools::Itertools,
|
itertools::Itertools,
|
||||||
log::*,
|
log::*,
|
||||||
rand::{seq::SliceRandom, thread_rng},
|
rand::{seq::SliceRandom, thread_rng},
|
||||||
|
@ -566,37 +566,28 @@ pub struct ProcessOptions {
|
||||||
pub shrink_ratio: AccountShrinkThreshold,
|
pub shrink_ratio: AccountShrinkThreshold,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn process_blockstore(
|
pub fn test_process_blockstore(
|
||||||
genesis_config: &GenesisConfig,
|
genesis_config: &GenesisConfig,
|
||||||
blockstore: &Blockstore,
|
blockstore: &Blockstore,
|
||||||
account_paths: Vec<PathBuf>,
|
|
||||||
opts: ProcessOptions,
|
opts: ProcessOptions,
|
||||||
cache_block_meta_sender: Option<&CacheBlockMetaSender>,
|
) -> BlockstoreProcessorInner {
|
||||||
snapshot_config: Option<&SnapshotConfig>,
|
let (accounts_package_sender, _) = unbounded();
|
||||||
accounts_package_sender: AccountsPackageSender,
|
let bank_forks =
|
||||||
accounts_update_notifier: Option<AccountsUpdateNotifier>,
|
process_blockstore_for_bank_0(genesis_config, blockstore, Vec::new(), &opts, None, None);
|
||||||
) -> BlockstoreProcessorResult {
|
process_blockstore_from_root(
|
||||||
let bank_forks = process_blockstore_for_bank_0(
|
|
||||||
genesis_config,
|
|
||||||
blockstore,
|
|
||||||
account_paths,
|
|
||||||
&opts,
|
|
||||||
cache_block_meta_sender,
|
|
||||||
accounts_update_notifier,
|
|
||||||
);
|
|
||||||
do_process_blockstore_from_root(
|
|
||||||
blockstore,
|
blockstore,
|
||||||
bank_forks,
|
bank_forks,
|
||||||
&opts,
|
&opts,
|
||||||
None,
|
None,
|
||||||
cache_block_meta_sender,
|
None,
|
||||||
snapshot_config,
|
None,
|
||||||
accounts_package_sender,
|
accounts_package_sender,
|
||||||
None,
|
None,
|
||||||
)
|
)
|
||||||
|
.unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn process_blockstore_for_bank_0(
|
pub(crate) fn process_blockstore_for_bank_0(
|
||||||
genesis_config: &GenesisConfig,
|
genesis_config: &GenesisConfig,
|
||||||
blockstore: &Blockstore,
|
blockstore: &Blockstore,
|
||||||
account_paths: Vec<PathBuf>,
|
account_paths: Vec<PathBuf>,
|
||||||
|
@ -633,29 +624,6 @@ fn process_blockstore_for_bank_0(
|
||||||
/// Process blockstore from a known root bank
|
/// Process blockstore from a known root bank
|
||||||
#[allow(clippy::too_many_arguments)]
|
#[allow(clippy::too_many_arguments)]
|
||||||
pub(crate) fn process_blockstore_from_root(
|
pub(crate) fn process_blockstore_from_root(
|
||||||
blockstore: &Blockstore,
|
|
||||||
bank_forks: BankForks,
|
|
||||||
opts: &ProcessOptions,
|
|
||||||
transaction_status_sender: Option<&TransactionStatusSender>,
|
|
||||||
cache_block_meta_sender: Option<&CacheBlockMetaSender>,
|
|
||||||
snapshot_config: Option<&SnapshotConfig>,
|
|
||||||
accounts_package_sender: AccountsPackageSender,
|
|
||||||
last_full_snapshot_slot: Slot,
|
|
||||||
) -> BlockstoreProcessorResult {
|
|
||||||
do_process_blockstore_from_root(
|
|
||||||
blockstore,
|
|
||||||
bank_forks,
|
|
||||||
opts,
|
|
||||||
transaction_status_sender,
|
|
||||||
cache_block_meta_sender,
|
|
||||||
snapshot_config,
|
|
||||||
accounts_package_sender,
|
|
||||||
Some(last_full_snapshot_slot),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[allow(clippy::too_many_arguments)]
|
|
||||||
fn do_process_blockstore_from_root(
|
|
||||||
blockstore: &Blockstore,
|
blockstore: &Blockstore,
|
||||||
mut bank_forks: BankForks,
|
mut bank_forks: BankForks,
|
||||||
opts: &ProcessOptions,
|
opts: &ProcessOptions,
|
||||||
|
@ -1592,7 +1560,6 @@ pub mod tests {
|
||||||
crate::genesis_utils::{
|
crate::genesis_utils::{
|
||||||
create_genesis_config, create_genesis_config_with_leader, GenesisConfigInfo,
|
create_genesis_config, create_genesis_config_with_leader, GenesisConfigInfo,
|
||||||
},
|
},
|
||||||
crossbeam_channel::unbounded,
|
|
||||||
matches::assert_matches,
|
matches::assert_matches,
|
||||||
rand::{thread_rng, Rng},
|
rand::{thread_rng, Rng},
|
||||||
solana_entry::entry::{create_ticks, next_entry, next_entry_mut},
|
solana_entry::entry::{create_ticks, next_entry, next_entry_mut},
|
||||||
|
@ -1619,25 +1586,6 @@ pub mod tests {
|
||||||
trees::tr,
|
trees::tr,
|
||||||
};
|
};
|
||||||
|
|
||||||
fn test_process_blockstore(
|
|
||||||
genesis_config: &GenesisConfig,
|
|
||||||
blockstore: &Blockstore,
|
|
||||||
opts: ProcessOptions,
|
|
||||||
) -> BlockstoreProcessorInner {
|
|
||||||
let (accounts_package_sender, _) = unbounded();
|
|
||||||
process_blockstore(
|
|
||||||
genesis_config,
|
|
||||||
blockstore,
|
|
||||||
Vec::new(),
|
|
||||||
opts,
|
|
||||||
None,
|
|
||||||
None,
|
|
||||||
accounts_package_sender,
|
|
||||||
None,
|
|
||||||
)
|
|
||||||
.unwrap()
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_process_blockstore_with_missing_hashes() {
|
fn test_process_blockstore_with_missing_hashes() {
|
||||||
solana_logger::setup();
|
solana_logger::setup();
|
||||||
|
@ -3206,7 +3154,7 @@ pub mod tests {
|
||||||
|
|
||||||
// Test process_blockstore_from_root() from slot 1 onwards
|
// Test process_blockstore_from_root() from slot 1 onwards
|
||||||
let (accounts_package_sender, _) = unbounded();
|
let (accounts_package_sender, _) = unbounded();
|
||||||
let (bank_forks, ..) = do_process_blockstore_from_root(
|
let (bank_forks, ..) = process_blockstore_from_root(
|
||||||
&blockstore,
|
&blockstore,
|
||||||
bank_forks,
|
bank_forks,
|
||||||
&opts,
|
&opts,
|
||||||
|
@ -3314,7 +3262,7 @@ pub mod tests {
|
||||||
|
|
||||||
let (accounts_package_sender, accounts_package_receiver) = unbounded();
|
let (accounts_package_sender, accounts_package_receiver) = unbounded();
|
||||||
|
|
||||||
do_process_blockstore_from_root(
|
process_blockstore_from_root(
|
||||||
&blockstore,
|
&blockstore,
|
||||||
bank_forks,
|
bank_forks,
|
||||||
&opts,
|
&opts,
|
||||||
|
|
Loading…
Reference in New Issue