From 0460c6cf03b8da4a5accb5ac26606e596a5571ff Mon Sep 17 00:00:00 2001 From: Forrest Voight Date: Sun, 15 Sep 2013 18:17:34 -0400 Subject: [PATCH] added orphan share rate graph --- p2pool/web.py | 15 +++++++++++++-- p2pool/work.py | 2 +- web-static/graphs.html | 3 ++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/p2pool/web.py b/p2pool/web.py index 6788222..238e823 100644 --- a/p2pool/web.py +++ b/p2pool/web.py @@ -7,7 +7,7 @@ import sys import time import traceback -from twisted.internet import defer +from twisted.internet import defer, reactor from twisted.python import log from twisted.web import resource, static @@ -376,6 +376,7 @@ def get_web_root(wb, datadir_path, bitcoind_getinfo_var, stop_event=variable.Eve 'local_dead_hash_rate': graph.DataStreamDescription(dataview_descriptions, is_gauge=False), 'local_share_hash_rate': graph.DataStreamDescription(dataview_descriptions, is_gauge=False), 'local_dead_share_hash_rate': graph.DataStreamDescription(dataview_descriptions, is_gauge=False), + 'local_orphan_share_hash_rate': graph.DataStreamDescription(dataview_descriptions, is_gauge=False), 'pool_rates': graph.DataStreamDescription(dataview_descriptions, multivalues=True, multivalue_undefined_means_0=True), 'current_payout': graph.DataStreamDescription(dataview_descriptions), @@ -406,11 +407,21 @@ def get_web_root(wb, datadir_path, bitcoind_getinfo_var, stop_event=variable.Eve if dead: hd.datastreams['miner_dead_hash_rates'].add_datum(t, {user: work}) @wb.share_received.watch - def _(work, dead): + def _(work, dead, share_hash): t = time.time() hd.datastreams['local_share_hash_rate'].add_datum(t, work) if dead: hd.datastreams['local_dead_share_hash_rate'].add_datum(t, work) + def later(): + res = node.tracker.is_child_of(share_hash, node.best_share_var.value) + if res is None: return # share isn't connected to sharechain? + if res and dead: # share was DOA, but is now in sharechain + # remove from DOA graph + hd.datastreams['local_dead_share_hash_rate'].add_datum(t, -work) + elif not res and not dead: # share wasn't DOA, and isn't in sharechain + # add to orphan graph + hd.datastreams['local_orphan_share_hash_rate'].add_datum(t, work) + reactor.callLater(200, later) @node.p2p_node.traffic_happened.watch def _(name, bytes): hd.datastreams['traffic_rate'].add_datum(time.time(), {name: bytes}) diff --git a/p2pool/work.py b/p2pool/work.py index 8108a59..21dac58 100644 --- a/p2pool/work.py +++ b/p2pool/work.py @@ -408,7 +408,7 @@ class WorkerBridge(worker_interface.WorkerBridge): except: log.err(None, 'Error forwarding block solution:') - self.share_received.happened(bitcoin_data.target_to_average_attempts(share.target), not on_time) + self.share_received.happened(bitcoin_data.target_to_average_attempts(share.target), not on_time, share.hash) if pow_hash > target: print 'Worker %s submitted share with hash > target:' % (user,) diff --git a/web-static/graphs.html b/web-static/graphs.html index 62d8c74..6de46cb 100644 --- a/web-static/graphs.html +++ b/web-static/graphs.html @@ -422,7 +422,8 @@ ]); plot_later(d3.select("#local_shares"), "H/s", "H", [ {"url": "../web/graph_data/local_share_hash_rate/last_" + lowerperiod, "color": "#0000FF", "label": "Total"}, - //{"url": getData("../web/graph_data/local_dead_share_hash_rate/last_" + lowerperiod, "color": "#FF0000", "label": "Dead"} + {"url": "../web/graph_data/local_dead_share_hash_rate/last_" + lowerperiod, "color": "#FF0000", "label": "Dead"}, + {"url": "../web/graph_data/local_orphan_share_hash_rate/last_" + lowerperiod, "color": "#00FF00", "label": "Orphan"} ]); plot_later(d3.select("#payout"), currency_info.symbol, null, [ {"url": "../web/graph_data/current_payout/last_" + lowerperiod, "color": "#0000FF"} -- 1.7.1