1
0

Merge pull request #10285 from f321x/lnpeer_dont_send_gossip_before_init

lnpeer: await init in main_loop
This commit is contained in:
ghost43
2025-10-28 15:33:41 +00:00
committed by GitHub

View File

@@ -523,7 +523,11 @@ class Peer(Logger, EventListener):
@handle_disconnect
async def main_loop(self):
async with self.taskgroup as group:
await group.spawn(self._message_loop())
await group.spawn(self._message_loop()) # initializes connection
try:
await util.wait_for2(self.initialized, LN_P2P_NETWORK_TIMEOUT)
except Exception as e:
raise GracefulDisconnect(f"Failed to initialize: {e!r}") from e
await group.spawn(self._query_gossip())
await group.spawn(self._process_gossip())
await group.spawn(self._send_own_gossip())
@@ -563,6 +567,7 @@ class Peer(Logger, EventListener):
async def _send_own_gossip(self):
if self.lnworker == self.lnworker.network.lngossip:
return
assert self.is_initialized()
await asyncio.sleep(10)
while True:
public_channels = [chan for chan in self.lnworker.channels.values() if chan.is_public()]
@@ -583,6 +588,7 @@ class Peer(Logger, EventListener):
return False
async def _forward_gossip(self):
assert self.is_initialized()
if not self._should_forward_gossip():
return
@@ -632,10 +638,7 @@ class Peer(Logger, EventListener):
return amount_sent
async def _query_gossip(self):
try:
await util.wait_for2(self.initialized, LN_P2P_NETWORK_TIMEOUT)
except Exception as e:
raise GracefulDisconnect(f"Failed to initialize: {e!r}") from e
assert self.is_initialized()
if self.lnworker == self.lnworker.network.lngossip:
if not self.their_features.supports(LnFeatures.GOSSIP_QUERIES_OPT):
raise GracefulDisconnect("remote does not support gossip_queries, which we need")