diff --git a/electrumx/server/peers.py b/electrumx/server/peers.py index 6b09f36..198c2f9 100644 --- a/electrumx/server/peers.py +++ b/electrumx/server/peers.py @@ -138,16 +138,20 @@ class PeerManager(object): url = self.env.blacklist_url if not url: return + + async def read_blacklist(): + async with aiohttp.ClientSession() as session: + async with session.get(url) as response: + text = await response.text() + return set(entry.lower() for entry in json.loads(text)) + while True: - session = aiohttp.ClientSession() try: - async with session.get(url) as response: - r = await response.text() - self.blacklist = set([entry.lower() for entry in json.loads(r)]) - self.logger.info(f'blacklist from {url} has {len(self.blacklist)} entries') + self.blacklist = await read_blacklist() except Exception as e: self.logger.error(f'could not retrieve blacklist from {url}: {e}') else: + self.logger.info(f'blacklist from {url} has {len(self.blacklist)} entries') # Got new blacklist. Now check our current peers against it for peer in self.peers: if self._is_blacklisted(peer):