From 542595fef52b31298b22bc6bc1962f3790db6251 Mon Sep 17 00:00:00 2001 From: Yura Date: Thu, 26 Jan 2017 02:20:45 +0600 Subject: [PATCH 1/7] Fix monitor_network error --- powerpool/jobmanagers/monitor_network.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/powerpool/jobmanagers/monitor_network.py b/powerpool/jobmanagers/monitor_network.py index 7671b26..816dd20 100644 --- a/powerpool/jobmanagers/monitor_network.py +++ b/powerpool/jobmanagers/monitor_network.py @@ -359,8 +359,7 @@ def generate_job(self, push=False, flush=False, new_block=False, network='main') coinbase.inputs.append( Input.coinbase(self._last_gbt['height'], addtl_push=[mm_data] if mm_data else [], - extra_script_sig=b'\0' * extranonce_length, - desc_string=self.config['coinbase_string'])) + extra_script_sig=b'\0' * extranonce_length)) coinbase_value = self._last_gbt['coinbasevalue'] From a8faabad067cbc9e1d94c0f78d3881e84cc01b41 Mon Sep 17 00:00:00 2001 From: Oleg Belousov Date: Thu, 26 Jan 2017 02:03:27 +0200 Subject: [PATCH 2/7] Update redis_reporter.py --- powerpool/reporters/redis_reporter.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/powerpool/reporters/redis_reporter.py b/powerpool/reporters/redis_reporter.py index 28940b3..62fcef5 100644 --- a/powerpool/reporters/redis_reporter.py +++ b/powerpool/reporters/redis_reporter.py @@ -43,7 +43,8 @@ class RedisReporter(QueueStatReporter): one_sec_stats = ['queued'] gl_methods = ['_queue_proc', '_report_one_min'] defaults = QueueStatReporter.defaults.copy() - defaults.update(dict(redis={}, chain=1)) + # monkey patch for docker compose + defaults.update(dict(redis={'host': '172.13.0.3'}, chain=1)) def __init__(self, config): self._configure(config) From c72493f39bf0252c261cc29238aae8c6a6dc2b02 Mon Sep 17 00:00:00 2001 From: Oleg Belousov Date: Thu, 26 Jan 2017 02:20:27 +0200 Subject: [PATCH 3/7] Update switching_jobmanager.py --- powerpool/jobmanagers/switching_jobmanager.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/powerpool/jobmanagers/switching_jobmanager.py b/powerpool/jobmanagers/switching_jobmanager.py index 20fdd4e..cadda0f 100644 --- a/powerpool/jobmanagers/switching_jobmanager.py +++ b/powerpool/jobmanagers/switching_jobmanager.py @@ -11,15 +11,9 @@ class MonitorNetworkMulti(Jobmanager): - defaults = config = dict(jobmanagers=None, - profit_poll_int=1, - redis={}, - margin_switch=1.2, - exchange_manager={}) - def __init__(self, config): self._configure(config) - + super(Jobmanager, self).__init__() # Since some MonitorNetwork objs are polling and some aren't.... self.gl_methods = ['update_profit'] From 6801fc2b06f6fe87e608363a9eb08f86805d376d Mon Sep 17 00:00:00 2001 From: Oleg Belousov Date: Thu, 26 Jan 2017 02:21:20 +0200 Subject: [PATCH 4/7] Update redis_reporter.py --- powerpool/reporters/redis_reporter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/powerpool/reporters/redis_reporter.py b/powerpool/reporters/redis_reporter.py index 62fcef5..dd29f42 100644 --- a/powerpool/reporters/redis_reporter.py +++ b/powerpool/reporters/redis_reporter.py @@ -44,7 +44,7 @@ class RedisReporter(QueueStatReporter): gl_methods = ['_queue_proc', '_report_one_min'] defaults = QueueStatReporter.defaults.copy() # monkey patch for docker compose - defaults.update(dict(redis={'host': '172.13.0.3'}, chain=1)) + defaults.update(dict(redis={}, chain=1)) def __init__(self, config): self._configure(config) From 947ba292a21fb39052e303eb5531cd7a724531de Mon Sep 17 00:00:00 2001 From: Oleg Belousov Date: Thu, 26 Jan 2017 03:01:02 +0200 Subject: [PATCH 5/7] Update switching_jobmanager.py --- powerpool/jobmanagers/switching_jobmanager.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/powerpool/jobmanagers/switching_jobmanager.py b/powerpool/jobmanagers/switching_jobmanager.py index cadda0f..f1393b6 100644 --- a/powerpool/jobmanagers/switching_jobmanager.py +++ b/powerpool/jobmanagers/switching_jobmanager.py @@ -194,6 +194,10 @@ def update_profitability(self, currency): return True def new_job_notif(self, event): + if not hasattr('job', event): + self.logger.info("No blocks mined yet, skipping switch logic") + return + currency = event.job.currency flush = event.job.type == 0 if currency == self.current_network: From be35f7cf9067842f4c1c2d1df6052f09edb0dd1d Mon Sep 17 00:00:00 2001 From: Oleg Belousov Date: Thu, 26 Jan 2017 14:10:34 +0200 Subject: [PATCH 6/7] Revert "Fix monitor_network error" This reverts commit 542595fef52b31298b22bc6bc1962f3790db6251. --- powerpool/jobmanagers/monitor_network.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/powerpool/jobmanagers/monitor_network.py b/powerpool/jobmanagers/monitor_network.py index 816dd20..7671b26 100644 --- a/powerpool/jobmanagers/monitor_network.py +++ b/powerpool/jobmanagers/monitor_network.py @@ -359,7 +359,8 @@ def generate_job(self, push=False, flush=False, new_block=False, network='main') coinbase.inputs.append( Input.coinbase(self._last_gbt['height'], addtl_push=[mm_data] if mm_data else [], - extra_script_sig=b'\0' * extranonce_length)) + extra_script_sig=b'\0' * extranonce_length, + desc_string=self.config['coinbase_string'])) coinbase_value = self._last_gbt['coinbasevalue'] From e3d45748e11a46ba4848c4d7ccfeccfcd50e8b6e Mon Sep 17 00:00:00 2001 From: Oleg Belousov Date: Thu, 26 Jan 2017 14:21:06 +0200 Subject: [PATCH 7/7] Fixed coinbase bug for currencies that support both POS and POW mining concepts --- powerpool/jobmanagers/monitor_network.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/powerpool/jobmanagers/monitor_network.py b/powerpool/jobmanagers/monitor_network.py index 7671b26..0b147d7 100644 --- a/powerpool/jobmanagers/monitor_network.py +++ b/powerpool/jobmanagers/monitor_network.py @@ -356,11 +356,25 @@ def generate_job(self, push=False, flush=False, new_block=False, network='main') # extranonces so script length is accurate extranonce_length = (self.manager.config['extranonce_size'] + self.manager.config['extranonce_serv_size']) + coinbase_kwargs = { + 'addtl_push': [mm_data] if mm_data else [], + 'extra_script_sig': b'\0' * extranonce_length, + 'desc_string': self.config['coinbase_string'] + } + try: + coinbase = Input.coinbase(self._last_gbt['height'], + **coinbase_kwargs) + except TypeError as e: + self.logger.warn('tried to mine a POW ' + 'block with POS interface'.format(e)) + coinbase_kwargs.pop('desc_string') + coinbase = Input.coinbase(self._last_gbt['height'], + **coinbase_kwargs) + coinbase.inputs.append( - Input.coinbase(self._last_gbt['height'], - addtl_push=[mm_data] if mm_data else [], - extra_script_sig=b'\0' * extranonce_length, - desc_string=self.config['coinbase_string'])) + coinbase + ) + coinbase_value = self._last_gbt['coinbasevalue']