commit 35a8812534df2ab2667824f7dc1a9a2b3bb1bd78
parent b36e9a64512000e77ea682c041389b6326b70032
Author: SomberNight <somber.night@protonmail.com>
Date: Fri, 6 Mar 2020 15:13:18 +0100
lnworker.reestablish_peer_for_given_channel: give each addr a chance
follow-up fa0ef9c5481861484b504dab5c7eb703c5edb49f
Diffstat:
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/electrum/lnworker.py b/electrum/lnworker.py
@@ -1336,7 +1336,15 @@ class LNWallet(LNWorker):
peer_addresses.append(LNPeerAddr(host, port, chan.node_id))
# will try addresses stored in channel storage
peer_addresses += list(chan.get_peer_addresses())
- # now select first one that has not failed recently
+ # Now select first one that has not failed recently.
+ # Use long retry interval to check. This ensures each address we gathered gets a chance.
+ for peer in peer_addresses:
+ last_tried = self._last_tried_peer.get(peer, 0)
+ if last_tried + PEER_RETRY_INTERVAL < now:
+ await self._add_peer(peer.host, peer.port, peer.pubkey)
+ return
+ # Still here? That means all addresses failed ~recently.
+ # Use short retry interval now.
for peer in peer_addresses:
last_tried = self._last_tried_peer.get(peer, 0)
if last_tried + PEER_RETRY_INTERVAL_FOR_CHANNELS < now: