code: func (c *Consenter) ReceiverByChain(channelID string) MessageReceiver {
  	cs := c.Chains.GetChain(channelID)
  	if cs == nil {
  		return nil
  	}
  	if cs.Chain == nil {
  		c.Logger.Panicf("Programming error - Chain %s is nil although it exists in the mapping", channelID)
  	}
  	if etcdRaftChain, isEtcdRaftChain := cs.Chain.(*Chain); isEtcdRaftChain {
  		return etcdRaftChain
  	}
  	c.Logger.Warningf("Chain %s is of type %v and not etcdraft.Chain", channelID, reflect.TypeOf(cs.Chain))
  	return nil
  }
docs: // ReceiverByChain returns the MessageReceiver for the given channelID or nil
  // if not found.