code: func (c *clientIdentityImpl) getIdentity() (*msp.SerializedIdentity, error) {
  	sid := &msp.SerializedIdentity{}
  	creator, err := c.stub.GetCreator()
  	if err != nil || creator == nil {
  		return nil, errors.WithMessage(err, "failed to get transaction invoker's identity from the chaincode stub")
  	}
  	err = proto.Unmarshal(creator, sid)
  	if err != nil {
  		return nil, errors.Wrap(err, "failed to unmarshal transaction invoker's identity")
  	}
  	return sid, nil
  }
docs: // Unmarshals the bytes returned by ChaincodeStubInterface.GetCreator method and
  // returns the resulting msp.SerializedIdentity object