def update_peer_addresses(self, peer_addresses) -> None: # FIXME: Probably will be refactored self._peer_addresses = peer_addresses known_peers = qrl_pb2.StoredPeers() known_peers.peers.extend([qrl_pb2.Peer(ip=p) for p in set(self._peer_addresses)]) with open(self.peers_path, "wb") as outfile: outfile.write(known_peers.SerializeToString())
def update_peer_addresses(self, peer_addresses: set) -> None: new_addresses = self._peer_addresses - set(peer_addresses) if self._p2pfactory is not None: for peer_address in new_addresses: self._p2pfactory.connect_peer(peer_address) self._peer_addresses |= set(peer_addresses) known_peers = qrl_pb2.StoredPeers() known_peers.peers.extend([qrl_pb2.Peer(ip=p) for p in self._peer_addresses]) with open(self.peers_path, "wb") as outfile: outfile.write(known_peers.SerializeToString())
def _load_peer_addresses(self) -> None: try: if os.path.isfile(self.peers_path): logger.info('Opening peers.qrl') with open(self.peers_path, 'rb') as infile: known_peers = qrl_pb2.StoredPeers() known_peers.ParseFromString(bytes(infile.read())) self._peer_addresses = [peer.ip for peer in known_peers.peers] self._peer_addresses.extend(config.user.peer_list) return except Exception as e: logger.warning("Error loading peers") logger.exception(e) logger.info('Creating peers.qrl') # Ensure the data path exists config.create_path(config.user.data_path) self.update_peer_addresses(config.user.peer_list) logger.info('Known Peers: %s', self._peer_addresses)