diff --git a/lbrynet/core/Session.py b/lbrynet/core/Session.py index 04dbe491c..c50ec28ff 100644 --- a/lbrynet/core/Session.py +++ b/lbrynet/core/Session.py @@ -37,7 +37,7 @@ class Session(object): """ def __init__(self, blob_data_payment_rate, db_dir=None, - lbryid=None, peer_manager=None, dht_node_port=None, + node_id=None, peer_manager=None, dht_node_port=None, known_dht_nodes=None, peer_finder=None, hash_announcer=None, blob_dir=None, blob_manager=None, peer_port=None, use_upnp=True, @@ -48,7 +48,7 @@ class Session(object): @param db_dir: The directory in which levelDB files should be stored - @param lbryid: The unique ID of this node + @param node_id: The unique ID of this node @param peer_manager: An object which keeps track of all known peers. If None, a PeerManager will be created @@ -101,7 +101,7 @@ class Session(object): """ self.db_dir = db_dir - self.lbryid = lbryid + self.node_id = node_id self.peer_manager = peer_manager @@ -142,8 +142,8 @@ class Session(object): log.debug("Starting session.") - if self.lbryid is None: - self.lbryid = generate_id() + if self.node_id is None: + self.node_id = generate_id() if self.wallet is None: from lbrynet.core.PTCWallet import PTCWallet @@ -274,7 +274,7 @@ class Session(object): self.dht_node = self.dht_node_class( udpPort=self.dht_node_port, - lbryid=self.lbryid, + node_id=self.node_id, externalIP=self.external_ip ) self.peer_finder = DHTPeerFinder(self.dht_node, self.peer_manager) diff --git a/lbrynet/daemon/Daemon.py b/lbrynet/daemon/Daemon.py index 59e344b25..e2e9df32e 100644 --- a/lbrynet/daemon/Daemon.py +++ b/lbrynet/daemon/Daemon.py @@ -206,7 +206,7 @@ class Daemon(AuthJSONRPCServer): # of the daemon, but I don't want to deal with that now self.analytics_manager = analytics_manager - self.lbryid = conf.settings.node_id + self.node_id = conf.settings.node_id self.wallet_user = None self.wallet_password = None @@ -562,7 +562,7 @@ class Daemon(AuthJSONRPCServer): self.session = Session( conf.settings['data_rate'], db_dir=self.db_dir, - lbryid=self.lbryid, + node_id=self.node_id, blob_dir=self.blobfile_dir, dht_node_port=self.dht_node_port, known_dht_nodes=conf.settings['known_dht_nodes'], @@ -1054,7 +1054,7 @@ class Daemon(AuthJSONRPCServer): best_hash = (yield self.session.wallet.get_best_blockhash()) if has_wallet else None response = { - 'lbry_id': base58.b58encode(self.lbryid), + 'lbry_id': base58.b58encode(self.node_id), 'installation_id': conf.settings.installation_id, 'is_running': self.announced_startup, 'is_first_run': self.session.wallet.is_first_run if has_wallet else None, diff --git a/lbrynet/dht/node.py b/lbrynet/dht/node.py index b86c5ba63..c261a6595 100644 --- a/lbrynet/dht/node.py +++ b/lbrynet/dht/node.py @@ -49,8 +49,8 @@ class Node(object): application is performed via this class (or a subclass). """ - def __init__(self, id=None, udpPort=4000, dataStore=None, - routingTableClass=None, networkProtocol=None, lbryid=None, + def __init__(self, node_id=None, udpPort=4000, dataStore=None, + routingTableClass=None, networkProtocol=None, externalIP=None): """ @param dataStore: The data store to use. This must be class inheriting @@ -74,11 +74,7 @@ class Node(object): being transmitted. @type networkProtocol: entangled.kademlia.protocol.KademliaProtocol """ - if id != None: - self.id = id - else: - self.id = self._generateID() - self.lbryid = lbryid + self.node_id = node_id or self._generateID() self.port = udpPort self._listeningPort = None # object implementing Twisted # IListeningPort This will contain a deferred created when @@ -91,9 +87,9 @@ class Node(object): self.change_token_lc = task.LoopingCall(self.change_token) # Create k-buckets (for storing contacts) if routingTableClass is None: - self._routingTable = routingtable.OptimizedTreeRoutingTable(self.id) + self._routingTable = routingtable.OptimizedTreeRoutingTable(self.node_id) else: - self._routingTable = routingTableClass(self.id) + self._routingTable = routingTableClass(self.node_id) # Initialize this node's network access mechanisms if networkProtocol is None: @@ -110,7 +106,7 @@ class Node(object): # Try to restore the node's state... if 'nodeState' in self._dataStore: state = self._dataStore['nodeState'] - self.id = state['id'] + self.node_id = state['id'] for contactTriple in state['closestNodes']: contact = Contact( contactTriple[0], contactTriple[1], contactTriple[2], self._protocol) @@ -166,7 +162,7 @@ class Node(object): self.change_token_lc.start(constants.tokenSecretChangeInterval) # Initiate the Kademlia joining sequence - perform a search for this node's own ID - self._joinDeferred = self._iterativeFind(self.id, bootstrapContacts) + self._joinDeferred = self._iterativeFind(self.node_id, bootstrapContacts) # #TODO: Refresh all k-buckets further away than this node's closest neighbour # Start refreshing k-buckets periodically, if necessary self.next_refresh_call = reactor.callLater(constants.checkRefreshInterval, @@ -186,7 +182,7 @@ class Node(object): # get the deepest bucket and the number of contacts in that bucket and multiply it # by the number of equivalently deep buckets in the whole DHT to get a really bad # estimate! - bucket = self._routingTable._buckets[self._routingTable._kbucketIndex(self.id)] + bucket = self._routingTable._buckets[self._routingTable._kbucketIndex(self.node_id)] num_in_bucket = len(bucket._contacts) factor = (2 ** constants.key_bits) / (bucket.rangeMax - bucket.rangeMin) return num_in_bucket * factor @@ -202,7 +198,7 @@ class Node(object): return num_in_data_store * self.getApproximateTotalDHTNodes() / 8 def announceHaveBlob(self, key, port): - return self.iterativeAnnounceHaveBlob(key, {'port': port, 'lbryid': self.lbryid}) + return self.iterativeAnnounceHaveBlob(key, {'port': port, 'lbryid': self.node_id}) @defer.inlineCallbacks def getPeersForBlob(self, blob_hash): @@ -211,7 +207,7 @@ class Node(object): if result: if blob_hash in result: for peer in result[blob_hash]: - if self.lbryid != peer[6:]: + if self.node_id != peer[6:]: host = ".".join([str(ord(d)) for d in peer[:4]]) if host == "127.0.0.1" and "from_peer" in result and result["from_peer"] != "self": host = result["from_peer"] @@ -258,7 +254,7 @@ class Node(object): result = responseMsg.response if 'token' in result: value['token'] = result['token'] - d = n.store(blob_hash, value, self.id, 0) + d = n.store(blob_hash, value, self.node_id, 0) d.addCallback(log_success) d.addErrback(log_error, n) else: @@ -267,12 +263,12 @@ class Node(object): def requestPeers(contacts): if self.externalIP is not None and len(contacts) >= constants.k: - is_closer = Distance(blob_hash).is_closer(self.id, contacts[-1].id) + is_closer = Distance(blob_hash).is_closer(self.node_id, contacts[-1].id) if is_closer: contacts.pop() - self.store(blob_hash, value, self_store=True, originalPublisherID=self.id) + self.store(blob_hash, value, self_store=True, originalPublisherID=self.node_id) elif self.externalIP is not None: - self.store(blob_hash, value, self_store=True, originalPublisherID=self.id) + self.store(blob_hash, value, self_store=True, originalPublisherID=self.node_id) ds = [] for contact in contacts: known_nodes[contact.id] = contact @@ -456,7 +452,7 @@ class Node(object): raise TypeError, 'No NodeID given. Therefore we can\'t store this node' if self_store is True and self.externalIP: - contact = Contact(self.id, self.externalIP, self.port, None, None) + contact = Contact(self.node_id, self.externalIP, self.port, None, None) compact_ip = contact.compact_ip() elif '_rpcNodeContact' in kwargs: contact = kwargs['_rpcNodeContact'] @@ -583,7 +579,7 @@ class Node(object): if startupShortlist is None: shortlist = self._routingTable.findCloseNodes(key, constants.alpha) - if key != self.id: + if key != self.node_id: # Update the "last accessed" timestamp for the appropriate k-bucket self._routingTable.touchKBucket(key) if len(shortlist) == 0: @@ -679,7 +675,7 @@ class _IterativeFindHelper(object): responseMsg = responseTuple[0] originAddress = responseTuple[1] # tuple: (ip adress, udp port) # Make sure the responding node is valid, and abort the operation if it isn't - if responseMsg.nodeID in self.active_contacts or responseMsg.nodeID == self.node.id: + if responseMsg.nodeID in self.active_contacts or responseMsg.nodeID == self.node.node_id: return responseMsg.nodeID # Mark this node as active diff --git a/lbrynet/dht/protocol.py b/lbrynet/dht/protocol.py index 6ae7b98a3..70062e39b 100644 --- a/lbrynet/dht/protocol.py +++ b/lbrynet/dht/protocol.py @@ -155,7 +155,7 @@ class KademliaProtocol(protocol.DatagramProtocol): C{ErrorMessage}). @rtype: twisted.internet.defer.Deferred """ - msg = msgtypes.RequestMessage(self._node.id, method, args) + msg = msgtypes.RequestMessage(self._node.node_id, method, args) msgPrimitive = self._translator.toPrimitive(msg) encodedMsg = self._encoder.encode(msgPrimitive) @@ -342,7 +342,7 @@ class KademliaProtocol(protocol.DatagramProtocol): def _sendResponse(self, contact, rpcID, response): """ Send a RPC response to the specified contact """ - msg = msgtypes.ResponseMessage(rpcID, self._node.id, response) + msg = msgtypes.ResponseMessage(rpcID, self._node.node_id, response) msgPrimitive = self._translator.toPrimitive(msg) encodedMsg = self._encoder.encode(msgPrimitive) self._send(encodedMsg, rpcID, (contact.address, contact.port)) @@ -350,7 +350,7 @@ class KademliaProtocol(protocol.DatagramProtocol): def _sendError(self, contact, rpcID, exceptionType, exceptionMessage): """ Send an RPC error message to the specified contact """ - msg = msgtypes.ErrorMessage(rpcID, self._node.id, exceptionType, exceptionMessage) + msg = msgtypes.ErrorMessage(rpcID, self._node.node_id, exceptionType, exceptionMessage) msgPrimitive = self._translator.toPrimitive(msg) encodedMsg = self._encoder.encode(msgPrimitive) self._send(encodedMsg, rpcID, (contact.address, contact.port))