|
@ -155,10 +155,11 @@ class LNWorker(Logger): |
|
|
peer = Peer(self, node_id, transport) |
|
|
peer = Peer(self, node_id, transport) |
|
|
await self.network.main_taskgroup.spawn(peer.main_loop()) |
|
|
await self.network.main_taskgroup.spawn(peer.main_loop()) |
|
|
self.peers[node_id] = peer |
|
|
self.peers[node_id] = peer |
|
|
#if self.network.lngossip: |
|
|
|
|
|
# self.network.lngossip.refresh_gui() |
|
|
|
|
|
return peer |
|
|
return peer |
|
|
|
|
|
|
|
|
|
|
|
def num_peers(self): |
|
|
|
|
|
return sum([p.initialized.is_set() for p in self.peers.values()]) |
|
|
|
|
|
|
|
|
def start_network(self, network: 'Network'): |
|
|
def start_network(self, network: 'Network'): |
|
|
self.network = network |
|
|
self.network = network |
|
|
self.config = network.config |
|
|
self.config = network.config |
|
@ -279,28 +280,20 @@ class LNGossip(LNWorker): |
|
|
super().start_network(network) |
|
|
super().start_network(network) |
|
|
asyncio.run_coroutine_threadsafe(self.network.main_taskgroup.spawn(self.maintain_db()), self.network.asyncio_loop) |
|
|
asyncio.run_coroutine_threadsafe(self.network.main_taskgroup.spawn(self.maintain_db()), self.network.asyncio_loop) |
|
|
|
|
|
|
|
|
def refresh_gui(self): |
|
|
|
|
|
# refresh gui |
|
|
|
|
|
known = self.channel_db.num_channels |
|
|
|
|
|
unknown = len(self.unknown_ids) |
|
|
|
|
|
num_nodes = self.channel_db.num_nodes |
|
|
|
|
|
num_peers = sum([p.initialized.is_set() for p in self.peers.values()]) |
|
|
|
|
|
self.logger.info(f'Channels: {known}. Missing: {unknown}') |
|
|
|
|
|
self.network.trigger_callback('ln_status', num_peers, num_nodes, known, unknown) |
|
|
|
|
|
|
|
|
|
|
|
async def maintain_db(self): |
|
|
async def maintain_db(self): |
|
|
await self.channel_db.load_data() |
|
|
await self.channel_db.load_data() |
|
|
while True: |
|
|
while True: |
|
|
if len(self.unknown_ids) == 0: |
|
|
if len(self.unknown_ids) == 0: |
|
|
self.channel_db.prune_old_policies(self.max_age) |
|
|
self.channel_db.prune_old_policies(self.max_age) |
|
|
self.channel_db.prune_orphaned_channels() |
|
|
self.channel_db.prune_orphaned_channels() |
|
|
self.refresh_gui() |
|
|
|
|
|
await asyncio.sleep(120) |
|
|
await asyncio.sleep(120) |
|
|
|
|
|
|
|
|
async def add_new_ids(self, ids): |
|
|
async def add_new_ids(self, ids): |
|
|
known = self.channel_db.get_channel_ids() |
|
|
known = self.channel_db.get_channel_ids() |
|
|
new = set(ids) - set(known) |
|
|
new = set(ids) - set(known) |
|
|
self.unknown_ids.update(new) |
|
|
self.unknown_ids.update(new) |
|
|
|
|
|
self.network.trigger_callback('unknown_channels', len(self.unknown_ids)) |
|
|
|
|
|
self.network.trigger_callback('gossip_peers', self.num_peers()) |
|
|
|
|
|
|
|
|
def get_ids_to_query(self): |
|
|
def get_ids_to_query(self): |
|
|
N = 500 |
|
|
N = 500 |
|
|