fix for commit 2de88b3d - start using "stops" in share requests again
[p2pool.git] / p2pool / node.py
index 4a90646..aaee6ef 100644 (file)
@@ -11,18 +11,14 @@ from p2pool.util import deferral, variable
 
 
 class P2PNode(p2p.Node):
-    def __init__(self, node, p2pool_port, p2pool_conns, addrs, connect_addrs):
+    def __init__(self, node, **kwargs):
         self.node = node
         p2p.Node.__init__(self,
             best_share_hash_func=lambda: node.best_share_var.value,
-            port=p2pool_port,
             net=node.net,
-            addr_store=addrs,
-            connect_addrs=connect_addrs,
-            max_incoming_conns=p2pool_conns,
             known_txs_var=node.known_txs_var,
             mining_txs_var=node.mining_txs_var,
-        )
+        **kwargs)
     
     def handle_shares(self, shares, peer):
         if len(shares) > 5:
@@ -114,7 +110,9 @@ class P2PNode(p2p.Node):
                     shares = yield peer.get_shares(
                         hashes=[share_hash],
                         parents=500,
-                        stops=[],
+                        stops=list(set(self.node.tracker.heads) | set(
+                            self.node.tracker.get_nth_parent_hash(head, min(max(0, self.node.tracker.get_height_and_last(head)[0] - 1), 10)) for head in self.node.tracker.heads
+                        ))[:100],
                     )
                 except:
                     log.err(None, 'in download_shares:')
@@ -337,3 +335,5 @@ class Node(object):
                 self.tracker.remove(aftertail)
             #end = time.time()
             #print "removed! %i %f" % (len(to_remove), (end - start)/len(to_remove))
+        
+        self.set_best_share()