Add method for retrieving block headers from daemon
This commit is contained in:
parent
eb88f7cd6f
commit
fb13992c77
|
@ -60,6 +60,15 @@ class JSONRPCDaemon(object):
|
||||||
confirmations=0))
|
confirmations=0))
|
||||||
return txs
|
return txs
|
||||||
|
|
||||||
|
def headers(self, start_height, end_height=None):
|
||||||
|
end_height = end_height or start_height
|
||||||
|
res = self.raw_jsonrpc_request('get_block_headers_range', {
|
||||||
|
'start_height': start_height,
|
||||||
|
'end_height': end_height})
|
||||||
|
if res['status'] == 'OK':
|
||||||
|
return res['headers']
|
||||||
|
raise Exception()
|
||||||
|
|
||||||
def raw_request(self, path, data):
|
def raw_request(self, path, data):
|
||||||
hdr = {'Content-Type': 'application/json'}
|
hdr = {'Content-Type': 'application/json'}
|
||||||
_log.debug(u"Request: {path}\nData: {data}".format(
|
_log.debug(u"Request: {path}\nData: {data}".format(
|
||||||
|
@ -76,7 +85,6 @@ class JSONRPCDaemon(object):
|
||||||
_log.debug(u"Result:\n{result}".format(result=_ppresult))
|
_log.debug(u"Result:\n{result}".format(result=_ppresult))
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
def raw_jsonrpc_request(self, method, params=None):
|
def raw_jsonrpc_request(self, method, params=None):
|
||||||
hdr = {'Content-Type': 'application/json'}
|
hdr = {'Content-Type': 'application/json'}
|
||||||
data = {'jsonrpc': '2.0', 'id': 0, 'method': method, 'params': params or {}}
|
data = {'jsonrpc': '2.0', 'id': 0, 'method': method, 'params': params or {}}
|
||||||
|
|
|
@ -41,3 +41,13 @@ class Daemon(object):
|
||||||
:rtype: list of :class:`Transaction <monero.transaction.Transaction>`
|
:rtype: list of :class:`Transaction <monero.transaction.Transaction>`
|
||||||
"""
|
"""
|
||||||
return self._backend.mempool()
|
return self._backend.mempool()
|
||||||
|
|
||||||
|
|
||||||
|
def headers(self, start_height, end_height=None):
|
||||||
|
"""
|
||||||
|
Returns block headers for given height range.
|
||||||
|
If no :param end_height: is given, it's assumed to be equal to :param start_height:
|
||||||
|
|
||||||
|
:rtype: list of dict
|
||||||
|
"""
|
||||||
|
return self._backend.headers(start_height, end_height)
|
||||||
|
|
|
@ -31,8 +31,15 @@ def get_daemon():
|
||||||
|
|
||||||
d = get_daemon()
|
d = get_daemon()
|
||||||
info = d.info()
|
info = d.info()
|
||||||
print("Net: {net:>18s}\n"
|
print("Net: {net:>15s}net\n"
|
||||||
"Height: {height:10d}\n"
|
"Height: {height:10d}\n"
|
||||||
"Difficulty: {difficulty:10d}".format(
|
"Difficulty: {difficulty:10d}\n"
|
||||||
net='test' if info['testnet'] else 'live',
|
"Alt blocks: {alt_blocks_count:10d}\n".format(
|
||||||
|
net='test' if info['testnet'] \
|
||||||
|
else 'stage' if info['stagenet'] \
|
||||||
|
else 'main' if info['mainnet'] else 'unknown',
|
||||||
**info))
|
**info))
|
||||||
|
for hdr in reversed(d.headers(info['height']-7, info['height']-1)):
|
||||||
|
print("{height:10d} {hash} {block_size_kb:6.2f} kB {num_txes:3d} txn(s) "
|
||||||
|
"v{major_version:d}".format(
|
||||||
|
block_size_kb=hdr['block_size']/1024.0, **hdr))
|
Loading…
Reference in New Issue