Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
def get_peers():
    # 1. start interface and wait for connection
    q = Queue.Queue()
    interface = electrum_dash.Interface('ecdsa.net:110:s', q)
    interface.start()
    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
Exemple #5
0
def get_peers():
    peers = []
    # 1. get connected interfaces
    server = '138.197.154.194:50002:t'
    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
Exemple #6
0
async def f():
    try:
        peers = await network.get_peers()
        peers = filter_protocol(peers)
        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)
Exemple #7
0
def get_peers():
    # 1. start interface and wait for connection
    q = Queue.Queue()
    interface = electrum_dash.Interface('ecdsa.net:110:s', q)
    interface.start()
    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
Exemple #8
0
 def peers(self):
     print("got peers list:")
     l = filter_protocol(self.wallet.network.get_servers(), 's')
     for s in l:
         print (s)
Exemple #9
0
#!/usr/bin/env python3

from . import util

from electrum_dash.network import filter_protocol
from electrum_dash.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))
Exemple #10
0
 def peers(self):
     print("got peers list:")
     l = filter_protocol(self.wallet.network.get_servers(), 's')
     for s in l:
         print(s)
Exemple #11
0
#!/usr/bin/env python3
from . import util
import json
from electrum_dash.network import filter_protocol
peers = filter_protocol(util.get_peers())
results = util.send_request(peers, 'blockchain.estimatefee', [2])
print(json.dumps(results, indent=4))
Exemple #12
0
#!/usr/bin/env python3

from . import util

from electrum_dash.network import filter_protocol
from electrum_dash.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))