fix bug if headers file is empty

This commit is contained in:
ThomasV 2017-07-19 17:23:46 +02:00
parent 97343d95e5
commit feb0f483f5
2 changed files with 14 additions and 4 deletions

View File

@ -286,6 +286,8 @@ class Blockchain(util.PrintError):
height = header['block_height']
if self.height() != height - 1:
return False
if height == 0:
return hash_header(header) == bitcoin.GENESIS
previous_header = self.read_header(height -1)
if not previous_header:
return False

View File

@ -990,11 +990,19 @@ class Network(util.DaemonThread):
self.notify('interfaces')
self.switch_lagging_interface()
return
interface.mode = 'backward'
interface.bad = height
interface.bad_header = header
tip = max([x.height() for x in self.blockchains.values()])
self.request_header(interface, tip)
if tip >=0:
interface.mode = 'backward'
interface.bad = height
interface.bad_header = header
self.request_header(interface, tip)
else:
chain = self.blockchains[0]
if chain.catch_up is None:
chain.catch_up = interface
interface.mode = 'catch_up'
interface.blockchain = chain
self.request_header(interface, 0)
def blockchain(self):
if self.interface and self.interface.blockchain is not None: