コード例 #1
0
ファイル: qrlnode.py プロジェクト: pir8aye/QRL
 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())
コード例 #2
0
    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())
コード例 #3
0
ファイル: qrlnode.py プロジェクト: pir8aye/QRL
    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)