diff --git a/lbry/wallet/server/daemon.py b/lbry/wallet/server/daemon.py index 654b4337e..c6f4db3d2 100644 --- a/lbry/wallet/server/daemon.py +++ b/lbry/wallet/server/daemon.py @@ -55,7 +55,7 @@ class Daemon: self.available_rpcs = {} self.connector = aiohttp.TCPConnector() self._block_hash_cache = LRUCache(100000) - self._block_cache = LRUCache(10000) + self._block_cache = LRUCache(2**16, metric_name='block', namespace=NAMESPACE) async def close(self): if self.connector: @@ -249,8 +249,10 @@ class Daemon: async def deserialised_block(self, hex_hash): """Return the deserialised block with the given hex hash.""" - if not self._block_cache.get(hex_hash): - self._block_cache[hex_hash] = await self._send_single('getblock', (hex_hash, True)) + if hex_hash not in self._block_cache: + block = await self._send_single('getblock', (hex_hash, True)) + self._block_cache[hex_hash] = block + return block return self._block_cache[hex_hash] async def raw_blocks(self, hex_hashes): diff --git a/lbry/wallet/server/db/reader.py b/lbry/wallet/server/db/reader.py index a3736750c..dc61dafe0 100644 --- a/lbry/wallet/server/db/reader.py +++ b/lbry/wallet/server/db/reader.py @@ -283,7 +283,7 @@ def claims_query(cols, for_count=False, **constraints) -> Tuple[str, Dict]: channel_ids = constraints.pop('channel_ids') if channel_ids: constraints['claim.channel_hash__in'] = { - unhexlify(cid)[::-1] for cid in channel_ids + unhexlify(cid)[::-1] for cid in channel_ids if cid } if 'not_channel_ids' in constraints: not_channel_ids = constraints.pop('not_channel_ids')