code: func (h *blockHeaderStore) FetchHeader(hash *chainhash.Hash) (*wire.BlockHeader, uint32, error) {
  	// Lock store for read.
  	h.mtx.RLock()
  	defer h.mtx.RUnlock()
  
  	// First, we'll query the index to obtain the block height of the
  	// passed block hash.
  	height, err := h.heightFromHash(hash)
  	if err != nil {
  		return nil, 0, err
  	}
  
  	// With the height known, we can now read the header from disk.
  	header, err := h.readHeader(height)
  	if err != nil {
  		return nil, 0, err
  	}
  
  	return &header, height, nil
  }
docs: // FetchHeader attempts to retrieve a block header determined by the passed
  // block height.
  //
  // NOTE: Part of the BlockHeaderStore interface.