refactor core to create consensus module (#32282)

This commit is contained in:
Jeff Biseda 2023-06-27 17:25:08 -07:00 committed by GitHub
parent 9fb105c801
commit 87c1b67d53
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 90 additions and 71 deletions

View File

@ -5,7 +5,8 @@ extern crate test;
use { use {
solana_core::{ solana_core::{
consensus::Tower, tower_storage::FileTowerStorage, vote_simulator::VoteSimulator, consensus::{tower_storage::FileTowerStorage, Tower},
vote_simulator::VoteSimulator,
}, },
solana_runtime::{bank::Bank, bank_forks::BankForks}, solana_runtime::{bank::Bank, bank_forks::BankForks},
solana_sdk::{ solana_sdk::{

View File

@ -1,6 +1,7 @@
use { use {
crate::{ crate::{
banking_trace::{BankingPacketBatch, BankingPacketSender}, banking_trace::{BankingPacketBatch, BankingPacketSender},
consensus::vote_stake_tracker::VoteStakeTracker,
optimistic_confirmation_verifier::OptimisticConfirmationVerifier, optimistic_confirmation_verifier::OptimisticConfirmationVerifier,
replay_stage::DUPLICATE_THRESHOLD, replay_stage::DUPLICATE_THRESHOLD,
result::{Error, Result}, result::{Error, Result},
@ -8,7 +9,6 @@ use {
verified_vote_packets::{ verified_vote_packets::{
ValidatorGossipVotesIterator, VerifiedVoteMetadata, VerifiedVotePackets, ValidatorGossipVotesIterator, VerifiedVoteMetadata, VerifiedVotePackets,
}, },
vote_stake_tracker::VoteStakeTracker,
}, },
crossbeam_channel::{unbounded, Receiver, RecvTimeoutError, Select, Sender}, crossbeam_channel::{unbounded, Receiver, RecvTimeoutError, Select, Sender},
log::*, log::*,

View File

@ -1,8 +1,9 @@
use { use {
crate::{ crate::{
ancestor_hashes_service::{AncestorHashesReplayUpdate, AncestorHashesReplayUpdateSender}, ancestor_hashes_service::{AncestorHashesReplayUpdate, AncestorHashesReplayUpdateSender},
fork_choice::ForkChoice, consensus::{
heaviest_subtree_fork_choice::HeaviestSubtreeForkChoice, fork_choice::ForkChoice, heaviest_subtree_fork_choice::HeaviestSubtreeForkChoice,
},
}, },
solana_ledger::blockstore::Blockstore, solana_ledger::blockstore::Blockstore,
solana_sdk::{clock::Slot, hash::Hash}, solana_sdk::{clock::Slot, hash::Hash},
@ -946,7 +947,7 @@ pub(crate) fn check_slot_agrees_with_cluster(
mod test { mod test {
use { use {
super::*, super::*,
crate::{progress_map::ProgressMap, replay_stage::tests::setup_forks_from_tree}, crate::{consensus::progress_map::ProgressMap, replay_stage::tests::setup_forks_from_tree},
crossbeam_channel::unbounded, crossbeam_channel::unbounded,
solana_runtime::bank_forks::BankForks, solana_runtime::bank_forks::BankForks,
std::{ std::{

View File

@ -1,5 +1,15 @@
pub mod fork_choice;
pub mod heaviest_subtree_fork_choice;
pub(crate) mod latest_validator_votes_for_frozen_banks;
pub mod progress_map;
mod tower1_14_11;
mod tower1_7_14;
pub mod tower_storage;
pub mod tree_diff;
pub mod vote_stake_tracker;
use { use {
crate::{ self::{
heaviest_subtree_fork_choice::HeaviestSubtreeForkChoice, heaviest_subtree_fork_choice::HeaviestSubtreeForkChoice,
latest_validator_votes_for_frozen_banks::LatestValidatorVotesForFrozenBanks, latest_validator_votes_for_frozen_banks::LatestValidatorVotesForFrozenBanks,
progress_map::{LockoutIntervals, ProgressMap}, progress_map::{LockoutIntervals, ProgressMap},
@ -1535,8 +1545,11 @@ pub mod test {
use { use {
super::*, super::*,
crate::{ crate::{
fork_choice::ForkChoice, heaviest_subtree_fork_choice::SlotHashKey, consensus::{
replay_stage::HeaviestForkFailures, tower_storage::FileTowerStorage, fork_choice::ForkChoice, heaviest_subtree_fork_choice::SlotHashKey,
tower_storage::FileTowerStorage,
},
replay_stage::HeaviestForkFailures,
vote_simulator::VoteSimulator, vote_simulator::VoteSimulator,
}, },
itertools::Itertools, itertools::Itertools,

View File

@ -1,8 +1,9 @@
use { use {
crate::{ crate::{
consensus::{SwitchForkDecision, Tower}, consensus::{
latest_validator_votes_for_frozen_banks::LatestValidatorVotesForFrozenBanks, latest_validator_votes_for_frozen_banks::LatestValidatorVotesForFrozenBanks,
progress_map::ProgressMap, progress_map::ProgressMap, SwitchForkDecision, Tower,
},
replay_stage::HeaviestForkFailures, replay_stage::HeaviestForkFailures,
}, },
solana_runtime::{bank::Bank, bank_forks::BankForks}, solana_runtime::{bank::Bank, bank_forks::BankForks},

View File

@ -1,10 +1,10 @@
#[cfg(test)] #[cfg(test)]
use trees::{Tree, TreeWalk}; use trees::{Tree, TreeWalk};
use { use {
crate::{ crate::consensus::{
consensus::Tower, fork_choice::ForkChoice, fork_choice::ForkChoice,
latest_validator_votes_for_frozen_banks::LatestValidatorVotesForFrozenBanks, latest_validator_votes_for_frozen_banks::LatestValidatorVotesForFrozenBanks,
progress_map::ProgressMap, tree_diff::TreeDiff, progress_map::ProgressMap, tree_diff::TreeDiff, Tower,
}, },
solana_measure::measure::Measure, solana_measure::measure::Measure,
solana_runtime::{bank::Bank, bank_forks::BankForks, epoch_stakes::EpochStakes}, solana_runtime::{bank::Bank, bank_forks::BankForks, epoch_stakes::EpochStakes},

View File

@ -1,5 +1,5 @@
use { use {
crate::heaviest_subtree_fork_choice::SlotHashKey, crate::consensus::heaviest_subtree_fork_choice::SlotHashKey,
solana_sdk::{clock::Slot, hash::Hash, pubkey::Pubkey}, solana_sdk::{clock::Slot, hash::Hash, pubkey::Pubkey},
std::collections::{hash_map::Entry, HashMap}, std::collections::{hash_map::Entry, HashMap},
}; };

View File

@ -1,8 +1,7 @@
use { use {
crate::{ crate::consensus::{
consensus::{Result, Tower, TowerError, TowerVersions}, tower1_14_11::Tower1_14_11, tower1_7_14::SavedTower1_7_14, Result, Tower, TowerError,
tower1_14_11::Tower1_14_11, TowerVersions,
tower1_7_14::SavedTower1_7_14,
}, },
solana_sdk::{ solana_sdk::{
pubkey::Pubkey, pubkey::Pubkey,
@ -371,9 +370,9 @@ impl TowerStorage for EtcdTowerStorage {
pub mod test { pub mod test {
use { use {
super::*, super::*,
crate::{ crate::consensus::{
consensus::Tower,
tower1_7_14::{SavedTower1_7_14, Tower1_7_14}, tower1_7_14::{SavedTower1_7_14, Tower1_7_14},
Tower,
}, },
solana_sdk::{hash::Hash, signature::Keypair}, solana_sdk::{hash::Hash, signature::Keypair},
solana_vote_program::vote_state::{ solana_vote_program::vote_state::{

View File

@ -24,10 +24,7 @@ pub mod cost_update_service;
pub mod drop_bank_service; pub mod drop_bank_service;
pub mod duplicate_repair_status; pub mod duplicate_repair_status;
pub mod fetch_stage; pub mod fetch_stage;
pub mod fork_choice;
pub mod gen_keys; pub mod gen_keys;
pub mod heaviest_subtree_fork_choice;
pub mod latest_validator_votes_for_frozen_banks;
pub mod ledger_cleanup_service; pub mod ledger_cleanup_service;
pub mod ledger_metric_report_service; pub mod ledger_metric_report_service;
pub mod next_leader; pub mod next_leader;
@ -36,7 +33,6 @@ pub mod outstanding_requests;
pub mod packet_threshold; pub mod packet_threshold;
pub mod poh_timing_report_service; pub mod poh_timing_report_service;
pub mod poh_timing_reporter; pub mod poh_timing_reporter;
pub mod progress_map;
pub mod repair_generic_traversal; pub mod repair_generic_traversal;
pub mod repair_response; pub mod repair_response;
pub mod repair_service; pub mod repair_service;
@ -56,19 +52,14 @@ pub mod snapshot_packager_service;
pub mod staked_nodes_updater_service; pub mod staked_nodes_updater_service;
pub mod stats_reporter_service; pub mod stats_reporter_service;
pub mod system_monitor_service; pub mod system_monitor_service;
mod tower1_14_11;
mod tower1_7_14;
pub mod tower_storage;
pub mod tpu; pub mod tpu;
mod tpu_entry_notifier; mod tpu_entry_notifier;
pub mod tracer_packet_stats; pub mod tracer_packet_stats;
pub mod tree_diff;
pub mod tvu; pub mod tvu;
pub mod unfrozen_gossip_verified_vote_hashes; pub mod unfrozen_gossip_verified_vote_hashes;
pub mod validator; pub mod validator;
pub mod verified_vote_packets; pub mod verified_vote_packets;
pub mod vote_simulator; pub mod vote_simulator;
pub mod vote_stake_tracker;
pub mod voting_service; pub mod voting_service;
pub mod warm_quic_cache_service; pub mod warm_quic_cache_service;
pub mod window_service; pub mod window_service;

View File

@ -1,7 +1,8 @@
use { use {
crate::{ crate::{
heaviest_subtree_fork_choice::HeaviestSubtreeForkChoice, repair_service::RepairService, consensus::{heaviest_subtree_fork_choice::HeaviestSubtreeForkChoice, tree_diff::TreeDiff},
serve_repair::ShredRepairType, tree_diff::TreeDiff, repair_service::RepairService,
serve_repair::ShredRepairType,
}, },
solana_ledger::{blockstore::Blockstore, blockstore_meta::SlotMeta}, solana_ledger::{blockstore::Blockstore, blockstore_meta::SlotMeta},
solana_sdk::{clock::Slot, hash::Hash}, solana_sdk::{clock::Slot, hash::Hash},

View File

@ -1,12 +1,11 @@
use { use {
crate::{ crate::{
heaviest_subtree_fork_choice::HeaviestSubtreeForkChoice, consensus::{heaviest_subtree_fork_choice::HeaviestSubtreeForkChoice, tree_diff::TreeDiff},
repair_generic_traversal::{get_closest_completion, get_unknown_last_index}, repair_generic_traversal::{get_closest_completion, get_unknown_last_index},
repair_service::{BestRepairsStats, RepairTiming}, repair_service::{BestRepairsStats, RepairTiming},
repair_weighted_traversal, repair_weighted_traversal,
replay_stage::DUPLICATE_THRESHOLD, replay_stage::DUPLICATE_THRESHOLD,
serve_repair::ShredRepairType, serve_repair::ShredRepairType,
tree_diff::TreeDiff,
}, },
solana_ledger::{ solana_ledger::{
ancestor_iterator::AncestorIterator, blockstore::Blockstore, blockstore_meta::SlotMeta, ancestor_iterator::AncestorIterator, blockstore::Blockstore, blockstore_meta::SlotMeta,

View File

@ -1,7 +1,8 @@
use { use {
crate::{ crate::{
heaviest_subtree_fork_choice::HeaviestSubtreeForkChoice, repair_service::RepairService, consensus::{heaviest_subtree_fork_choice::HeaviestSubtreeForkChoice, tree_diff::TreeDiff},
serve_repair::ShredRepairType, tree_diff::TreeDiff, repair_service::RepairService,
serve_repair::ShredRepairType,
}, },
solana_ledger::{blockstore::Blockstore, blockstore_meta::SlotMeta}, solana_ledger::{blockstore::Blockstore, blockstore_meta::SlotMeta},
solana_sdk::{clock::Slot, hash::Hash}, solana_sdk::{clock::Slot, hash::Hash},

View File

@ -12,20 +12,20 @@ use {
cluster_slots_service::{cluster_slots::ClusterSlots, ClusterSlotsUpdateSender}, cluster_slots_service::{cluster_slots::ClusterSlots, ClusterSlotsUpdateSender},
commitment_service::{AggregateCommitmentService, CommitmentAggregationData}, commitment_service::{AggregateCommitmentService, CommitmentAggregationData},
consensus::{ consensus::{
fork_choice::{ForkChoice, SelectVoteAndResetForkResult},
heaviest_subtree_fork_choice::HeaviestSubtreeForkChoice,
latest_validator_votes_for_frozen_banks::LatestValidatorVotesForFrozenBanks,
progress_map::{ForkProgress, ProgressMap, PropagatedStats, ReplaySlotStats},
tower_storage::{SavedTower, SavedTowerVersions, TowerStorage},
ComputedBankState, Stake, SwitchForkDecision, ThresholdDecision, Tower, VotedStakes, ComputedBankState, Stake, SwitchForkDecision, ThresholdDecision, Tower, VotedStakes,
SWITCH_FORK_THRESHOLD, SWITCH_FORK_THRESHOLD,
}, },
cost_update_service::CostUpdate, cost_update_service::CostUpdate,
duplicate_repair_status::AncestorDuplicateSlotsToRepair, duplicate_repair_status::AncestorDuplicateSlotsToRepair,
fork_choice::{ForkChoice, SelectVoteAndResetForkResult},
heaviest_subtree_fork_choice::HeaviestSubtreeForkChoice,
latest_validator_votes_for_frozen_banks::LatestValidatorVotesForFrozenBanks,
progress_map::{ForkProgress, ProgressMap, PropagatedStats, ReplaySlotStats},
repair_service::{ repair_service::{
AncestorDuplicateSlotsReceiver, DumpedSlotsSender, PopularPrunedForksReceiver, AncestorDuplicateSlotsReceiver, DumpedSlotsSender, PopularPrunedForksReceiver,
}, },
rewards_recorder_service::{RewardsMessage, RewardsRecorderSender}, rewards_recorder_service::{RewardsMessage, RewardsRecorderSender},
tower_storage::{SavedTower, SavedTowerVersions, TowerStorage},
unfrozen_gossip_verified_vote_hashes::UnfrozenGossipVerifiedVoteHashes, unfrozen_gossip_verified_vote_hashes::UnfrozenGossipVerifiedVoteHashes,
validator::ProcessBlockStore, validator::ProcessBlockStore,
voting_service::VoteOp, voting_service::VoteOp,
@ -3898,10 +3898,13 @@ pub(crate) mod tests {
use { use {
super::*, super::*,
crate::{ crate::{
consensus::Tower, consensus::{
progress_map::{ValidatorStakeInfo, RETRANSMIT_BASE_DELAY_MS}, progress_map::{ValidatorStakeInfo, RETRANSMIT_BASE_DELAY_MS},
tower_storage::NullTowerStorage,
tree_diff::TreeDiff,
Tower,
},
replay_stage::ReplayStage, replay_stage::ReplayStage,
tree_diff::TreeDiff,
vote_simulator::{self, VoteSimulator}, vote_simulator::{self, VoteSimulator},
}, },
crossbeam_channel::unbounded, crossbeam_channel::unbounded,
@ -7003,7 +7006,7 @@ pub(crate) mod tests {
vote_simulator, vote_simulator,
.. ..
} = replay_blockstore_components(None, 10, None::<GenerateVotes>); } = replay_blockstore_components(None, 10, None::<GenerateVotes>);
let tower_storage = crate::tower_storage::NullTowerStorage::default(); let tower_storage = NullTowerStorage::default();
let VoteSimulator { let VoteSimulator {
mut validator_keypairs, mut validator_keypairs,
@ -7350,7 +7353,7 @@ pub(crate) mod tests {
vote_simulator, vote_simulator,
.. ..
} = replay_blockstore_components(None, 10, None::<GenerateVotes>); } = replay_blockstore_components(None, 10, None::<GenerateVotes>);
let tower_storage = crate::tower_storage::NullTowerStorage::default(); let tower_storage = NullTowerStorage::default();
let VoteSimulator { let VoteSimulator {
mut validator_keypairs, mut validator_keypairs,

View File

@ -11,6 +11,7 @@ use {
}, },
cluster_slots_service::{cluster_slots::ClusterSlots, ClusterSlotsService}, cluster_slots_service::{cluster_slots::ClusterSlots, ClusterSlotsService},
completed_data_sets_service::CompletedDataSetsSender, completed_data_sets_service::CompletedDataSetsSender,
consensus::tower_storage::TowerStorage,
cost_update_service::CostUpdateService, cost_update_service::CostUpdateService,
drop_bank_service::DropBankService, drop_bank_service::DropBankService,
ledger_cleanup_service::LedgerCleanupService, ledger_cleanup_service::LedgerCleanupService,
@ -18,7 +19,6 @@ use {
replay_stage::{ReplayStage, ReplayStageConfig}, replay_stage::{ReplayStage, ReplayStageConfig},
rewards_recorder_service::RewardsRecorderSender, rewards_recorder_service::RewardsRecorderSender,
shred_fetch_stage::ShredFetchStage, shred_fetch_stage::ShredFetchStage,
tower_storage::TowerStorage,
validator::ProcessBlockStore, validator::ProcessBlockStore,
voting_service::VotingService, voting_service::VotingService,
warm_quic_cache_service::WarmQuicCacheService, warm_quic_cache_service::WarmQuicCacheService,
@ -369,7 +369,10 @@ impl Tvu {
pub mod tests { pub mod tests {
use { use {
super::*, super::*,
crate::validator::TURBINE_QUIC_CONNECTION_POOL_SIZE, crate::{
consensus::tower_storage::FileTowerStorage,
validator::TURBINE_QUIC_CONNECTION_POOL_SIZE,
},
serial_test::serial, serial_test::serial,
solana_gossip::cluster_info::{ClusterInfo, Node}, solana_gossip::cluster_info::{ClusterInfo, Node},
solana_ledger::{ solana_ledger::{
@ -470,7 +473,7 @@ pub mod tests {
)), )),
&poh_recorder, &poh_recorder,
None, None,
Arc::new(crate::tower_storage::FileTowerStorage::default()), Arc::new(FileTowerStorage::default()),
&leader_schedule_cache, &leader_schedule_cache,
exit.clone(), exit.clone(),
block_commitment_cache, block_commitment_cache,

View File

@ -1,5 +1,5 @@
use { use {
crate::latest_validator_votes_for_frozen_banks::LatestValidatorVotesForFrozenBanks, crate::consensus::latest_validator_votes_for_frozen_banks::LatestValidatorVotesForFrozenBanks,
solana_sdk::{clock::Slot, hash::Hash, pubkey::Pubkey}, solana_sdk::{clock::Slot, hash::Hash, pubkey::Pubkey},
std::collections::{BTreeMap, HashMap}, std::collections::{BTreeMap, HashMap},
}; };

View File

@ -9,7 +9,11 @@ use {
cache_block_meta_service::{CacheBlockMetaSender, CacheBlockMetaService}, cache_block_meta_service::{CacheBlockMetaSender, CacheBlockMetaService},
cluster_info_vote_listener::VoteTracker, cluster_info_vote_listener::VoteTracker,
completed_data_sets_service::CompletedDataSetsService, completed_data_sets_service::CompletedDataSetsService,
consensus::{reconcile_blockstore_roots_with_external_source, ExternalRootSource, Tower}, consensus::{
reconcile_blockstore_roots_with_external_source,
tower_storage::{NullTowerStorage, TowerStorage},
ExternalRootSource, Tower,
},
ledger_metric_report_service::LedgerMetricReportService, ledger_metric_report_service::LedgerMetricReportService,
poh_timing_report_service::PohTimingReportService, poh_timing_report_service::PohTimingReportService,
rewards_recorder_service::{RewardsRecorderSender, RewardsRecorderService}, rewards_recorder_service::{RewardsRecorderSender, RewardsRecorderService},
@ -22,7 +26,6 @@ use {
system_monitor_service::{ system_monitor_service::{
verify_net_stats_access, SystemMonitorService, SystemMonitorStatsReportConfig, verify_net_stats_access, SystemMonitorService, SystemMonitorStatsReportConfig,
}, },
tower_storage::TowerStorage,
tpu::{Tpu, TpuSockets, DEFAULT_TPU_COALESCE}, tpu::{Tpu, TpuSockets, DEFAULT_TPU_COALESCE},
tvu::{Tvu, TvuConfig, TvuSockets}, tvu::{Tvu, TvuConfig, TvuSockets},
}, },
@ -289,7 +292,7 @@ impl Default for ValidatorConfig {
wal_recovery_mode: None, wal_recovery_mode: None,
run_verification: true, run_verification: true,
require_tower: false, require_tower: false,
tower_storage: Arc::new(crate::tower_storage::NullTowerStorage::default()), tower_storage: Arc::new(NullTowerStorage::default()),
debug_keys: None, debug_keys: None,
contact_debug_interval: DEFAULT_CONTACT_DEBUG_INTERVAL_MILLIS, contact_debug_interval: DEFAULT_CONTACT_DEBUG_INTERVAL_MILLIS,
contact_save_interval: DEFAULT_CONTACT_SAVE_INTERVAL_MILLIS, contact_save_interval: DEFAULT_CONTACT_SAVE_INTERVAL_MILLIS,

View File

@ -5,11 +5,13 @@ use {
DuplicateSlotsTracker, EpochSlotsFrozenSlots, GossipDuplicateConfirmedSlots, DuplicateSlotsTracker, EpochSlotsFrozenSlots, GossipDuplicateConfirmedSlots,
}, },
cluster_slots_service::cluster_slots::ClusterSlots, cluster_slots_service::cluster_slots::ClusterSlots,
consensus::Tower, consensus::{
fork_choice::SelectVoteAndResetForkResult, fork_choice::SelectVoteAndResetForkResult,
heaviest_subtree_fork_choice::HeaviestSubtreeForkChoice, heaviest_subtree_fork_choice::HeaviestSubtreeForkChoice,
latest_validator_votes_for_frozen_banks::LatestValidatorVotesForFrozenBanks, latest_validator_votes_for_frozen_banks::LatestValidatorVotesForFrozenBanks,
progress_map::{ForkProgress, ProgressMap}, progress_map::{ForkProgress, ProgressMap},
Tower,
},
replay_stage::{HeaviestForkFailures, ReplayStage}, replay_stage::{HeaviestForkFailures, ReplayStage},
unfrozen_gossip_verified_vote_hashes::UnfrozenGossipVerifiedVoteHashes, unfrozen_gossip_verified_vote_hashes::UnfrozenGossipVerifiedVoteHashes,
}, },

View File

@ -1,7 +1,7 @@
use { use {
crate::{ crate::{
consensus::tower_storage::{SavedTowerVersions, TowerStorage},
next_leader::next_leader_tpu_vote, next_leader::next_leader_tpu_vote,
tower_storage::{SavedTowerVersions, TowerStorage},
}, },
crossbeam_channel::Receiver, crossbeam_channel::Receiver,
solana_gossip::cluster_info::ClusterInfo, solana_gossip::cluster_info::ClusterInfo,

View File

@ -8,7 +8,7 @@ use {
log::*, log::*,
solana_client::{connection_cache::ConnectionCache, thin_client::ThinClient}, solana_client::{connection_cache::ConnectionCache, thin_client::ThinClient},
solana_core::{ solana_core::{
tower_storage::FileTowerStorage, consensus::tower_storage::FileTowerStorage,
validator::{Validator, ValidatorConfig, ValidatorStartProgress}, validator::{Validator, ValidatorConfig, ValidatorStartProgress},
}, },
solana_gossip::{ solana_gossip::{

View File

@ -2,8 +2,7 @@
use { use {
log::*, log::*,
solana_core::{ solana_core::{
consensus::{Tower, SWITCH_FORK_THRESHOLD}, consensus::{tower_storage::FileTowerStorage, Tower, SWITCH_FORK_THRESHOLD},
tower_storage::FileTowerStorage,
validator::{is_snapshot_config_valid, ValidatorConfig}, validator::{is_snapshot_config_valid, ValidatorConfig},
}, },
solana_gossip::gossip_service::discover_cluster, solana_gossip::gossip_service::discover_cluster,

View File

@ -8,10 +8,11 @@ use {
serial_test::serial, serial_test::serial,
solana_client::thin_client::ThinClient, solana_client::thin_client::ThinClient,
solana_core::{ solana_core::{
consensus::{Tower, SWITCH_FORK_THRESHOLD, VOTE_THRESHOLD_DEPTH}, consensus::{
tower_storage::FileTowerStorage, Tower, SWITCH_FORK_THRESHOLD, VOTE_THRESHOLD_DEPTH,
},
optimistic_confirmation_verifier::OptimisticConfirmationVerifier, optimistic_confirmation_verifier::OptimisticConfirmationVerifier,
replay_stage::DUPLICATE_THRESHOLD, replay_stage::DUPLICATE_THRESHOLD,
tower_storage::FileTowerStorage,
validator::ValidatorConfig, validator::ValidatorConfig,
}, },
solana_download_utils::download_snapshot_archive, solana_download_utils::download_snapshot_archive,

View File

@ -7,7 +7,7 @@ use {
solana_client::rpc_request::MAX_MULTIPLE_ACCOUNTS, solana_client::rpc_request::MAX_MULTIPLE_ACCOUNTS,
solana_core::{ solana_core::{
admin_rpc_post_init::AdminRpcRequestMetadataPostInit, admin_rpc_post_init::AdminRpcRequestMetadataPostInit,
tower_storage::TowerStorage, consensus::tower_storage::TowerStorage,
validator::{Validator, ValidatorConfig, ValidatorStartProgress}, validator::{Validator, ValidatorConfig, ValidatorStartProgress},
}, },
solana_geyser_plugin_manager::{ solana_geyser_plugin_manager::{

View File

@ -10,8 +10,9 @@ use {
log::*, log::*,
serde::{de::Deserializer, Deserialize, Serialize}, serde::{de::Deserializer, Deserialize, Serialize},
solana_core::{ solana_core::{
admin_rpc_post_init::AdminRpcRequestMetadataPostInit, consensus::Tower, admin_rpc_post_init::AdminRpcRequestMetadataPostInit,
tower_storage::TowerStorage, validator::ValidatorStartProgress, consensus::{tower_storage::TowerStorage, Tower},
validator::ValidatorStartProgress,
}, },
solana_geyser_plugin_manager::GeyserPluginManagerRequest, solana_geyser_plugin_manager::GeyserPluginManagerRequest,
solana_gossip::contact_info::{ContactInfo, Protocol, SOCKET_ADDR_UNSPECIFIED}, solana_gossip::contact_info::{ContactInfo, Protocol, SOCKET_ADDR_UNSPECIFIED},
@ -864,7 +865,7 @@ mod tests {
super::*, super::*,
rand::{distributions::Uniform, thread_rng, Rng}, rand::{distributions::Uniform, thread_rng, Rng},
serde_json::Value, serde_json::Value,
solana_core::tower_storage::NullTowerStorage, solana_core::consensus::tower_storage::NullTowerStorage,
solana_gossip::cluster_info::ClusterInfo, solana_gossip::cluster_info::ClusterInfo,
solana_ledger::genesis_utils::{create_genesis_config, GenesisConfigInfo}, solana_ledger::genesis_utils::{create_genesis_config, GenesisConfigInfo},
solana_rpc::rpc::create_validator_exit, solana_rpc::rpc::create_validator_exit,

View File

@ -7,7 +7,7 @@ use {
input_parsers::{pubkey_of, pubkeys_of, value_of}, input_parsers::{pubkey_of, pubkeys_of, value_of},
input_validators::normalize_to_url_if_moniker, input_validators::normalize_to_url_if_moniker,
}, },
solana_core::tower_storage::FileTowerStorage, solana_core::consensus::tower_storage::FileTowerStorage,
solana_faucet::faucet::run_local_faucet_with_port, solana_faucet::faucet::run_local_faucet_with_port,
solana_rpc::{ solana_rpc::{
rpc::{JsonRpcConfig, RpcBigtableConfig}, rpc::{JsonRpcConfig, RpcBigtableConfig},

View File

@ -10,9 +10,9 @@ use {
solana_clap_utils::input_parsers::{keypair_of, keypairs_of, pubkey_of, value_of}, solana_clap_utils::input_parsers::{keypair_of, keypairs_of, pubkey_of, value_of},
solana_core::{ solana_core::{
banking_trace::DISABLED_BAKING_TRACE_DIR, banking_trace::DISABLED_BAKING_TRACE_DIR,
consensus::tower_storage,
ledger_cleanup_service::{DEFAULT_MAX_LEDGER_SHREDS, DEFAULT_MIN_MAX_LEDGER_SHREDS}, ledger_cleanup_service::{DEFAULT_MAX_LEDGER_SHREDS, DEFAULT_MIN_MAX_LEDGER_SHREDS},
system_monitor_service::SystemMonitorService, system_monitor_service::SystemMonitorService,
tower_storage,
tpu::DEFAULT_TPU_COALESCE, tpu::DEFAULT_TPU_COALESCE,
validator::{ validator::{
is_snapshot_config_valid, BlockProductionMethod, BlockVerificationMethod, Validator, is_snapshot_config_valid, BlockProductionMethod, BlockVerificationMethod, Validator,
@ -1078,7 +1078,7 @@ pub fn main() {
.ok() .ok()
.or_else(|| get_cluster_shred_version(&entrypoint_addrs)); .or_else(|| get_cluster_shred_version(&entrypoint_addrs));
let tower_storage: Arc<dyn solana_core::tower_storage::TowerStorage> = let tower_storage: Arc<dyn tower_storage::TowerStorage> =
match value_t_or_exit!(matches, "tower_storage", String).as_str() { match value_t_or_exit!(matches, "tower_storage", String).as_str() {
"file" => { "file" => {
let tower_path = value_t!(matches, "tower", PathBuf) let tower_path = value_t!(matches, "tower", PathBuf)