From: Forrest Voight Date: Thu, 9 Feb 2012 20:29:14 +0000 (-0500) Subject: added format_dt function and used it in status displays X-Git-Tag: 0.8.4~8 X-Git-Url: https://git.novaco.in/?a=commitdiff_plain;h=5e903ce09ae9fdf7fbf012a703feaa9141e8b011;p=p2pool.git added format_dt function and used it in status displays --- diff --git a/p2pool/data.py b/p2pool/data.py index 0024442..cb7eecf 100644 --- a/p2pool/data.py +++ b/p2pool/data.py @@ -408,9 +408,9 @@ class OkayTracker(forest.Tracker): target_cutoff = 2**256-1 if p2pool.DEBUG: - print 'Desire %i shares. Cutoff: %.1f hours old diff>%.2f' % (len(desired), (time.time()-timestamp_cutoff)/3600, bitcoin_data.target_to_difficulty(target_cutoff)) + print 'Desire %i shares. Cutoff: %s old diff>%.2f' % (len(desired), math.format_dt(time.time() - timestamp_cutoff), bitcoin_data.target_to_difficulty(target_cutoff)) for peer, hash, ts, targ in desired: - print ' ', '%s:%i' % peer.addr if peer is not None else None, format_hash(hash), ts, bitcoin_data.target_to_difficulty(targ), ts >= timestamp_cutoff, targ <= target_cutoff + print ' ', '%s:%i' % peer.addr if peer is not None else None, format_hash(hash), math.format_dt(time.time() - ts), bitcoin_data.target_to_difficulty(targ), ts >= timestamp_cutoff, targ <= target_cutoff return best, [(peer, hash) for peer, hash, ts, targ in desired if ts >= timestamp_cutoff and targ <= target_cutoff] diff --git a/p2pool/main.py b/p2pool/main.py index 048f1af..3444686 100644 --- a/p2pool/main.py +++ b/p2pool/main.py @@ -861,7 +861,7 @@ def main(args, net, datadir_path, merged_urls): yield deferral.sleep(3) try: if time.time() > current_work2.value['last_update'] + 60: - print >>sys.stderr, '''---> LOST CONTACT WITH BITCOIND for 60 seconds, check that it isn't frozen or dead <---''' + print >>sys.stderr, '''---> LOST CONTACT WITH BITCOIND for %s! Check that it isn't frozen or dead! <---''' % (math.format_dt(time.time() - current_work2.value['last_update']),) height = tracker.get_height(current_work.value['best_share_hash']) this_str = 'P2Pool: %i shares in chain (%i verified/%i total) Peers: %i (%i incoming)' % ( @@ -877,11 +877,11 @@ def main(args, net, datadir_path, merged_urls): while recent_shares_ts_work2 and recent_shares_ts_work2[0][0] < time.time() - average_period: recent_shares_ts_work2.pop(0) my_att_s = sum(work for ts, work, dead in recent_shares_ts_work2)/min(time.time() - first_pseudoshare_time, average_period) if first_pseudoshare_time is not None else 0 - this_str += '\n Local: %sH/s (%.f min avg) Local dead on arrival: %s Expected time to share: %s' % ( + this_str += '\n Local: %sH/s in last %s Local dead on arrival: %s Expected time to share: %s' % ( math.format(int(my_att_s)), - (min(time.time() - first_pseudoshare_time, average_period) if first_pseudoshare_time is not None else 0)/60, + math.format_dt(min(time.time() - first_pseudoshare_time, average_period) if first_pseudoshare_time is not None else 0), math.format_binomial_conf(sum(1 for tx, work, dead in recent_shares_ts_work2 if dead), len(recent_shares_ts_work2), 0.95), - '%.1f min' % (2**256 / tracker.shares[current_work.value['best_share_hash']].target / my_att_s / 60,) if my_att_s else '???', + math.format_dt(2**256 / tracker.shares[current_work.value['best_share_hash']].target / my_att_s) if my_att_s else '???', ) if height > 2: @@ -895,10 +895,10 @@ def main(args, net, datadir_path, merged_urls): math.format_binomial_conf(stale_orphan_shares + stale_doa_shares, shares, 0.95, lambda x: (1 - x)/(1 - stale_prop)), get_current_txouts().get(my_script, 0)*1e-8, net.PARENT.SYMBOL, ) - this_str += '\n Pool: %sH/s Stale rate: %.1f%% Average time between blocks: %.2f days' % ( + this_str += '\n Pool: %sH/s Stale rate: %.1f%% Expected time to block: %s' % ( math.format(int(real_att_s)), 100*stale_prop, - 2**256 / current_work.value['bits'].target / real_att_s / (60 * 60 * 24), + math.format_dt(2**256 / current_work.value['bits'].target / real_att_s), ) if this_str != last_str or time.time() > last_time + 15: diff --git a/p2pool/util/math.py b/p2pool/util/math.py index 0d66c78..9268e57 100644 --- a/p2pool/util/math.py +++ b/p2pool/util/math.py @@ -73,6 +73,12 @@ def format(x): s = '' if count == 0 else prefixes[count - 1] return '%i' % (x,) + s +def format_dt(dt): + for value, name in [(60*60*24, 'days'), (60*60, 'hours'), (60, 'minutes'), (1, 'seconds')]: + if dt > value: + break + return '%.01f %s' % (dt/value, name) + perfect_round = lambda x: int(x + random.random()) def erf(x):