validator: Activate RPC before halting on slot (#13002)
(cherry picked from commit 3b3f7341fa
)
Co-authored-by: Trent Nelson <trent@solana.com>
This commit is contained in:
@ -368,19 +368,6 @@ impl Validator {
|
|||||||
leader_schedule_cache.slot_leader_at(bank.slot(), Some(&bank))
|
leader_schedule_cache.slot_leader_at(bank.slot(), Some(&bank))
|
||||||
);
|
);
|
||||||
|
|
||||||
if config.dev_halt_at_slot.is_some() {
|
|
||||||
// Simulate a confirmed root to avoid RPC errors with CommitmentConfig::max() and
|
|
||||||
// to ensure RPC endpoints like getConfirmedBlock, which require a confirmed root, work
|
|
||||||
block_commitment_cache
|
|
||||||
.write()
|
|
||||||
.unwrap()
|
|
||||||
.set_highest_confirmed_root(bank_forks.read().unwrap().root());
|
|
||||||
|
|
||||||
// Park with the RPC service running, ready for inspection!
|
|
||||||
warn!("Validator halted");
|
|
||||||
std::thread::park();
|
|
||||||
}
|
|
||||||
|
|
||||||
let poh_config = Arc::new(genesis_config.poh_config.clone());
|
let poh_config = Arc::new(genesis_config.poh_config.clone());
|
||||||
let (mut poh_recorder, entry_receiver) = PohRecorder::new_with_clear_signal(
|
let (mut poh_recorder, entry_receiver) = PohRecorder::new_with_clear_signal(
|
||||||
bank.tick_height(),
|
bank.tick_height(),
|
||||||
@ -464,6 +451,19 @@ impl Validator {
|
|||||||
(None, None)
|
(None, None)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if config.dev_halt_at_slot.is_some() {
|
||||||
|
// Simulate a confirmed root to avoid RPC errors with CommitmentConfig::max() and
|
||||||
|
// to ensure RPC endpoints like getConfirmedBlock, which require a confirmed root, work
|
||||||
|
block_commitment_cache
|
||||||
|
.write()
|
||||||
|
.unwrap()
|
||||||
|
.set_highest_confirmed_root(bank_forks.read().unwrap().root());
|
||||||
|
|
||||||
|
// Park with the RPC service running, ready for inspection!
|
||||||
|
warn!("Validator halted");
|
||||||
|
std::thread::park();
|
||||||
|
}
|
||||||
|
|
||||||
let ip_echo_server = solana_net_utils::ip_echo_server(node.sockets.ip_echo.unwrap());
|
let ip_echo_server = solana_net_utils::ip_echo_server(node.sockets.ip_echo.unwrap());
|
||||||
|
|
||||||
let gossip_service = GossipService::new(
|
let gossip_service = GossipService::new(
|
||||||
|
Reference in New Issue
Block a user