refactor core to create consensus module (#32282)
This commit is contained in:
parent
9fb105c801
commit
87c1b67d53
|
@ -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::{
|
||||||
|
|
|
@ -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::*,
|
||||||
|
|
|
@ -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::{
|
||||||
|
|
|
@ -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::{
|
||||||
|
consensus::{
|
||||||
fork_choice::ForkChoice, heaviest_subtree_fork_choice::SlotHashKey,
|
fork_choice::ForkChoice, heaviest_subtree_fork_choice::SlotHashKey,
|
||||||
replay_stage::HeaviestForkFailures, tower_storage::FileTowerStorage,
|
tower_storage::FileTowerStorage,
|
||||||
|
},
|
||||||
|
replay_stage::HeaviestForkFailures,
|
||||||
vote_simulator::VoteSimulator,
|
vote_simulator::VoteSimulator,
|
||||||
},
|
},
|
||||||
itertools::Itertools,
|
itertools::Itertools,
|
||||||
|
|
|
@ -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},
|
|
@ -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},
|
|
@ -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},
|
||||||
};
|
};
|
|
@ -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::{
|
|
@ -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;
|
||||||
|
|
|
@ -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},
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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},
|
||||||
|
|
|
@ -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},
|
||||||
replay_stage::ReplayStage,
|
tower_storage::NullTowerStorage,
|
||||||
tree_diff::TreeDiff,
|
tree_diff::TreeDiff,
|
||||||
|
Tower,
|
||||||
|
},
|
||||||
|
replay_stage::ReplayStage,
|
||||||
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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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},
|
||||||
};
|
};
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
},
|
},
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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::{
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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::{
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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},
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue