From 283e1d21295de838b3db75e10341bc6699d0afa7 Mon Sep 17 00:00:00 2001 From: m0mchil Date: Wed, 31 Oct 2012 17:53:15 +0200 Subject: [PATCH] wait for bitcoind on startup --- mining/__init__.py | 19 ++++++++++++++++--- 1 files changed, 16 insertions(+), 3 deletions(-) diff --git a/mining/__init__.py b/mining/__init__.py index 588bea4..0bb7f7e 100644 --- a/mining/__init__.py +++ b/mining/__init__.py @@ -1,6 +1,7 @@ from service import MiningService from subscription import MiningSubscription from twisted.internet import defer +import time @defer.inlineCallbacks def setup(on_startup): @@ -27,6 +28,20 @@ def setup(on_startup): settings.BITCOIN_TRUSTED_PORT, settings.BITCOIN_TRUSTED_USER, settings.BITCOIN_TRUSTED_PASSWORD) + + import stratum.logger + log = stratum.logger.get_logger('mining') + + log.info('Waiting for bitcoin RPC...') + + while True: + try: + result = (yield bitcoin_rpc.getblocktemplate()) + if isinstance(result, dict): + log.info('Response from bitcoin RPC OK') + break + except: + time.sleep(1) coinbaser = SimpleCoinbaser(bitcoin_rpc, settings.CENTRAL_WALLET) (yield coinbaser.on_load) @@ -46,8 +61,6 @@ def setup(on_startup): # This is just failsafe solution when -blocknotify # mechanism is not working properly BlockUpdater(registry, bitcoin_rpc) - - import stratum.logger - log = stratum.logger.get_logger('mining') + log.info("MINING SERVICE IS READY") on_startup.callback(True) -- 1.7.1