Add mempool statistics display to monitor mode

master
Daniel Edgecumbe 7 years ago
parent 52545651db
commit e0bf9041a9

@ -153,6 +153,8 @@ def create_tasks(client, window):
headerview.on_nettotals, 5.0),
poll_client(client, "getpeerinfo",
on_peerinfo, 5.0),
poll_client(client, "getmempoolinfo",
monitorview.on_mempoolinfo, 5.0),
tick(on_tick, 1.0),
handle_hotkeys(window, footerview.on_mode_change, on_window_resize)
]
@ -168,8 +170,10 @@ def create_tasks(client, window):
def mainfn():
client = initialize()
try:
window = interface.init_curses()
tasks = create_tasks(client, window)
loop = asyncio.get_event_loop()

@ -24,6 +24,7 @@ class MonitorView(object):
self._bestblockheader = None # raw json blockheader
self._bestblock = None # raw json block
self._bestcoinbase = None # raw json tx
self._mempoolinfo = None # raw mempoolinfo
self._dt = None
self._window_size = MIN_WINDOW_SIZE
@ -113,6 +114,12 @@ class MonitorView(object):
math.log(int(bb["chainwork"], 16), 2),
))
if self._mempoolinfo:
self._pad.addstr(9, 1, "Mempool transactions: {: 6d} ({: 5.2f} MiB)".format(
self._mempoolinfo["size"],
self._mempoolinfo["bytes"] / 1048576,
))
self._draw_pad_to_screen()
def _draw_pad_to_screen(self):
@ -150,6 +157,15 @@ class MonitorView(object):
if draw and self._visible:
await self.draw()
async def on_mempoolinfo(self, key, obj):
try:
self._mempoolinfo = obj["result"]
except KeyError:
return
if self._visible:
await self.draw()
async def on_tick(self, dt):
with await self._lock:
self._dt = dt

Loading…
Cancel
Save