def send_find_node(self, node, target_node_id): """ ### Find Node (type 0x03) Find Node packets are sent to locate nodes close to a given target ID. The receiver should reply with a Neighbors packet containing the `k` nodes closest to target that it knows about. FindNode packet-type: 0x03 struct FindNode <= 76 bytes { NodeId target; // Id of a node. The responding node will send back nodes closest to the target. unsigned expiration; }; """ assert is_integer(target_node_id) target_node_id = utils.int_to_big_endian(target_node_id).rjust(kademlia.k_pubkey_size // 8, b'\0') assert len(target_node_id) == kademlia.k_pubkey_size // 8 log.debug('>>> find_node', remoteid=node) message = self.pack(self.cmd_id_map['find_node'], [target_node_id]) self.send(node, message)
def send_find_node(self, node, target_node_id): """ ### Find Node (type 0x03) Find Node packets are sent to locate nodes close to a given target ID. The receiver should reply with a Neighbors packet containing the `k` nodes closest to target that it knows about. FindNode packet-type: 0x03 struct FindNode { NodeId target; unsigned expiration; }; """ assert isinstance(target_node_id, long) target_node_id = utils.int_to_big_endian(target_node_id).rjust(kademlia.k_id_size / 8, '\0') assert len(target_node_id) == kademlia.k_id_size / 8 log.debug('>>> find_node', remoteid=node) message = self.pack(self.cmd_id_map['find_node'], [target_node_id]) self.send(node, message)
def send_find_node(self, node, target_node_id): """ ### Find Node (type 0x03) Find Node packets are sent to locate nodes close to a given target ID. The receiver should reply with a Neighbors packet containing the `k` nodes closest to target that it knows about. FindNode packet-type: 0x03 struct FindNode { NodeId target; unsigned expiration; }; """ assert isinstance(target_node_id, long) target_node_id = utils.int_to_big_endian(target_node_id).rjust( kademlia.k_id_size / 8, '\0') assert len(target_node_id) == kademlia.k_id_size / 8 log.debug('>>> find_node', remoteid=node) message = self.pack(self.cmd_id_map['find_node'], [target_node_id]) self.send(node, message)
def random_pubkey(): pk = int_to_big_endian(random.getrandbits(kademlia.k_pubkey_size)) return '\x00' * (kademlia.k_pubkey_size / 8 - len(pk)) + pk
def random_pubkey(): pk = int_to_big_endian(random.getrandbits(kademlia.k_pubkey_size)) return "\x00" * (kademlia.k_pubkey_size / 8 - len(pk)) + pk