def __init__(self, ip='127.0.0.1', port=None, registry=None, logger=None, events=None, node_endpoint=None, log_endpoint=None): self.zctx = zmq.Context.instance() self.ip = ip self.port = port self.node_endpoint = node_endpoint self.log_endpoint = log_endpoint self.endpoint = None self.bound = False self.recv_loop_greenlet = None self.channels = {} self.connections = {} self.pool = trace.Group() self.service_registry = registry self.event_system = events self.bind() self.identity = hashlib.md5(self.endpoint.encode('utf-8')).hexdigest() self.installed_services = {} self.installed_plugins = [] self.error_hook = Hook() self.monitor = Monitor(self) self.install(DefaultInterface) registry.install(self) if events: events.install(self)