code: func (h *blockHeaderStore) readHeader(height uint32) (wire.BlockHeader, error) {
  	var header wire.BlockHeader
  
  	// Each header is 80 bytes, so using this information, we'll seek a
  	// distance to cover that height based on the size of block headers.
  	seekDistance := uint64(height) * 80
  
  	// With the distance calculated, we'll raw a raw header start from that
  	// offset.
  	rawHeader, err := h.readRaw(seekDistance)
  	if err != nil {
  		return header, err
  	}
  	headerReader := bytes.NewReader(rawHeader)
  
  	// Finally, decode the raw bytes into a proper bitcoin header.
  	if err := header.Deserialize(headerReader); err != nil {
  		return header, err
  	}
  
  	return header, nil
  }
docs: // readHeader reads a full block header from the flat-file. The header read is
  // determined by the hight value.