code: func (stub *ClientStub) Send(server string, conf common.Config, req *discovery.Request) (ServiceResponse, error) {
  	comm, err := comm.NewClient(conf.TLSConfig)
  	if err != nil {
  		return nil, err
  	}
  	signer, err := signer.NewSigner(conf.SignerConfig)
  	if err != nil {
  		return nil, err
  	}
  	timeout, cancel := context.WithTimeout(context.Background(), defaultTimeout)
  	defer cancel()
  
  	disc := discovery.NewClient(comm.NewDialer(server), signer.Sign, 0)
  
  	resp, err := disc.Send(timeout, req, &AuthInfo{
  		ClientIdentity:    signer.Creator,
  		ClientTlsCertHash: comm.TLSCertHash,
  	})
  	if err != nil {
  		return nil, errors.Errorf("failed connecting to %s: %v", server, err)
  	}
  	return &response{
  		Response: resp,
  	}, nil
  }
docs: // Send sends the request, and receives a response