wizard restore hook
[electrum-nvc.git] / scripts / peers
index 82054ce..ef71fff 100755 (executable)
@@ -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=1)
+    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 = {}
@@ -69,11 +82,10 @@ while reached_servers:
     results[i.server] = r.get('result')
     reached_servers.remove(i.server)
 
-electrum.print_json(results)
-out = analyze(results)
-if out:
-    print "faulty servers:"
-    electrum.print_json(out)
-else:
-    print "ok"
+errors = analyze(results).keys()
+
+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"
+
+