X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=mining%2F__init__.py;h=0bb7f7ebdf4c5ce7ba8dc60429d0f29d3f0882c8;hb=283e1d21295de838b3db75e10341bc6699d0afa7;hp=73e6d15977883edf187704fcbf37881d1cc3ae61;hpb=5cf1b39c915d234d31156d417005adc3719d5649;p=stratum-mining.git diff --git a/mining/__init__.py b/mining/__init__.py index 73e6d15..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) @@ -35,7 +50,8 @@ def setup(on_startup): coinbaser, bitcoin_rpc, settings.INSTANCE_ID, - MiningSubscription.on_block) + MiningSubscription.on_template, + Interfaces.share_manager.on_network_block) # Template registry is the main interface between Stratum service # and pool core logic @@ -45,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)