From c2ce152be82b5be66d4abe0ba7f23ad8ed0f63ac Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Sat, 5 Mar 2022 14:46:23 +0100 Subject: [PATCH] Inline do_process_blockstore_from_root --- core/src/retransmit_stage.rs | 13 ++--- ledger/src/bank_forks_utils.rs | 21 +++++--- ledger/src/blockstore_processor.rs | 78 +++++------------------------- 3 files changed, 31 insertions(+), 81 deletions(-) diff --git a/core/src/retransmit_stage.rs b/core/src/retransmit_stage.rs index 60e7d88ab..d50c0badc 100644 --- a/core/src/retransmit_stage.rs +++ b/core/src/retransmit_stage.rs @@ -529,7 +529,7 @@ mod tests { super::*, solana_gossip::contact_info::ContactInfo, solana_ledger::{ - blockstore_processor::{process_blockstore, ProcessOptions}, + blockstore_processor::{test_process_blockstore, ProcessOptions}, create_new_tmp_ledger, genesis_utils::{create_genesis_config, GenesisConfigInfo}, }, @@ -550,18 +550,11 @@ mod tests { full_leader_cache: true, ..ProcessOptions::default() }; - let (accounts_package_sender, _) = unbounded(); - let (bank_forks, cached_leader_schedule, _) = process_blockstore( + let (bank_forks, cached_leader_schedule, _) = test_process_blockstore( &genesis_config, &blockstore, - Vec::new(), opts, - None, - None, - accounts_package_sender, - None, - ) - .unwrap(); + ); let leader_schedule_cache = Arc::new(cached_leader_schedule); let bank_forks = Arc::new(RwLock::new(bank_forks)); diff --git a/ledger/src/bank_forks_utils.rs b/ledger/src/bank_forks_utils.rs index fa86ed797..54260803a 100644 --- a/ledger/src/bank_forks_utils.rs +++ b/ledger/src/bank_forks_utils.rs @@ -108,16 +108,25 @@ pub fn load( } 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( - blockstore_processor::process_blockstore( - genesis_config, + blockstore_processor::process_blockstore_from_root( blockstore, - account_paths, - process_options, + bank_forks, + &process_options, + transaction_status_sender, cache_block_meta_sender, snapshot_config, accounts_package_sender, - accounts_update_notifier, + None, ), None, ) @@ -197,7 +206,7 @@ fn load_from_snapshot( cache_block_meta_sender, Some(snapshot_config), accounts_package_sender, - full_snapshot_archive_info.slot(), + Some(full_snapshot_archive_info.slot()), ), Some(starting_snapshot_hashes), ) diff --git a/ledger/src/blockstore_processor.rs b/ledger/src/blockstore_processor.rs index 366f6471e..faa204786 100644 --- a/ledger/src/blockstore_processor.rs +++ b/ledger/src/blockstore_processor.rs @@ -4,7 +4,7 @@ use { blockstore_meta::SlotMeta, leader_schedule_cache::LeaderScheduleCache, }, chrono_humanize::{Accuracy, HumanTime, Tense}, - crossbeam_channel::Sender, + crossbeam_channel::{unbounded, Sender}, itertools::Itertools, log::*, rand::{seq::SliceRandom, thread_rng}, @@ -566,37 +566,28 @@ pub struct ProcessOptions { pub shrink_ratio: AccountShrinkThreshold, } -pub fn process_blockstore( +pub fn test_process_blockstore( genesis_config: &GenesisConfig, blockstore: &Blockstore, - account_paths: Vec, opts: ProcessOptions, - cache_block_meta_sender: Option<&CacheBlockMetaSender>, - snapshot_config: Option<&SnapshotConfig>, - accounts_package_sender: AccountsPackageSender, - accounts_update_notifier: Option, -) -> BlockstoreProcessorResult { - 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( +) -> BlockstoreProcessorInner { + let (accounts_package_sender, _) = unbounded(); + let bank_forks = + process_blockstore_for_bank_0(genesis_config, blockstore, Vec::new(), &opts, None, None); + process_blockstore_from_root( blockstore, bank_forks, &opts, None, - cache_block_meta_sender, - snapshot_config, + None, + None, accounts_package_sender, None, ) + .unwrap() } -fn process_blockstore_for_bank_0( +pub(crate) fn process_blockstore_for_bank_0( genesis_config: &GenesisConfig, blockstore: &Blockstore, account_paths: Vec, @@ -633,29 +624,6 @@ fn process_blockstore_for_bank_0( /// Process blockstore from a known root bank #[allow(clippy::too_many_arguments)] 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, mut bank_forks: BankForks, opts: &ProcessOptions, @@ -1592,7 +1560,6 @@ pub mod tests { crate::genesis_utils::{ create_genesis_config, create_genesis_config_with_leader, GenesisConfigInfo, }, - crossbeam_channel::unbounded, matches::assert_matches, rand::{thread_rng, Rng}, solana_entry::entry::{create_ticks, next_entry, next_entry_mut}, @@ -1619,25 +1586,6 @@ pub mod tests { 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] fn test_process_blockstore_with_missing_hashes() { solana_logger::setup(); @@ -3206,7 +3154,7 @@ pub mod tests { // Test process_blockstore_from_root() from slot 1 onwards let (accounts_package_sender, _) = unbounded(); - let (bank_forks, ..) = do_process_blockstore_from_root( + let (bank_forks, ..) = process_blockstore_from_root( &blockstore, bank_forks, &opts, @@ -3314,7 +3262,7 @@ pub mod tests { let (accounts_package_sender, accounts_package_receiver) = unbounded(); - do_process_blockstore_from_root( + process_blockstore_from_root( &blockstore, bank_forks, &opts,