Browse Source

Remove old reorg forcing code

master
Neil Booth 8 years ago
parent
commit
1b589d3d1f
  1. 21
      server/block_processor.py

21
server/block_processor.py

@ -358,11 +358,8 @@ class BlockProcessor(LoggedClass):
self.clean_db()
def coros(self, force_backup=False):
if force_backup:
return [self.force_chain_reorg(True), self.prefetcher.start()]
else:
return [self.start(), self.prefetcher.start()]
def coros(self):
return [self.start(), self.prefetcher.start()]
async def start(self):
'''External entry point for block processing.
@ -406,19 +403,13 @@ class BlockProcessor(LoggedClass):
await self.on_update(self.height, self.touched)
self.touched = set()
async def force_chain_reorg(self, to_genesis):
try:
await self.handle_chain_reorg(to_genesis)
finally:
self.flush(True)
async def handle_chain_reorg(self, to_genesis=False):
async def handle_chain_reorg(self):
# First get all state on disk
self.logger.info('chain reorg detected')
self.flush(True)
self.logger.info('finding common height...')
hashes = await self.reorg_hashes(to_genesis)
hashes = await self.reorg_hashes()
# Reverse and convert to hex strings.
hashes = [hash_to_str(hash) for hash in reversed(hashes)]
for hex_hashes in chunks(hashes, 50):
@ -429,7 +420,7 @@ class BlockProcessor(LoggedClass):
await self.prefetcher.clear(self.height)
self.logger.info('prefetcher reset')
async def reorg_hashes(self, to_genesis):
async def reorg_hashes(self):
'''Return the list of hashes to back up beacuse of a reorg.
The hashes are returned in order of increasing height.'''
@ -447,7 +438,7 @@ class BlockProcessor(LoggedClass):
hex_hashes = [hash_to_str(hash) for hash in hashes]
d_hex_hashes = await self.daemon.block_hex_hashes(start, count)
n = match_pos(hex_hashes, d_hex_hashes)
if n >= 0 and not to_genesis:
if n >= 0:
start += n + 1
break
count = min(count * 2, start)

Loading…
Cancel
Save