X-Git-Url: https://git.novaco.in/?p=p2pool.git;a=blobdiff_plain;f=p2pool%2Fnode.py;h=4a91620d8b7a8a5bed50345313423ba0a7995d3b;hp=2b25fbe55bf157278fcf204f2b620915f0cacc7e;hb=012a8830c61226f48d979db9800edf1862d83df4;hpb=e66e6d54784393d7bc22b1429c32ce1d2a58da8b diff --git a/p2pool/node.py b/p2pool/node.py index 2b25fbe..4a91620 100644 --- a/p2pool/node.py +++ b/p2pool/node.py @@ -292,16 +292,23 @@ class Node(object): stop_signal.watch(t.stop) def set_best_share(self): - best, desired, decorated_heads = self.tracker.think(self.get_height_rel_highest, self.bitcoind_work.value['previous_block'], self.bitcoind_work.value['bits'], self.known_txs_var.value) + best, desired, decorated_heads, bad_peer_addresses = self.tracker.think(self.get_height_rel_highest, self.bitcoind_work.value['previous_block'], self.bitcoind_work.value['bits'], self.known_txs_var.value) self.best_share_var.set(best) self.desired_var.set(desired) + if self.p2p_node is not None: + for bad_peer_address in bad_peer_addresses: + # XXX O(n) + for peer in self.p2p_node.peers.itervalues(): + if peer.addr == bad_peer_address: + peer.badPeerHappened() + break def get_current_txouts(self): return p2pool_data.get_expected_payouts(self.tracker, self.best_share_var.value, self.bitcoind_work.value['bits'].target, self.bitcoind_work.value['subsidy'], self.net) def clean_tracker(self): - best, desired, decorated_heads = self.tracker.think(self.get_height_rel_highest, self.bitcoind_work.value['previous_block'], self.bitcoind_work.value['bits'], self.known_txs_var.value) + best, desired, decorated_heads, bad_peer_addresses = self.tracker.think(self.get_height_rel_highest, self.bitcoind_work.value['previous_block'], self.bitcoind_work.value['bits'], self.known_txs_var.value) # eat away at heads if decorated_heads: