electrum

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

commit d5d5e8af5c77760e8e20a5565388b9acc337279b
parent 732679aa3dd8eab99f1d77e1e5644fe6b3105066
Author: ThomasV <thomasv@electrum.org>
Date:   Mon, 24 Jul 2017 08:46:49 +0200

fix: handle multiple forks at same checkpoint

Diffstat:
Mlib/network.py | 12+++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/lib/network.py b/lib/network.py @@ -835,13 +835,19 @@ class Network(util.DaemonThread): if branch is not None: if branch.check_header(interface.bad_header): interface.print_error('joining chain', interface.bad) + next_height = None elif branch.parent().check_header(header): interface.print_error('reorg', interface.bad, interface.tip) interface.blockchain = branch.parent() + next_height = None else: - # should not happen - raise BaseException('error') - next_height = None + interface.print_error('checkpoint conflicts with existing fork', branch.path()) + open(branch.path(), 'w+').close() + branch.save_header(interface.bad_header) + interface.mode = 'catch_up' + interface.blockchain = branch + next_height = interface.bad + 1 + interface.blockchain.catch_up = interface.server else: bh = interface.blockchain.height() next_height = None