commit feb0f483f5e070a678bdb10a713bfad4cb144b2e
parent 97343d95e57d2045144f5404683ef6aeafcaa8f3
Author: ThomasV <thomasv@electrum.org>
Date: Wed, 19 Jul 2017 17:23:46 +0200
fix bug if headers file is empty
Diffstat:
2 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/lib/blockchain.py b/lib/blockchain.py
@@ -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
diff --git a/lib/network.py b/lib/network.py
@@ -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: