2017-09-05 15:27:08 +02:00
|
|
|
#!/usr/bin/env python3
|
2018-11-02 20:14:59 +01:00
|
|
|
import asyncio
|
2012-03-31 12:08:11 +02:00
|
|
|
|
2018-11-02 20:14:59 +01:00
|
|
|
from electrum.network import filter_protocol, Network
|
|
|
|
|
from electrum.util import create_and_start_event_loop, log_exceptions
|
|
|
|
|
from electrum.blockchain import hash_raw_header
|
2013-10-06 12:28:45 +02:00
|
|
|
|
2018-11-02 20:14:59 +01:00
|
|
|
import util
|
2014-02-11 14:08:48 +01:00
|
|
|
|
2017-09-07 09:41:21 +02:00
|
|
|
|
2018-11-02 20:14:59 +01:00
|
|
|
loop, stopping_fut, loop_thread = create_and_start_event_loop()
|
|
|
|
|
network = Network()
|
|
|
|
|
network.start()
|
2014-03-04 22:31:12 +01:00
|
|
|
|
2018-11-02 20:14:59 +01:00
|
|
|
@log_exceptions
|
|
|
|
|
async def f():
|
|
|
|
|
try:
|
|
|
|
|
peers = await util.get_peers(network)
|
|
|
|
|
peers = filter_protocol(peers, 's')
|
|
|
|
|
results = await util.send_request(network, 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("%60s" % server, height, blockhash)
|
|
|
|
|
finally:
|
|
|
|
|
stopping_fut.set_result(1)
|
|
|
|
|
|
|
|
|
|
asyncio.run_coroutine_threadsafe(f(), loop)
|