code: def upload_set(self, ids, salt=""):
      # TODO: add hashing
      hashed_ids = to_hex_string(ids, salt)
      self.hashed_ids_to_ids = dict(zip(hashed_ids, ids))
  
      return self.stub.uploadSet(
          UploadSetRequest(
              client_id=FLClient.client_id, hashedID=hashed_ids
          )
      )
  
file_path: BigDL/python/ppml/src/bigdl/ppml/fl/psi/psi_client.py
imports: import logging
  import time
  from bigdl.dllib.utils.log4Error import invalidOperationError
  from bigdl.ppml.fl.psi.utils import to_hex_string
  from ..nn.fl_client import FLClient
  from bigdl.ppml.fl.nn.generated.psi_service_pb2_grpc import *
  from ..nn.generated.psi_service_pb2 import DownloadIntersectionRequest, SaltRequest, UploadSetRequest
label_desc: Use image node_id 3 for calling the PSI obj's underlying member method code with example usage: obj.upload_set(ids, salt) and returns: self