code: func (c *channel) pubMsgToMsgProto(pm *pb.PubMsg, seq uint64) *pb.MsgProto {
  	m := &pb.MsgProto{
  		Sequence:  seq,
  		Subject:   pm.Subject,
  		Reply:     pm.Reply,
  		Data:      pm.Data,
  		Timestamp: time.Now().UnixNano(),
  	}
  	if c.lTimestamp > 0 && m.Timestamp < c.lTimestamp {
  		m.Timestamp = c.lTimestamp
  	}
  	c.lTimestamp = m.Timestamp
  	return m
  }
docs: // pubMsgToMsgProto converts a PubMsg to a MsgProto and assigns a timestamp
  // which is monotonic with respect to the channel.