Do not print "Sending 0 shares"
[p2pool.git] / p2pool / node.py
index ef60fb1..1b7b94e 100644 (file)
@@ -67,7 +67,8 @@ class P2PNode(p2p.Node):
                 if share.hash in stops:
                     break
                 shares.append(share)
-        print 'Sending %i shares to %s:%i' % (len(shares), peer.addr[0], peer.addr[1])
+        if len(shares) > 0:
+            print 'Sending %i shares to %s:%i' % (len(shares), peer.addr[0], peer.addr[1])
         return shares
     
     def handle_bestblock(self, header, peer):
@@ -110,8 +111,13 @@ 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 defer.TimeoutError:
+                    print 'Share request timed out!'
+                    continue
                 except:
                     log.err(None, 'in download_shares:')
                     continue
@@ -260,6 +266,8 @@ class Node(object):
             print
         
         def forget_old_txs():
+            print "KNOWN:", sum(bitcoin_data.tx_type.packed_size(tx) for tx in self.known_txs_var.value.itervalues())
+            print "MINING:", sum(bitcoin_data.tx_type.packed_size(tx) for tx in self.mining_txs_var.value.itervalues())
             new_known_txs = {}
             if self.p2p_node is not None:
                 for peer in self.p2p_node.peers.itervalues():