code: func newQueryResponse(n int, q *messageQuery) *QueryResponse {
  	resp := &QueryResponse{
  		deadline:  time.Now().Add(q.Timeout),
  		id:        q.ID,
  		lTime:     q.LTime,
  		respCh:    make(chan NodeResponse, n),
  		responses: make(map[string]struct{}),
  	}
  	if q.Ack() {
  		resp.ackCh = make(chan string, n)
  		resp.acks = make(map[string]struct{})
  	}
  	return resp
  }
docs: // newQueryResponse is used to construct a new query response