Initial novacoin support
[electrum-nvc.git] / scripts / peers
index a67be7c..af4eb48 100755 (executable)
@@ -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"