def __init__(self, db, ip_address, nat_type, testnet=False, relaying=False): """ Initialize the new protocol with the connection handler factory. Args: ip_address: a `tuple` of the (ip address, port) of ths node. """ self.ip_address = ip_address self.testnet = testnet self.ws = None self.blockchain = None self.processors = [] self.relay_node = None self.nat_type = nat_type self.vendors = db.vendors.get_vendors() self.ban_score = BanScore(self) self.factory = self.ConnHandlerFactory(self.processors, nat_type, self.relay_node, self.ban_score) self.log = Logger(system=self) self.keep_alive_loop = LoopingCall(self.keep_alive) self.keep_alive_loop.start(30, now=False) ConnectionMultiplexer.__init__(self, CryptoConnectionFactory(self.factory), self.ip_address[0], relaying)
def on_connection_made(self): if self.connection is None or self.connection.state == State.CONNECTING: return task.deferLater(reactor, .1, self.on_connection_made) if self.connection.state == State.CONNECTED: self.ban_score = BanScore((str(self.connection.dest_addr[0]), int(self.connection.dest_addr[1])), self.processors[0].multiplexer) self.addr = str(self.connection.dest_addr[0]) + ":" + str(self.connection.dest_addr[1]) self.log.info("connected to %s" % self.addr)