code: func newCtxtCacheKey(ctx fab.ClientContext) (*ctxtCacheKey, error) {
  	identity, err := ctx.Serialize()
  	if err != nil {
  		return nil, err
  	}
  
  	h := sha256.New()
  	if _, err := h.Write(identity); err != nil {
  		return nil, err
  	}
  
  	hash := h.Sum(nil)
  
  	return &ctxtCacheKey{
  		key:     string(hash),
  		context: ctx,
  	}, nil
  }
docs: // newCtxtCacheKey returns a new cacheKey