changed preferred_addrs to set and added new bootstrap node
authorForrest Voight <forrest@forre.st>
Mon, 1 Aug 2011 05:19:34 +0000 (01:19 -0400)
committerForrest Voight <forrest@forre.st>
Mon, 1 Aug 2011 05:19:34 +0000 (01:19 -0400)
p2pool/main.py
p2pool/p2p.py

index b316015..8104fd7 100644 (file)
@@ -246,12 +246,13 @@ def main(args):
             else:
                 return x, args.net.P2P_PORT
         
-        nodes = [
+        nodes = set([
             ('72.14.191.28', args.net.P2P_PORT),
             ('62.204.197.159', args.net.P2P_PORT),
-        ]
+            ('142.58.248.28', args.net.P2P_PORT),
+        ])
         try:
-            nodes.append(((yield reactor.resolve('p2pool.forre.st')), args.net.P2P_PORT))
+            nodes.add(((yield reactor.resolve('p2pool.forre.st')), args.net.P2P_PORT))
         except:
             log.err(None, 'Error resolving bootstrap node IP:')
         
@@ -261,7 +262,7 @@ def main(args):
             net=args.net,
             addr_store=db.SQLiteDict(sqlite3.connect(os.path.join(os.path.dirname(sys.argv[0]), 'addrs.dat'), isolation_level=None), args.net.ADDRS_TABLE),
             mode=0 if args.low_bandwidth else 1,
-            preferred_addrs=map(parse, args.p2pool_nodes) + nodes,
+            preferred_addrs=set(map(parse, args.p2pool_nodes)) | nodes,
         )
         p2p_node.handle_shares = p2p_shares
         p2p_node.handle_share_hashes = p2p_share_hashes
index 33c423a..993a0bd 100644 (file)
@@ -313,7 +313,7 @@ class AddrStore(dicts.DictWrapper):
         return v['services'], v['first_seen'], v['last_seen']
 
 class Node(object):
-    def __init__(self, current_work, port, net, addr_store=None, preferred_addrs=[], mode=0, desired_peers=10, max_attempts=100, preferred_storage=1000):
+    def __init__(self, current_work, port, net, addr_store=None, preferred_addrs=set(), mode=0, desired_peers=10, max_attempts=100, preferred_storage=1000):
         if addr_store is None:
             addr_store = {}
         
@@ -349,7 +349,7 @@ class Node(object):
             try:
                 if len(self.peers) < self.desired_peers and len(self.attempts) < self.max_attempts and (len(self.preferred_addrs) or len(self.addr_store)):
                     if (random.randrange(2) and len(self.preferred_addrs)) or not len(self.addr_store):
-                        host, port = random.choice(self.preferred_addrs)
+                        host, port = random.choice(list(self.preferred_addrs))
                     else:
                         host, port = random.choice(self.addr_store.keys())