electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

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:
Mlib/blockchain.py | 2++
Mlib/network.py | 16++++++++++++----
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: