code: func makeCompoundMessage(msgs [][]byte) []byte {
  	cMsg := CompoundMessage{}
  
  	cMsg.Messages = make([]*CompoundMessage_SimpleMessage, 0, len(msgs))
  	for _, m := range msgs {
  		cMsg.Messages = append(cMsg.Messages, &CompoundMessage_SimpleMessage{
  			Payload: m,
  		})
  	}
  
  	buf, err := proto.Marshal(&cMsg)
  	if err != nil {
  		return nil
  	}
  
  	gMsg := GossipMessage{
  		Type: MessageTypeCompound,
  		Data: buf,
  	}
  
  	buf, err = proto.Marshal(&gMsg)
  	if err != nil {
  		return nil
  	}
  
  	return buf
  }
docs: // makeCompoundMessage takes a list of messages and generates
  // a single compound message containing all of them