async def f(): try: peers = await network.get_peers() peers = filter_protocol(peers) results = await network.send_multiple_requests( peers, 'blockchain.transaction.broadcast', [rawtx]) for server, resp in results.items(): print(f"result: server={server}, response={resp}") finally: stopping_fut.set_result(1)
async def f(): try: peers = await network.get_peers() peers = filter_protocol(peers) results = await network.send_multiple_requests(peers, 'blockchain.estimatefee', [2]) print(json.dumps(results, indent=4)) feerate_estimates = filter(lambda x: isinstance(x, Number), results.values()) print(f"median feerate: {median(feerate_estimates)}") finally: stopping_fut.set_result(1)
async def f(): try: peers = await network.get_peers() peers = filter_protocol(peers, 's') results = await network.send_multiple_requests(peers, 'blockchain.headers.subscribe', []) for server, header in sorted(results.items(), key=lambda x: x[1].get('height')): height = header.get('height') blockhash = hash_raw_header(header.get('hex')) print(server, height, blockhash) finally: stopping_fut.set_result(1)
def get_peers(): # 1. start interface and wait for connection interface = electrum.Interface('electrum-ltc.bysh.me:50002:s') q = Queue.Queue() interface.start(q) i, r = q.get() if not interface.is_connected: raise BaseException("not connected") # 2. get list of peers interface.send_request({'id':0, 'method':'server.peers.subscribe','params':[]}) i, r = q.get(timeout=10000) peers = parse_servers(r.get('result')) peers = filter_protocol(peers,'s') i.stop() return peers
async def f(): try: peers = await network.get_peers() peers = filter_protocol(peers, 's') results = await network.send_multiple_requests( peers, 'blockchain.transaction.get', [txid]) r1, r2 = [], [] for k, v in results.items(): (r1 if not isinstance(v, Exception) else r2).append(k) print(f"Received {len(results)} answers") try: propagation = len(r1) * 100. / (len(r1) + len(r2)) except ZeroDivisionError: propagation = 0 print(f"Propagation rate: {propagation:.1f} percent") finally: stopping_fut.set_result(1)
def get_peers(): peers = [] # 1. get connected interfaces server = 'electrum-ltc.bysh.me:50002:s' interfaces = get_interfaces([server]) if not interfaces: print "No connection to", server return [] # 2. get list of peers interface = interfaces[server] interface.queue_request('server.peers.subscribe', [], 0) responses = wait_on_interfaces(interfaces).get(server) if responses: response = responses[0][1] # One response, (req, response) tuple peers = parse_servers(response.get('result')) peers = filter_protocol(peers,'s') return peers
def get_peers(): # 1. start interface and wait for connection interface = electrum.Interface('electrum-ltc.bysh.me:50002:s') q = Queue.Queue() interface.start(q) i, r = q.get() if not interface.is_connected: raise BaseException("not connected") # 2. get list of peers interface.send_request({ 'id': 0, 'method': 'server.peers.subscribe', 'params': [] }) i, r = q.get(timeout=10000) peers = parse_servers(r.get('result')) peers = filter_protocol(peers, 's') i.stop() return peers
def peers(self): print("got peers list:") l = filter_protocol(self.wallet.network.get_servers(), 's') for s in l: print (s)
def peers(self): print("got peers list:") l = filter_protocol(self.wallet.network.get_servers(), 's') for s in l: print(s)
#!/usr/bin/env python3 from . import util import json from electrum_ltc.network import filter_protocol peers = filter_protocol(util.get_peers()) results = util.send_request(peers, 'blockchain.estimatefee', [2]) print(json.dumps(results, indent=4))
#!/usr/bin/env python3 from . import util from electrum_ltc.network import filter_protocol from electrum_ltc.blockchain import hash_header peers = util.get_peers() peers = filter_protocol(peers, 's') results = util.send_request(peers, 'blockchain.headers.subscribe', []) for n, v in sorted(results.items(), key=lambda x: x[1].get('block_height')): print("%60s" % n, v.get('block_height'), hash_header(v))