3 from electrum import Interface, SimpleConfig, set_verbosity
4 from electrum.network import DEFAULT_SERVERS, filter_protocol
6 from collections import defaultdict
10 config = SimpleConfig()
11 servers = filter_protocol(DEFAULT_SERVERS,'t')
12 interfaces = map ( lambda server: Interface(server, config), servers )
15 results_queue = Queue.Queue()
17 for i in interfaces: i.start(q)
22 i = q.get(timeout=1000)
23 servers.remove(i.server)
25 i.send([('blockchain.headers.subscribe',[])], lambda i,x: results_queue.put((i,x)))
26 reached_servers.append(i.server)
29 i.status = "unreachable"
33 while reached_servers:
34 i, r = results_queue.get(timeout=1000)
35 i.blocks = r.get('result').get('block_height')
37 reached_servers.remove(i.server)
40 numblocks = d.keys()[v.index(max(v))]
44 if abs(i.blocks-numblocks)>1: i.status = "lagging"
48 print "%30s %d %s "%(i.host, i.blocks, i.status)