code: func validateChannelHeader(cHdr *common.ChannelHeader) error {
  	// check for nil argument
  	if cHdr == nil {
  		return errors.New("nil ChannelHeader provided")
  	}
  
  	// validate the header type
  	if common.HeaderType(cHdr.Type) != common.HeaderType_ENDORSER_TRANSACTION &&
  		common.HeaderType(cHdr.Type) != common.HeaderType_CONFIG_UPDATE &&
  		common.HeaderType(cHdr.Type) != common.HeaderType_CONFIG &&
  		common.HeaderType(cHdr.Type) != common.HeaderType_TOKEN_TRANSACTION {
  		return errors.Errorf("invalid header type %s", common.HeaderType(cHdr.Type))
  	}
  
  	putilsLogger.Debugf("validateChannelHeader info: header type %d", common.HeaderType(cHdr.Type))
  
  	// TODO: validate chainID in cHdr.ChainID
  
  	// Validate epoch in cHdr.Epoch
  	// Currently we enforce that Epoch is 0.
  	// TODO: This check will be modified once the Epoch management
  	// will be in place.
  	if cHdr.Epoch != 0 {
  		return errors.Errorf("invalid Epoch in ChannelHeader. Expected 0, got [%d]", cHdr.Epoch)
  	}
  
  	// TODO: Validate version in cHdr.Version
  
  	return nil
  }
docs: // checks for a valid ChannelHeader