change(net): immediately disconnect from pre-NU5 nodes (#4538)
* Automatically disconnect from pre-NU5 nodes * change peer_set::set::tests::vectors tests to use NU5 since it's now the minimum required for peers Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
This commit is contained in:
parent
1230fd41f1
commit
af6d7d501b
|
|
@ -281,23 +281,13 @@ lazy_static! {
|
||||||
///
|
///
|
||||||
/// If peer versions are too old, we will disconnect from them.
|
/// If peer versions are too old, we will disconnect from them.
|
||||||
///
|
///
|
||||||
/// The minimum network protocol version typically changes after Mainnet and/or
|
/// The minimum network protocol version typically changes after Mainnet and
|
||||||
/// Testnet network upgrades.
|
/// Testnet network upgrades.
|
||||||
pub static ref INITIAL_MIN_NETWORK_PROTOCOL_VERSION: HashMap<Network, Version> = {
|
pub static ref INITIAL_MIN_NETWORK_PROTOCOL_VERSION: HashMap<Network, Version> = {
|
||||||
let mut hash_map = HashMap::new();
|
let mut hash_map = HashMap::new();
|
||||||
|
|
||||||
// TODO: update to Nu5 when there are enough Nu5 mainnet nodes deployed (#4117)
|
hash_map.insert(Mainnet, Version::min_specified_for_upgrade(Mainnet, Nu5));
|
||||||
hash_map.insert(Mainnet, Version::min_specified_for_upgrade(Mainnet, Canopy));
|
hash_map.insert(Testnet, Version::min_specified_for_upgrade(Testnet, Nu5));
|
||||||
|
|
||||||
// This is the `zcashd` network protocol version:
|
|
||||||
// - after the first NU5 testnet activation, and
|
|
||||||
// - after updating to the second NU5 testnet activation consensus rules,
|
|
||||||
// - but before setting the second NU5 testnet activation height.
|
|
||||||
//
|
|
||||||
// TODO: update to:
|
|
||||||
// Version::min_specified_for_upgrade(Mainnet, Nu5)
|
|
||||||
// when there are enough Nu5 testnet nodes deployed (#4116)
|
|
||||||
hash_map.insert(Testnet, Version(170_040));
|
|
||||||
|
|
||||||
hash_map
|
hash_map
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ fn peer_set_ready_single_connection() {
|
||||||
let peer_versions = PeerVersions {
|
let peer_versions = PeerVersions {
|
||||||
peer_versions: vec![Version::min_specified_for_upgrade(
|
peer_versions: vec![Version::min_specified_for_upgrade(
|
||||||
Network::Mainnet,
|
Network::Mainnet,
|
||||||
NetworkUpgrade::Canopy,
|
NetworkUpgrade::Nu5,
|
||||||
)],
|
)],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -114,7 +114,7 @@ fn peer_set_ready_single_connection() {
|
||||||
#[test]
|
#[test]
|
||||||
fn peer_set_ready_multiple_connections() {
|
fn peer_set_ready_multiple_connections() {
|
||||||
// Use three peers with the same version
|
// Use three peers with the same version
|
||||||
let peer_version = Version::min_specified_for_upgrade(Network::Mainnet, NetworkUpgrade::Canopy);
|
let peer_version = Version::min_specified_for_upgrade(Network::Mainnet, NetworkUpgrade::Nu5);
|
||||||
let peer_versions = PeerVersions {
|
let peer_versions = PeerVersions {
|
||||||
peer_versions: vec![peer_version, peer_version, peer_version],
|
peer_versions: vec![peer_version, peer_version, peer_version],
|
||||||
};
|
};
|
||||||
|
|
@ -178,7 +178,7 @@ fn peer_set_route_inv_empty_registry() {
|
||||||
let test_hash = block::Hash([0; 32]);
|
let test_hash = block::Hash([0; 32]);
|
||||||
|
|
||||||
// Use two peers with the same version
|
// Use two peers with the same version
|
||||||
let peer_version = Version::min_specified_for_upgrade(Network::Mainnet, NetworkUpgrade::Canopy);
|
let peer_version = Version::min_specified_for_upgrade(Network::Mainnet, NetworkUpgrade::Nu5);
|
||||||
let peer_versions = PeerVersions {
|
let peer_versions = PeerVersions {
|
||||||
peer_versions: vec![peer_version, peer_version],
|
peer_versions: vec![peer_version, peer_version],
|
||||||
};
|
};
|
||||||
|
|
@ -260,7 +260,7 @@ fn peer_set_route_inv_advertised_registry_order(advertised_first: bool) {
|
||||||
let test_change = InventoryStatus::new_available(test_inv, test_peer);
|
let test_change = InventoryStatus::new_available(test_inv, test_peer);
|
||||||
|
|
||||||
// Use two peers with the same version
|
// Use two peers with the same version
|
||||||
let peer_version = Version::min_specified_for_upgrade(Network::Mainnet, NetworkUpgrade::Canopy);
|
let peer_version = Version::min_specified_for_upgrade(Network::Mainnet, NetworkUpgrade::Nu5);
|
||||||
let peer_versions = PeerVersions {
|
let peer_versions = PeerVersions {
|
||||||
peer_versions: vec![peer_version, peer_version],
|
peer_versions: vec![peer_version, peer_version],
|
||||||
};
|
};
|
||||||
|
|
@ -369,7 +369,7 @@ fn peer_set_route_inv_missing_registry_order(missing_first: bool) {
|
||||||
let test_change = InventoryStatus::new_missing(test_inv, test_peer);
|
let test_change = InventoryStatus::new_missing(test_inv, test_peer);
|
||||||
|
|
||||||
// Use two peers with the same version
|
// Use two peers with the same version
|
||||||
let peer_version = Version::min_specified_for_upgrade(Network::Mainnet, NetworkUpgrade::Canopy);
|
let peer_version = Version::min_specified_for_upgrade(Network::Mainnet, NetworkUpgrade::Nu5);
|
||||||
let peer_versions = PeerVersions {
|
let peer_versions = PeerVersions {
|
||||||
peer_versions: vec![peer_version, peer_version],
|
peer_versions: vec![peer_version, peer_version],
|
||||||
};
|
};
|
||||||
|
|
@ -472,7 +472,7 @@ fn peer_set_route_inv_all_missing_fail() {
|
||||||
let test_change = InventoryStatus::new_missing(test_inv, test_peer);
|
let test_change = InventoryStatus::new_missing(test_inv, test_peer);
|
||||||
|
|
||||||
// Use one peer
|
// Use one peer
|
||||||
let peer_version = Version::min_specified_for_upgrade(Network::Mainnet, NetworkUpgrade::Canopy);
|
let peer_version = Version::min_specified_for_upgrade(Network::Mainnet, NetworkUpgrade::Nu5);
|
||||||
let peer_versions = PeerVersions {
|
let peer_versions = PeerVersions {
|
||||||
peer_versions: vec![peer_version],
|
peer_versions: vec![peer_version],
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue