diff --git a/scripts/servers b/scripts/servers new file mode 100755 index 00000000..0a1da1e4 --- /dev/null +++ b/scripts/servers @@ -0,0 +1,37 @@ +#!/usr/bin/env python + +from electrum import Interface, DEFAULT_SERVERS +import time, Queue + +servers = DEFAULT_SERVERS +interfaces = map ( lambda server: Interface({'server':server} ), servers ) +results = [] + +for i in interfaces: + if i.is_connected: + i.start() + i.send([('blockchain.numblocks.subscribe',[])]) + else: + servers.remove(i.server) + +while servers: + for i in interfaces: + try: + r = i.responses.get(False) + except Queue.Empty: + continue + + if r.get('method') == 'blockchain.numblocks.subscribe': + results.append((i.host, r.get('result'))) + servers.remove(i.server) + +from collections import defaultdict +d = defaultdict(int) +for e in results: + d[e[1]] += 1 +v = d.values() +numblocks = d.keys()[v.index(max(v))] + +for s,n in results: + print "%30s %d "%(s, n), "ok" if abs(n-numblocks)<2 else "lagging" +