From af6d7d501bc5675321236d175c1c54fea6ac98c7 Mon Sep 17 00:00:00 2001 From: teor Date: Thu, 2 Jun 2022 23:45:29 +1000 Subject: [PATCH] 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 --- zebra-network/src/constants.rs | 16 +++------------- zebra-network/src/peer_set/set/tests/vectors.rs | 12 ++++++------ 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/zebra-network/src/constants.rs b/zebra-network/src/constants.rs index 2e562315..09961a0a 100644 --- a/zebra-network/src/constants.rs +++ b/zebra-network/src/constants.rs @@ -281,23 +281,13 @@ lazy_static! { /// /// 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. pub static ref INITIAL_MIN_NETWORK_PROTOCOL_VERSION: HashMap = { 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, Canopy)); - - // 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.insert(Mainnet, Version::min_specified_for_upgrade(Mainnet, Nu5)); + hash_map.insert(Testnet, Version::min_specified_for_upgrade(Testnet, Nu5)); hash_map }; diff --git a/zebra-network/src/peer_set/set/tests/vectors.rs b/zebra-network/src/peer_set/set/tests/vectors.rs index 5e593988..ac64dc17 100644 --- a/zebra-network/src/peer_set/set/tests/vectors.rs +++ b/zebra-network/src/peer_set/set/tests/vectors.rs @@ -22,7 +22,7 @@ fn peer_set_ready_single_connection() { let peer_versions = PeerVersions { peer_versions: vec![Version::min_specified_for_upgrade( Network::Mainnet, - NetworkUpgrade::Canopy, + NetworkUpgrade::Nu5, )], }; @@ -114,7 +114,7 @@ fn peer_set_ready_single_connection() { #[test] fn peer_set_ready_multiple_connections() { // 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 { 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]); // 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 { 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); // 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 { 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); // 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 { 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); // 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 { peer_versions: vec![peer_version], };