tMerge branch 'master' of git://github.com/spesmilo/electrum - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit cf6a366070430a17fa0f19519589935db9f54a6f DIR parent c04d60986201ea0d39442ed0929c5799e7abd106 HTML Author: ThomasV <thomasv@gitorious> Date: Sat, 1 Aug 2015 08:48:19 +0200 Merge branch 'master' of git://github.com/spesmilo/electrum Diffstat: M lib/blockchain.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) --- DIR diff --git a/lib/blockchain.py b/lib/blockchain.py t@@ -47,17 +47,21 @@ class Blockchain(): prev_header = self.read_header(first_header.get('block_height') -1) for header in chain: - height = header.get('block_height') - prev_hash = self.hash_header(prev_header) + if prev_hash != header.get('prev_block_hash'): + self.print_error("prev hash mismatch: %s vs %s" + % (prev_hash, header.get('prev_block_hash'))) + return False bits, target = self.get_target(height/2016, chain) + if bits != header.get('bits'): + self.print_error("bits mismatch: %s vs %s" + % (bits, header.get('bits'))) + return False _hash = self.hash_header(header) - try: - assert prev_hash == header.get('prev_block_hash') - assert bits == header.get('bits') - assert int('0x'+_hash,16) < target - except Exception: + if int('0x'+_hash, 16) > target: + self.print_error("insufficient proof of work: %s vs target %s" + % (int('0x'+_hash, 16), target)) return False prev_header = header