public void runAsyncBlock(
      final ProtocolContext protocolContext,
      final BlockHeader blockHeader,
      final List<Transaction> transactions,
      final Address miningBeneficiary,
      final BlockHashLookup blockHashLookup,
      final Wei blobGasPrice,
      final Executor executor) {

    completableFuturesForBackgroundTransactions = new CompletableFuture[transactions.size()];
    for (int i = 0; i < transactions.size(); i++) {
      final Transaction transaction = transactions.get(i);
      final int transactionLocation = i;
      /*
       * All transactions are executed in the background by copying the world state of the block on which the transactions need to be executed, ensuring that each one has its own accumulator.
       */
      CompletableFuture.runAsync(
          () ->
              runTransaction(
                  protocolContext,
                  blockHeader,
                  transactionLocation,
                  transaction,
                  miningBeneficiary,
                  blockHashLookup,
                  blobGasPrice),
          executor);
    }
  }
Initiates the parallel and optimistic execution of transactions within a block by creating a
copy of the world state for each transaction. This method processes transactions in a
non-blocking manner. Transactions are executed against their respective copies of the world
state, ensuring that the original world state passed as a parameter remains unmodified during
this process.

@param protocolContext the current context of the protocol
@param blockHeader Header of the current block containing the transactions.
@param transactions List of transactions to be processed.
@param miningBeneficiary Address of the beneficiary to receive mining rewards.
@param blockHashLookup Function for block hash lookup.
@param blobGasPrice Gas price for blob transactions.
@param executor The executor to use for asynchronous execution.
ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/ParallelizedConcurrentTransactionProcessor.java