code: func (ce *configEventer) ProcessConfigUpdate(config Config) {
  	logger.Debugf("Processing new config for channel %s", config.ChainID())
  	orgMap := cloneOrgConfig(config.Organizations())
  	if ce.lastConfig != nil && reflect.DeepEqual(ce.lastConfig.orgMap, orgMap) {
  		logger.Debugf("Ignoring new config for channel %s because it contained no anchor peer updates", config.ChainID())
  	} else {
  
  		var newAnchorPeers []*peer.AnchorPeer
  		for _, group := range config.Organizations() {
  			newAnchorPeers = append(newAnchorPeers, group.AnchorPeers()...)
  		}
  
  		newConfig := &configStore{
  			orgMap:      orgMap,
  			anchorPeers: newAnchorPeers,
  		}
  		ce.lastConfig = newConfig
  
  		logger.Debugf("Calling out because config was updated for channel %s", config.ChainID())
  		ce.receiver.updateAnchors(config)
  	}
  	ce.receiver.updateEndpoints(config.ChainID(), config.OrdererAddresses())
  }
docs: // ProcessConfigUpdate should be invoked whenever a channel's configuration is initialized or updated
  // it invokes the associated method in configEventReceiver when configuration is updated
  // but only if the configuration value actually changed
  // Note, that a changing sequence number is ignored as changing configuration