From 13a8b62d8ceb8d77c89f7f7eb72ffdb4b130984f Mon Sep 17 00:00:00 2001 From: Neil Booth Date: Sun, 12 Aug 2018 23:44:18 +0900 Subject: [PATCH] Daemon constructor passed coin and URLs directly --- electrumx/server/controller.py | 6 ++++-- electrumx/server/daemon.py | 8 ++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/electrumx/server/controller.py b/electrumx/server/controller.py index 5b156c2..6588ea9 100644 --- a/electrumx/server/controller.py +++ b/electrumx/server/controller.py @@ -92,9 +92,11 @@ class Controller(ServerBase): self.logger.info(f'reorg limit is {env.reorg_limit:,d} blocks') notifications = Notifications() - daemon = env.coin.DAEMON(env) - db = DB(env) + Daemon = env.coin.DAEMON BlockProcessor = env.coin.BLOCK_PROCESSOR + + daemon = Daemon(env.coin, env.daemon_url) + db = DB(env) bp = BlockProcessor(env, db, daemon, notifications) # Set ourselves up to implement the MemPoolAPI diff --git a/electrumx/server/daemon.py b/electrumx/server/daemon.py index be22e99..721987e 100644 --- a/electrumx/server/daemon.py +++ b/electrumx/server/daemon.py @@ -37,14 +37,14 @@ class Daemon(object): class DaemonWarmingUpError(Exception): '''Raised when the daemon returns an error in its results.''' - def __init__(self, env): + def __init__(self, coin, urls, max_workqueue=10): + self.coin = coin self.logger = class_logger(__name__, self.__class__.__name__) - self.coin = env.coin - self.set_urls(env.coin.daemon_urls(env.daemon_url)) + self.set_urls(coin.daemon_urls(urls)) self._height = None # Limit concurrent RPC calls to this number. # See DEFAULT_HTTP_WORKQUEUE in bitcoind, which is typically 16 - self.workqueue_semaphore = asyncio.Semaphore(value=10) + self.workqueue_semaphore = asyncio.Semaphore(value=max_workqueue) self.down = False self.last_error_time = 0 self.req_id = 0