adds shred-version to ip-echo-server response
When starting a validator, the node initially joins gossip with shred_verison = 0, until it adopts the entrypoint's shred-version: https://github.com/solana-labs/solana/blob/9b182f408/validator/src/main.rs#L417 Depending on the load on the entrypoint, this adopting entrypoint shred-version through gossip sometimes becomes very slow, and causes several problems in gossip because we have to partially support shred_version == 0 which is a source of leaking crds values from one cluster to another. e.g. see https://github.com/solana-labs/solana/pull/17899 and the other linked issues there. In order to remove shred_version == 0 from gossip, this commit adds shred-version to ip-echo-server response. Once the entrypoints are updated, on validator start-up, if --expected_shred_version is not specified we will obtain shred-version from the entrypoint using ip-echo-server.
This commit is contained in:
@ -573,9 +573,13 @@ impl Validator {
|
||||
*start_progress.write().unwrap() = ValidatorStartProgress::Halted;
|
||||
std::thread::park();
|
||||
}
|
||||
|
||||
let ip_echo_server = node.sockets.ip_echo.map(solana_net_utils::ip_echo_server);
|
||||
|
||||
let ip_echo_server = match node.sockets.ip_echo {
|
||||
None => None,
|
||||
Some(tcp_listener) => Some(solana_net_utils::ip_echo_server(
|
||||
tcp_listener,
|
||||
Some(node.info.shred_version),
|
||||
)),
|
||||
};
|
||||
let gossip_service = GossipService::new(
|
||||
&cluster_info,
|
||||
Some(bank_forks.clone()),
|
||||
|
Reference in New Issue
Block a user