self.addr = self.transport.getPeer().host, self.transport.getPeer().port
self.send_version(
- version=8,
+ version=901,
services=0,
addr_to=dict(
services=0,
def handle_version(self, version, services, addr_to, addr_from, nonce, sub_version, mode, best_share_hash):
if self.other_version is not None:
raise PeerMisbehavingError('more than one version message')
- if version < 4:
+ if version < 8:
raise PeerMisbehavingError('peer too old')
self.other_version = version
random.expovariate(1/100)][-1])
self._stop_thread2 = deferral.run_repeatedly(lambda: [
- self.send_addrme(port=self.node.serverfactory.listen_port.getHost().port),
+ self.send_addrme(port=self.node.serverfactory.listen_port.getHost().port) if self.node.serverfactory.listen_port is not None else None,
random.expovariate(1/(100*len(self.node.peers) + 1))][-1])
if best_share_hash is not None:
('shares', pack.ListType(p2pool_data.share_type)),
])
def handle_shares(self, shares):
- self.node.handle_shares([p2pool_data.load_share(share, self.node.net, self) for share in shares if share['type'] not in [6, 7]], self)
+ self.node.handle_shares([p2pool_data.load_share(share, self.node.net, self) for share in shares if share['type'] >= 9], self)
def sendShares(self, shares, tracker, known_txs, include_txs_with=[]):
if not shares:
tx_hashes = set()
for share in shares:
if share.hash in include_txs_with:
- tx_hashes.update(share.get_other_tx_hashes(tracker))
+ x = share.get_other_tx_hashes(tracker)
+ if x is not None:
+ tx_hashes.update(x)
hashes_to_send = [x for x in tx_hashes if x not in self.node.mining_txs_var.value and x in known_txs]
])
def handle_sharereply(self, id, result, shares):
if result == 'good':
- res = [p2pool_data.load_share(share, self.node.net, self) for share in shares if share['type'] not in [6, 7]]
+ res = [p2pool_data.load_share(share, self.node.net, self) for share in shares if share['type'] >= 9]
else:
res = failure.Failure("sharereply result: " + result)
self.get_shares.got_response(id, res)
for cache in self.known_txs_cache.itervalues():
if tx_hash in cache:
tx = cache[tx_hash]
- print 'Transaction rescued from peer latency cache!'
+ print 'Transaction %064x rescued from peer latency cache!' % (tx_hash,)
break
else:
- print >>sys.stderr, 'Peer referenced unknown transaction, disconnecting'
+ print >>sys.stderr, 'Peer referenced unknown transaction %064x, disconnecting' % (tx_hash,)
self.transport.loseConnection()
return
return
if tx_hash in self.node.known_txs_var.value and not warned:
- print 'Peer sent entire transaction that was already received'
+ print 'Peer sent entire transaction %064x that was already received' % (tx_hash,)
warned = True
self.remembered_txs[tx_hash] = tx
self.conns = {}
self.running = False
+ self.listen_port = None
def buildProtocol(self, addr):
if sum(self.conns.itervalues()) >= self.max_conns or self.conns.get(self._host_to_ident(addr.host), 0) >= 3: