mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-09-01 01:35:20 +00:00
lnworker: fix reestablish_peer_for_given_channel by passing chan explicitly
This commit is contained in:
parent
0f00f4f655
commit
d477e3489f
1 changed files with 22 additions and 20 deletions
|
@ -911,32 +911,34 @@ class LNWallet(LNWorker):
|
||||||
self.network.trigger_callback('channels', self.wallet)
|
self.network.trigger_callback('channels', self.wallet)
|
||||||
self.network.trigger_callback('wallet_updated', self.wallet)
|
self.network.trigger_callback('wallet_updated', self.wallet)
|
||||||
|
|
||||||
async def reestablish_peers_and_channels(self):
|
async def reestablish_peer_for_given_channel(self, chan):
|
||||||
async def reestablish_peer_for_given_channel():
|
now = time.time()
|
||||||
# try last good address first
|
# try last good address first
|
||||||
peer = self.channel_db.get_last_good_address(chan.node_id)
|
peer = self.channel_db.get_last_good_address(chan.node_id)
|
||||||
if peer:
|
if peer:
|
||||||
last_tried = self._last_tried_peer.get(peer, 0)
|
|
||||||
if last_tried + PEER_RETRY_INTERVAL_FOR_CHANNELS < now:
|
|
||||||
await self._add_peer(peer.host, peer.port, peer.pubkey)
|
|
||||||
return
|
|
||||||
# try random address for node_id
|
|
||||||
node_info = self.channel_db.nodes_get(chan.node_id)
|
|
||||||
if not node_info: return
|
|
||||||
addresses = self.channel_db.get_node_addresses(node_info)
|
|
||||||
if not addresses: return
|
|
||||||
adr_obj = random.choice(addresses)
|
|
||||||
host, port = adr_obj.host, adr_obj.port
|
|
||||||
peer = LNPeerAddr(host, port, chan.node_id)
|
|
||||||
last_tried = self._last_tried_peer.get(peer, 0)
|
last_tried = self._last_tried_peer.get(peer, 0)
|
||||||
if last_tried + PEER_RETRY_INTERVAL_FOR_CHANNELS < now:
|
if last_tried + PEER_RETRY_INTERVAL_FOR_CHANNELS < now:
|
||||||
await self._add_peer(host, port, chan.node_id)
|
await self._add_peer(peer.host, peer.port, peer.pubkey)
|
||||||
|
return
|
||||||
|
# try random address for node_id
|
||||||
|
node_info = self.channel_db.nodes_get(chan.node_id)
|
||||||
|
if not node_info:
|
||||||
|
return
|
||||||
|
addresses = self.channel_db.get_node_addresses(node_info)
|
||||||
|
if not addresses:
|
||||||
|
return
|
||||||
|
adr_obj = random.choice(addresses)
|
||||||
|
host, port = adr_obj.host, adr_obj.port
|
||||||
|
peer = LNPeerAddr(host, port, chan.node_id)
|
||||||
|
last_tried = self._last_tried_peer.get(peer, 0)
|
||||||
|
if last_tried + PEER_RETRY_INTERVAL_FOR_CHANNELS < now:
|
||||||
|
await self._add_peer(host, port, chan.node_id)
|
||||||
|
|
||||||
|
async def reestablish_peers_and_channels(self):
|
||||||
while True:
|
while True:
|
||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
with self.lock:
|
with self.lock:
|
||||||
channels = list(self.channels.values())
|
channels = list(self.channels.values())
|
||||||
now = time.time()
|
|
||||||
for chan in channels:
|
for chan in channels:
|
||||||
if chan.is_closed():
|
if chan.is_closed():
|
||||||
continue
|
continue
|
||||||
|
@ -948,7 +950,7 @@ class LNWallet(LNWorker):
|
||||||
if not chan.should_try_to_reestablish_peer():
|
if not chan.should_try_to_reestablish_peer():
|
||||||
continue
|
continue
|
||||||
peer = self.peers.get(chan.node_id, None)
|
peer = self.peers.get(chan.node_id, None)
|
||||||
coro = peer.reestablish_channel(chan) if peer else reestablish_peer_for_given_channel()
|
coro = peer.reestablish_channel(chan) if peer else self.reestablish_peer_for_given_channel(chan)
|
||||||
await self.network.main_taskgroup.spawn(coro)
|
await self.network.main_taskgroup.spawn(coro)
|
||||||
|
|
||||||
def current_feerate_per_kw(self):
|
def current_feerate_per_kw(self):
|
||||||
|
|
Loading…
Add table
Reference in a new issue