stale_prop = p2pool_data.get_average_stale_prop(tracker, current_work.value['best_share_hash'], min(720, height))
real_att_s = att_s / (1 - stale_prop)
my_att_s = real_att_s*weights.get(my_script, 0)/total_weight
- this_str = 'Pool: %sH/s in %i shares (%i/%i verified) Recent: %.02f%% >%sH/s Shares: %i (%i orphan, %i dead) Peers: %i' % (
+ this_str = 'Pool: %sH/s in %i shares (%i/%i verified) Recent: %.02f%% >%sH/s Shares: %i (%i orphan, %i dead) Peers: %i (%i incoming)' % (
math.format(int(real_att_s)),
height,
len(tracker.verified.shares),
stale_orphan_shares,
stale_doa_shares,
len(p2p_node.peers),
+ sum(1 for peer in p2p_node.peers.itervalues() if peer.incoming),
) + (' FDs: %i R/%i W' % (len(reactor.getReaders()), len(reactor.getWriters())) if p2pool.DEBUG else '')
this_str += '\nAverage time between blocks: %.2f days' % (
2**256 / current_work.value['bits'].target / real_att_s / (60 * 60 * 24),
version = 2
sub_version = p2pool.__version__
- def __init__(self, node):
+ def __init__(self, node, incoming):
self.node = node
+ self.incoming = incoming
self._prefix = self.node.net.PREFIX
def buildProtocol(self, addr):
if len(self.conns) >= self.max_conns:
return None
- p = Protocol(self.node)
+ p = Protocol(self.node, True)
p.factory = self
return p
self.running = False
def buildProtocol(self, addr):
- p = Protocol(self.node)
+ p = Protocol(self.node, False)
p.factory = self
return p
raise ValueError('already have peer')
self.peers[conn.nonce] = conn
- print 'Connected to peer %s:%i. p2pool version: %i %r' % (conn.addr[0], conn.addr[1], conn.other_version, conn.other_sub_version)
+ print '%s connection to peer %s:%i established. p2pool version: %i %r' % ('Incoming' if conn.incoming else 'Outgoing', conn.addr[0], conn.addr[1], conn.other_version, conn.other_sub_version)
def lost_conn(self, conn):
if conn.nonce not in self.peers: