code: func (c *Comm) applyMembershipConfig(channel string, newNodes []RemoteNode) {
  	mapping := c.getOrCreateMapping(channel)
  	newNodeIDs := make(map[uint64]struct{})
  
  	for _, node := range newNodes {
  		newNodeIDs[node.ID] = struct{}{}
  		c.updateStubInMapping(channel, mapping, node)
  	}
  
  	// Remove all stubs without a corresponding node
  	// in the new nodes
  	for id, stub := range mapping {
  		if _, exists := newNodeIDs[id]; exists {
  			c.Logger.Info(id, "exists in both old and new membership for channel", channel, ", skipping its deactivation")
  			continue
  		}
  		c.Logger.Info("Deactivated node", id, "who's endpoint is", stub.Endpoint, "as it's removed from membership")
  		delete(mapping, id)
  		stub.Deactivate()
  	}
  }
docs: // applyMembershipConfig sets the given RemoteNodes for the given channel