Reduce Fullnode public API surface

This commit is contained in:
Michael Vines
2019-02-06 19:47:55 -08:00
committed by Grimes
parent acc6bf1564
commit abb9a72b27
3 changed files with 42 additions and 51 deletions

View File

@ -101,7 +101,7 @@ pub struct Fullnode {
sigverify_disabled: bool,
tpu_sockets: Vec<UdpSocket>,
broadcast_socket: UdpSocket,
pub node_services: NodeServices,
node_services: NodeServices,
pub role_notifiers: (TvuRotationReceiver, TpuRotationReceiver),
blob_sender: BlobSender,
}
@ -125,7 +125,7 @@ impl Fullnode {
db_ledger,
ledger_signal_sender,
ledger_signal_receiver,
) = Self::new_bank_from_ledger(ledger_path, &config.leader_scheduler_config);
) = new_bank_from_ledger(ledger_path, &config.leader_scheduler_config);
info!("node info: {:?}", node.info);
info!("node entrypoint_info: {:?}", entrypoint_info_option);
@ -300,7 +300,7 @@ impl Fullnode {
}
}
pub fn leader_to_validator(&mut self, tick_height: u64) -> FullnodeReturnType {
fn leader_to_validator(&mut self, tick_height: u64) -> FullnodeReturnType {
trace!(
"leader_to_validator({:?}): tick_height={}",
self.id,
@ -341,12 +341,7 @@ impl Fullnode {
}
}
pub fn validator_to_leader(
&mut self,
tick_height: u64,
entry_height: u64,
last_entry_id: Hash,
) {
fn validator_to_leader(&mut self, tick_height: u64, entry_height: u64, last_entry_id: Hash) {
trace!(
"validator_to_leader({:?}): tick_height={} entry_height={} last_entry_id={}",
self.id,
@ -468,7 +463,7 @@ impl Fullnode {
}
// Used for notifying many nodes in parallel to exit
pub fn exit(&self) {
fn exit(&self) {
self.exit.store(true, Ordering::Relaxed);
if let Some(ref rpc_service) = self.rpc_service {
rpc_service.exit();
@ -483,39 +478,38 @@ impl Fullnode {
self.exit();
self.join()
}
}
pub fn new_bank_from_ledger(
ledger_path: &str,
leader_scheduler_config: &LeaderSchedulerConfig,
) -> (Bank, u64, Hash, DbLedger, SyncSender<bool>, Receiver<bool>) {
let (db_ledger, ledger_signal_sender, ledger_signal_receiver) =
DbLedger::open_with_signal(ledger_path)
.expect("Expected to successfully open database ledger");
let genesis_block =
GenesisBlock::load(ledger_path).expect("Expected to successfully open genesis block");
let mut bank =
Bank::new_with_leader_scheduler_config(&genesis_block, leader_scheduler_config);
pub fn new_bank_from_ledger(
ledger_path: &str,
leader_scheduler_config: &LeaderSchedulerConfig,
) -> (Bank, u64, Hash, DbLedger, SyncSender<bool>, Receiver<bool>) {
let (db_ledger, ledger_signal_sender, ledger_signal_receiver) =
DbLedger::open_with_signal(ledger_path)
.expect("Expected to successfully open database ledger");
let genesis_block =
GenesisBlock::load(ledger_path).expect("Expected to successfully open genesis block");
let mut bank = Bank::new_with_leader_scheduler_config(&genesis_block, leader_scheduler_config);
let now = Instant::now();
let entries = db_ledger.read_ledger().expect("opening ledger");
info!("processing ledger...");
let (entry_height, last_entry_id) = bank.process_ledger(entries).expect("process_ledger");
info!(
"processed {} ledger entries in {}ms, tick_height={}...",
entry_height,
duration_as_ms(&now.elapsed()),
bank.tick_height()
);
let now = Instant::now();
let entries = db_ledger.read_ledger().expect("opening ledger");
info!("processing ledger...");
let (entry_height, last_entry_id) = bank.process_ledger(entries).expect("process_ledger");
info!(
"processed {} ledger entries in {}ms, tick_height={}...",
entry_height,
duration_as_ms(&now.elapsed()),
bank.tick_height()
);
(
bank,
entry_height,
last_entry_id,
db_ledger,
ledger_signal_sender,
ledger_signal_receiver,
)
}
(
bank,
entry_height,
last_entry_id,
db_ledger,
ledger_signal_sender,
ledger_signal_receiver,
)
}
impl Service for Fullnode {
@ -835,10 +829,8 @@ mod tests {
// Close the validator so that rocksdb has locks available
validator_exit();
let (bank, entry_height, _, _, _, _) = Fullnode::new_bank_from_ledger(
&validator_ledger_path,
&LeaderSchedulerConfig::default(),
);
let (bank, entry_height, _, _, _, _) =
new_bank_from_ledger(&validator_ledger_path, &LeaderSchedulerConfig::default());
assert!(
bank.tick_height()