X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=scripts%2Fpeers;h=af4eb484ad7db3176718b0d738d9481da85ea89c;hb=3cbe11a42473af52e7c5e002c36aaaf32646f627;hp=a67be7c19aab3d485c18ca43e3b21a00ccadc72a;hpb=55e4aa2a4750b8600717becf49a2635867c5be8b;p=electrum-nvc.git diff --git a/scripts/peers b/scripts/peers index a67be7c..af4eb48 100755 --- a/scripts/peers +++ b/scripts/peers @@ -1,12 +1,12 @@ #!/usr/bin/env python -import time, electrum, Queue -from electrum import Interface, SimpleConfig -from electrum.network import filter_protocol, parse_servers +import time, electrum_nvc, Queue +from electrum_nvc import Interface, SimpleConfig +from electrum_nvc.network import filter_protocol, parse_servers from collections import defaultdict # 1. start interface and wait for connection -interface = electrum.Interface('ecdsa.net:50002:s') +interface = electrum.Interface('127.0.0.1:50002:s') interface.start(wait = True) if not interface.is_connected: print "not connected" @@ -19,6 +19,7 @@ r = q.get(timeout=10000) peers = parse_servers(r.get('result')) peers = filter_protocol(peers,'s') +print "Contacting %d servers"%len(peers) # start interfaces config = SimpleConfig() interfaces = map ( lambda server: Interface(server, config), peers ) @@ -26,12 +27,24 @@ results_queue = Queue.Queue() reached_servers = [] for i in interfaces: i.start(q) +t0 = time.time() while peers: - i = q.get(timeout=10) + try: + i = q.get(timeout=1) + except: + if time.time() - t0 > 10: + print "timeout" + break + else: + continue peers.remove(i.server) if i.is_connected: i.send([('blockchain.headers.subscribe',[])], lambda i,x: results_queue.put((i,x))) reached_servers.append(i.server) + else: + print "Connection failed:", i.server + +print "%d servers could be reached"%len(reached_servers) def analyze(results): out = {} @@ -71,7 +84,7 @@ while reached_servers: errors = analyze(results).keys() -for n,v in results.items(): +for n,v in sorted(results.items(), key=lambda x:x[1]['block_height']): print "%40s"%n, v['block_height'], v['utxo_root'], "error" if n in errors else "ok"