Make mempool histogram refresh frequency coin-specific
This commit is contained in:
parent
5e4586ce54
commit
7a3938be23
@ -70,6 +70,7 @@ class Coin(object):
|
|||||||
DESERIALIZER = lib_tx.Deserializer
|
DESERIALIZER = lib_tx.Deserializer
|
||||||
DAEMON = daemon.Daemon
|
DAEMON = daemon.Daemon
|
||||||
BLOCK_PROCESSOR = BlockProcessor
|
BLOCK_PROCESSOR = BlockProcessor
|
||||||
|
MEMPOOL_HISTOGRAM_REFRESH_SECS = 500
|
||||||
XPUB_VERBYTES = bytes('????', 'utf-8')
|
XPUB_VERBYTES = bytes('????', 'utf-8')
|
||||||
XPRV_VERBYTES = bytes('????', 'utf-8')
|
XPRV_VERBYTES = bytes('????', 'utf-8')
|
||||||
ENCODE_CHECK = Base58.encode_check
|
ENCODE_CHECK = Base58.encode_check
|
||||||
@ -423,6 +424,7 @@ class BitcoinCash(BitcoinMixin, Coin):
|
|||||||
class BitcoinSegwit(BitcoinMixin, Coin):
|
class BitcoinSegwit(BitcoinMixin, Coin):
|
||||||
NAME = "BitcoinSegwit"
|
NAME = "BitcoinSegwit"
|
||||||
DESERIALIZER = lib_tx.DeserializerSegWit
|
DESERIALIZER = lib_tx.DeserializerSegWit
|
||||||
|
MEMPOOL_HISTOGRAM_REFRESH_SECS = 120
|
||||||
TX_COUNT = 318337769
|
TX_COUNT = 318337769
|
||||||
TX_COUNT_HEIGHT = 524213
|
TX_COUNT_HEIGHT = 524213
|
||||||
TX_PER_BLOCK = 1400
|
TX_PER_BLOCK = 1400
|
||||||
|
|||||||
@ -129,6 +129,8 @@ class MemPool(object):
|
|||||||
|
|
||||||
async def _refresh_hashes(self, once):
|
async def _refresh_hashes(self, once):
|
||||||
'''Refresh our view of the daemon's mempool.'''
|
'''Refresh our view of the daemon's mempool.'''
|
||||||
|
sleep = 5
|
||||||
|
histogram_refresh = self.coin.MEMPOOL_HISTOGRAM_REFRESH_SECS // sleep
|
||||||
for loop_count in itertools.count():
|
for loop_count in itertools.count():
|
||||||
height = self.daemon.cached_height()
|
height = self.daemon.cached_height()
|
||||||
hex_hashes = await self.daemon.mempool_hashes()
|
hex_hashes = await self.daemon.mempool_hashes()
|
||||||
@ -137,13 +139,12 @@ class MemPool(object):
|
|||||||
hashes = set(hex_str_to_hash(hh) for hh in hex_hashes)
|
hashes = set(hex_str_to_hash(hh) for hh in hex_hashes)
|
||||||
touched = await self._process_mempool(hashes)
|
touched = await self._process_mempool(hashes)
|
||||||
await self.notifications.on_mempool(touched, height)
|
await self.notifications.on_mempool(touched, height)
|
||||||
# Refresh the cached histogram periodically. Thread it as it
|
# Thread mempool histogram refreshes - they can be expensive
|
||||||
# can be expensive.
|
if loop_count % histogram_refresh == 0:
|
||||||
if loop_count % 100 == 0:
|
|
||||||
await self.tasks.run_in_thread(self._update_histogram)
|
await self.tasks.run_in_thread(self._update_histogram)
|
||||||
if once:
|
if once:
|
||||||
return
|
return
|
||||||
await asyncio.sleep(5)
|
await asyncio.sleep(sleep)
|
||||||
|
|
||||||
async def _process_mempool(self, all_hashes):
|
async def _process_mempool(self, all_hashes):
|
||||||
# Re-sync with the new set of hashes
|
# Re-sync with the new set of hashes
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user