return dict(header=self.header, txs=[gentx] + self.other_txs)
-def get_pool_attempts_per_second(tracker, previous_share_hash, net, dist=None):
- if dist is None:
- dist = net.TARGET_LOOKBEHIND
+def get_pool_attempts_per_second(tracker, previous_share_hash, dist):
near = tracker.shares[previous_share_hash]
far = tracker.shares[tracker.get_nth_parent_hash(previous_share_hash, dist - 1)]
attempts = tracker.get_work(near.hash) - tracker.get_work(far.hash)
if height < net.TARGET_LOOKBEHIND:
target = bitcoin_data.FloatingInteger.from_target_upper_bound(net.MAX_TARGET)
else:
- attempts_per_second = get_pool_attempts_per_second(tracker, previous_share_hash, net)
+ attempts_per_second = get_pool_attempts_per_second(tracker, previous_share_hash, net.TARGET_LOOKBEHIND)
pre_target = 2**256//(net.SHARE_PERIOD*attempts_per_second) - 1
pre_target2 = math.clip(pre_target, (previous_share.target*9//10, previous_share.target*11//10))
pre_target3 = math.clip(pre_target2, (0, net.MAX_TARGET))
def get_rate():
if current_work.value['best_share_hash'] is not None:
height, last = tracker.get_height_and_last(current_work.value['best_share_hash'])
- att_s = p2pool_data.get_pool_attempts_per_second(tracker, current_work.value['best_share_hash'], net, min(height - 1, 720))
+ att_s = p2pool_data.get_pool_attempts_per_second(tracker, current_work.value['best_share_hash'], min(height - 1, 720))
fracs = [share.stale_frac for share in itertools.islice(tracker.get_chain_known(current_work.value['best_share_hash']), 120) if share.stale_frac is not None]
return json.dumps(int(att_s / (1. - (math.median(fracs) if fracs else 0))))
return json.dumps(None)
if current_work.value['best_share_hash'] is not None:
height, last = tracker.get_height_and_last(current_work.value['best_share_hash'])
if height > 2:
- att_s = p2pool_data.get_pool_attempts_per_second(tracker, current_work.value['best_share_hash'], net, min(height - 1, 720))
+ att_s = p2pool_data.get_pool_attempts_per_second(tracker, current_work.value['best_share_hash'], min(height - 1, 720))
weights, total_weight, donation_weight = tracker.get_cumulative_weights(current_work.value['best_share_hash'], min(height, 720), 65535*2**256)
shares, stale_doa_shares, stale_not_doa_shares = get_share_counts(True)
stale_shares = stale_doa_shares + stale_not_doa_shares