From 4106ecfa4261ed3ac0d2500c9ccb9acd1ba32c30 Mon Sep 17 00:00:00 2001 From: Erik van den Brink Date: Mon, 30 Sep 2019 08:55:57 +0200 Subject: [PATCH] update network recovery logic (#1024) --- CHANGELOG.rst | 2 +- neo/Network/nodemanager.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 99c2e85e1..3cf074e57 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,7 +6,7 @@ All notable changes to this project are documented in this file. [0.9.2] In progress ------------------- - Fix shutdown operations when initializing np-api-server and setting minpeers/maxpeers, opening a wallet, or changing databases - +- Minor improvement to network recovery logic when running out of good node addresses [0.9.1] 2019-09-16 ------------------ diff --git a/neo/Network/nodemanager.py b/neo/Network/nodemanager.py index e8f4aa5e3..60903bcbf 100644 --- a/neo/Network/nodemanager.py +++ b/neo/Network/nodemanager.py @@ -2,6 +2,7 @@ import socket import traceback import errno +import random from contextlib import suppress from datetime import datetime from functools import partial @@ -140,6 +141,7 @@ def check_open_spots_and_queue_nodes(self) -> None: # we have no other option then to retry any address we know logger.debug("Recycling old addresses") self.known_addresses = self.bad_addresses + random.shuffle(self.known_addresses) self.bad_addresses = [] self.MAX_NODE_POOL_ERROR_COUNT = 0