private void confirmBlock(final long blockNumber) {
    final PivotBlockConfirmer pivotBlockConfirmationTask =
        new PivotBlockConfirmer(
            protocolSchedule,
            ethContext,
            metricsSystem,
            synchronizerConfiguration,
            pivotBlockNumber.get(),
            peersToQuery,
            MAX_QUERY_RETRIES_PER_PEER);
    final PivotBlockConfirmer preexistingTask =
        confirmationTasks.putIfAbsent(blockNumber, pivotBlockConfirmationTask);
    if (preexistingTask != null) {
      // We already set up a task to confirm this block
      return;
    }

    pivotBlockConfirmationTask.confirmPivotBlock().whenComplete(this::handleConfirmationResult);
  }
This task attempts to find a non-controversial pivot block by confirming the pivot block number
with a minimum number of peers. If a particular pivot block cannot be confirmed, the pivot block
number is pushed back and the confirmation process repeats. If a maximum number of retries is
reached, the task fails with a {@code FastSyncException} containing {@code
FastSyncError.PIVOT_BLOCK_HEADER_MISMATCH}.
ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/PivotBlockRetriever.java