private CompletableFuture<PeerTaskResult<List<Block>>> completeBlock(
      final List<BlockHeader> headers) {
    if (headers.isEmpty()) {
      LOG.debug("header result is empty.");
      return CompletableFuture.failedFuture(new IncompleteResultsException());
    }

    return executeSubTask(
        () -> {
          final GetBodiesFromPeerTask task =
              GetBodiesFromPeerTask.forHeaders(
                  protocolSchedule, ethContext, headers, metricsSystem);
          assignedPeer.ifPresent(task::assignPeer);
          return task.run();
        });
  }
Downloads a block from a peer. Will complete exceptionally if block cannot be downloaded.
ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/task/GetBlockFromPeerTask.java