code: func (tx *transaction) FetchBlockHeader(hash *chainhash.Hash) ([]byte, error) {
  	return tx.FetchBlockRegion(&database.BlockRegion{
  		Hash:   hash,
  		Offset: 0,
  		Len:    blockHdrSize,
  	})
  }
docs: // FetchBlockHeader returns the raw serialized bytes for the block header
  // identified by the given hash.  The raw bytes are in the format returned by
  // Serialize on a wire.BlockHeader.
  //
  // Returns the following errors as required by the interface contract:
  //   - ErrBlockNotFound if the requested block hash does not exist
  //   - ErrTxClosed if the transaction has already been closed
  //   - ErrCorruption if the database has somehow become corrupted
  //
  // NOTE: The data returned by this function is only valid during a
  // database transaction.  Attempting to access it after a transaction
  // has ended results in undefined behavior.  This constraint prevents
  // additional data copies and allows support for memory-mapped database
  // implementations.
  //
  // This function is part of the database.Tx interface implementation.