mirror of
https://github.com/LBRYFoundation/lbry-sdk.git
synced 2025-08-23 17:27:25 +00:00
optimize header check
This commit is contained in:
parent
0f1bde2274
commit
f96443515a
1 changed files with 20 additions and 17 deletions
|
@ -170,14 +170,17 @@ class BaseHeaders:
|
||||||
|
|
||||||
async def repair(self):
|
async def repair(self):
|
||||||
previous_header_hash = fail = None
|
previous_header_hash = fail = None
|
||||||
for height in range(self.height):
|
self.io.seek(0)
|
||||||
raw = self.get_raw_header(height)
|
batch_size = 10000
|
||||||
header = self.deserialize(height, raw)
|
for start_height in range(0, self.height, batch_size):
|
||||||
|
headers = self.io.read(self.header_size*batch_size)
|
||||||
|
for header_hash, header in self._iterate_headers(start_height, headers):
|
||||||
|
height = header['block_height']
|
||||||
if height:
|
if height:
|
||||||
if header['prev_block_hash'] != previous_header_hash:
|
if header['prev_block_hash'] != previous_header_hash:
|
||||||
fail = True
|
fail = True
|
||||||
else:
|
else:
|
||||||
if self.hash_header(raw) != self.genesis_hash:
|
if header_hash != self.genesis_hash:
|
||||||
fail = True
|
fail = True
|
||||||
if fail:
|
if fail:
|
||||||
log.warning("Header file corrupted at height %s, truncating it.", height - 1)
|
log.warning("Header file corrupted at height %s, truncating it.", height - 1)
|
||||||
|
@ -186,7 +189,7 @@ class BaseHeaders:
|
||||||
self.io.flush()
|
self.io.flush()
|
||||||
self._size = None
|
self._size = None
|
||||||
return
|
return
|
||||||
previous_header_hash = self.hash_header(raw)
|
previous_header_hash = header_hash
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_proof_of_work(header_hash: bytes) -> ArithUint256:
|
def get_proof_of_work(header_hash: bytes) -> ArithUint256:
|
||||||
|
|
Loading…
Add table
Reference in a new issue