i.start()
-def get_header(i, block_height):
- i.send([('blockchain.block.get_header',[block_height])])
- while True:
- r = i.responses.get(True, 100000000000)
- method = r.get('method')
- if method == 'blockchain.block.get_header':
- break
- return r.get('result')
-
-
-
-def get_merkle(i, tx_hash):
-
- i.send([('blockchain.transaction.get_merkle',[tx_hash])])
- while True:
- r = i.responses.get(True, 100000000000)
- method = r.get('method')
- if method == 'blockchain.transaction.get_merkle':
- break
-
- return r.get('result')
-
-
def merkle_root(merkle):
merkle = map (lambda tx_hash: tx_hash.decode('hex')[::-1], merkle)
def verify_tx(tx_hash):
- res = get_merkle(i, tx_hash)
+
+ res = i.synchronous_get([ ('blockchain.transaction.get_merkle',[tx_hash]) ])[0]
assert tx_hash in res.get('merkle')
assert res.get('merkle_root') == merkle_root(res['merkle'])
block_height = res.get('block_height')
- _hash = None
+ print block_height
+
+ headers_requests = []
for height in range(block_height-10,block_height+10):
- header = get_header(i, height)
+ headers_requests.append( ('blockchain.block.get_header',[height]) )
+ res = i.synchronous_get(headers_requests)
+
+ _hash = None
+ for header in res:
if _hash: assert _hash == header.get('prev_block_hash')
_hash = hash_header(header)
- #print _hash
+ print _hash
if height==block_height:
assert header.get('merkle_root') == res.get('merkle_root')