forked from LBRYCommunity/lbry-sdk
extract method and avoid using hash builtin name
This commit is contained in:
parent
74bf8c551b
commit
f8f73ed4a6
1 changed files with 10 additions and 8 deletions
|
@ -413,16 +413,18 @@ class BackgroundDownloaderComponent(Component):
|
||||||
while True:
|
while True:
|
||||||
self.space_available = await self.space_manager.get_free_space_mb(True)
|
self.space_available = await self.space_manager.get_free_space_mb(True)
|
||||||
if not self.is_busy and self.space_available > 10:
|
if not self.is_busy and self.space_available > 10:
|
||||||
node_id_prefix = int.from_bytes(self.dht_node.protocol.node_id[:4], "big")
|
self._download_next_close_blob_hash()
|
||||||
for hash in self.dht_node.stored_blob_hashes:
|
|
||||||
colliding_bits = 16 - int(node_id_prefix ^ int.from_bytes(hash[:4], "big")).bit_length()
|
|
||||||
if hash.hex() in self.blob_manager.completed_blob_hashes:
|
|
||||||
continue
|
|
||||||
if colliding_bits >= self.MIN_PREFIX_COLLIDING_BITS:
|
|
||||||
self.ongoing_download = asyncio.create_task(self.background_downloader.download_blobs(hash))
|
|
||||||
break
|
|
||||||
await asyncio.sleep(self.download_loop_delay_seconds)
|
await asyncio.sleep(self.download_loop_delay_seconds)
|
||||||
|
|
||||||
|
def _download_next_close_blob_hash(self):
|
||||||
|
node_id_prefix = int.from_bytes(self.dht_node.protocol.node_id[:4], "big")
|
||||||
|
for blob_hash in self.dht_node.stored_blob_hashes:
|
||||||
|
colliding_bits = 32 - int(node_id_prefix ^ int.from_bytes(blob_hash[:4], "big")).bit_length()
|
||||||
|
if blob_hash.hex() in self.blob_manager.completed_blob_hashes:
|
||||||
|
continue
|
||||||
|
if colliding_bits >= self.MIN_PREFIX_COLLIDING_BITS:
|
||||||
|
self.ongoing_download = asyncio.create_task(self.background_downloader.download_blobs(blob_hash.hex()))
|
||||||
|
|
||||||
async def start(self):
|
async def start(self):
|
||||||
self.space_manager: DiskSpaceManager = self.component_manager.get_component(DISK_SPACE_COMPONENT)
|
self.space_manager: DiskSpaceManager = self.component_manager.get_component(DISK_SPACE_COMPONENT)
|
||||||
if not self.component_manager.has_component(DHT_COMPONENT):
|
if not self.component_manager.has_component(DHT_COMPONENT):
|
||||||
|
|
Loading…
Reference in a new issue