Browse Source

redo verifications if a header verification fails

283
thomasv 12 years ago
parent
commit
2307323bb7
  1. 8
      lib/verifier.py

8
lib/verifier.py

@ -208,8 +208,13 @@ class WalletVerifier(threading.Thread):
assert bits == header.get('bits') assert bits == header.get('bits')
assert eval('0x'+_hash) < target assert eval('0x'+_hash) < target
except: except:
# this can be caused by a reorg.
print_error("verify header failed"+ repr(header)) print_error("verify header failed"+ repr(header))
# this can be caused by a reorg. # undo verifications
for tx_hash, tx_height in self.verified_tx.items():
if tx_height >= height:
print "redoing", tx_hash
self.verified_tx.pop(tx_hash)
# return False to request previous header. # return False to request previous header.
return False return False
@ -269,7 +274,6 @@ class WalletVerifier(threading.Thread):
self.set_local_height() self.set_local_height()
def save_header(self, header): def save_header(self, header):
# todo: invalidate tx verifications if we rewind
data = self.header_to_string(header).decode('hex') data = self.header_to_string(header).decode('hex')
assert len(data) == 80 assert len(data) == 80
height = header.get('block_height') height = header.get('block_height')

Loading…
Cancel
Save