1
0

synchronous_get batch method for interface

This commit is contained in:
thomasv
2012-10-19 14:16:02 +02:00
parent 2137ab3238
commit e165c13a84
3 changed files with 37 additions and 47 deletions

View File

@@ -11,18 +11,7 @@ except:
i = Interface({'server':'electrum.novit.ro:50001:t'})
i.start()
i.send([('blockchain.address.get_history',[addr])])
h = i.synchronous_get([ ('blockchain.address.get_history',[addr]) ])[0]
for item in h:
print item['tx_hash'], item['value']
while True:
try:
r = i.responses.get(True, 100000000000)
except KeyboardInterrupt:
break
method = r.get('method')
if method == 'blockchain.address.get_history':
confirmed = unconfirmed = 0
h = r.get('result')
for item in h:
print item['tx_hash'], item['value']
break

View File

@@ -21,29 +21,6 @@ i = Interface({'server':'ecdsa.org:50002:s'})
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)
@@ -70,16 +47,23 @@ def hash_header(res):
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')