# 1: send entire share (low latency, high bandwidth)
class Protocol(bitcoin_p2p.BaseProtocol):
- version = 0
+ version = 1
sub_version = ''
def __init__(self, node):
def _connect_timeout(self):
if not self.connected2 and self.transport.connected:
- print 'Handshake timed out, disconnecting'
+ print 'Handshake timed out, disconnecting from %s:%i' % (self.transport.getPeer().host, self.transport.getPeer().port)
self.transport.loseConnection()
@defer.inlineCallbacks
def _think2(self):
while self.connected2:
self.send_addrme(port=self.node.port)
- print 'sending addrme'
+ #print 'sending addrme'
yield util.sleep(random.expovariate(1/100))
def handle_version(self, version, services, addr_to, addr_from, nonce, sub_version, mode, state):
self.other_mode_var = util.Variable(mode)
if nonce == self.node.nonce:
- #print 'Detected connection to self, disconnecting'
+ #print 'Detected connection to self, disconnecting from %s:%i' % (self.transport.getPeer().host, self.transport.getPeer().port)
self.transport.loseConnection()
return
if nonce in self.node.peers:
- print 'Detected duplicate connection, disconnecting'
+ print 'Detected duplicate connection, disconnecting from %s:%i' % (self.transport.getPeer().host, self.transport.getPeer().port)
self.transport.loseConnection()
return
def handle_addrme(self, port):
host = self.transport.getPeer().host
- print 'addrme from', host, port
+ #print 'addrme from', host, port
if host == '127.0.0.1':
- if random.random() < .7 and self.node.peers:
+ if random.random() < .8 and self.node.peers:
random.choice(self.node.peers.values()).send_addrme(port=port) # services...
else:
self.node.got_addr(('::ffff:' + self.transport.getPeer().host, port), self.other_services, int(time.time()))
- if random.random() < .7 and self.node.peers:
+ if random.random() < .8 and self.node.peers:
random.choice(self.node.peers.values()).send_addrs(addrs=[
dict(
address=dict(
def handle_addrs(self, addrs):
for addr_record in addrs:
self.node.got_addr((addr_record['address']['address'], addr_record['address']['port']), addr_record['address']['services'], min(int(time.time()), addr_record['timestamp']))
- if random.random() < .7 and self.node.peers:
+ if random.random() < .8 and self.node.peers:
random.choice(self.node.peers.values()).send_addrs(addrs=[addr_record])
def handle_getaddrs(self, count):
self.send_addrs(addrs=[
host = host2[len(prefix):]
if (host, port) not in self.attempts:
- print 'Trying to connect to', host, port
+ #print 'Trying to connect to', host, port
reactor.connectTCP(host, port, ClientFactory(self), timeout=10)
except:
traceback.print_exc()