code: func NewClient(conf Config) (*Client, error) {
  	if conf.Timeout == time.Duration(0) {
  		conf.Timeout = defaultTimeout
  	}
  	sop, err := conf.ToSecureOptions(newSelfSignedTLSCert)
  	if err != nil {
  		return nil, errors.WithStack(err)
  	}
  	cl, err := comm.NewGRPCClient(comm.ClientConfig{
  		SecOpts: sop,
  		Timeout: conf.Timeout,
  	})
  	if err != nil {
  		return nil, err
  	}
  	return &Client{GRPCClient: cl, TLSCertHash: util.ComputeSHA256(sop.Certificate)}, nil
  }
docs: // NewClient creates a new comm client out of the given configuration