private BlockHeader getBlockHeader(final long blockNumber) {
    return blockchain
        .getBlockHeader(blockNumber)
        .orElseThrow(
            () ->
                new IllegalArgumentException(
                    "Block header not found for block number: " + blockNumber));
  }
This method is experimental and should be used with caution. Simulate the processing of a block
given a header, a list of transactions, and blockOverrides and persist the WorldState

@param blockNumber the block number
@param transactions the transactions to include in the block
@param blockOverrides block overrides for the block
@param stateOverrides state overrides of the block
@return the PluginBlockSimulationResult
app/src/main/java/org/hyperledger/besu/services/BlockSimulatorServiceImpl.java