@Override
  public BlockHashLookup createBlockHashLookup(
      final Blockchain blockchain, final ProcessableBlockHeader blockHeader) {
    return new BlockchainBasedBlockHashLookup(blockHeader, blockchain);
  }
Creates a new BlockHashLookup function that calculates and caches block hashes by number
following the chain for a specific branch. This is used by {@link BlockHashOperation} and
ensures that the correct block hash is returned even when the block being imported is on a
fork.

<p>A new BlockHashCache must be created for each block being processed but should be reused for
all transactions within that block.
ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/blockhash/FrontierBlockHashProcessor.java