X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=p2pool%2Fdata.py;h=f615a081e62fb77b4f9ea2db95beb2a3681bede2;hb=e6c585624a0067b28e44e93eba4bb47f103c0003;hp=af4cb14f28cd8d239679d2a15402e57d5ab33547;hpb=07c6bc4654657539aa96af8ed3462a2217cf783c;p=p2pool.git diff --git a/p2pool/data.py b/p2pool/data.py index af4cb14..f615a08 100644 --- a/p2pool/data.py +++ b/p2pool/data.py @@ -530,6 +530,18 @@ def get_average_stale_prop(tracker, share_hash, lookbehind): stales = sum(1 for share in tracker.get_chain(share_hash, lookbehind) if share.share_data['stale_info'] is not None) return stales/(lookbehind + stales) +def get_stale_counts(tracker, share_hash, lookbehind, rates=False): + res = {} + for share in tracker.get_chain(share_hash, lookbehind - 1): + res['good'] = res.get('good', 0) + bitcoin_data.target_to_average_attempts(share.target) + s = share.share_data['stale_info'] + if s is not None: + res[s] = res.get(s, 0) + bitcoin_data.target_to_average_attempts(share.target) + if rates: + dt = tracker.shares[share_hash].timestamp - tracker.shares[tracker.get_nth_parent_hash(share_hash, lookbehind - 1)].timestamp + res = dict((k, v/dt) for k, v in res.iteritems()) + return res + def get_expected_payouts(tracker, best_share_hash, block_target, subsidy, net): weights, total_weight, donation_weight = tracker.get_cumulative_weights(best_share_hash, min(tracker.get_height(best_share_hash), net.REAL_CHAIN_LENGTH), 65535*net.SPREAD*bitcoin_data.target_to_average_attempts(block_target)) res = dict((script, subsidy*weight//total_weight) for script, weight in weights.iteritems())