@Override
  public boolean validateBlockForSyncing(
      final ProtocolContext context,
      final Block block,
      final List<TransactionReceipt> receipts,
      final HeaderValidationMode headerValidationMode,
      final HeaderValidationMode ommerValidationMode,
      final BodyValidationMode bodyValidationMode) {

    if (bodyValidationMode == BodyValidationMode.FULL) {
      throw new UnsupportedOperationException(
          "Full body validation is not supported for syncing blocks");
    }

    final BlockHeader header = block.getHeader();
    if (!blockHeaderValidator.validateHeader(header, context, headerValidationMode)) {
      String description = String.format("Failed header validation (%s)", headerValidationMode);
      context
          .getBadBlockManager()
          .addBadBlock(block, BadBlockCause.fromValidationFailure(description));
      return false;
    }

    if (bodyValidationMode == BodyValidationMode.NONE) {
      return true;
    }

    if (!blockBodyValidator.validateBodyLight(context, block, receipts, ommerValidationMode)) {
      context
          .getBadBlockManager()
          .addBadBlock(
              block, BadBlockCause.fromValidationFailure("Failed body validation (light)"));
      return false;
    }
    return true;
  }
Processes a block, returning the result of the processing

@param context the ProtocolContext
@param worldState the world state for the parent block state root hash
@param block the block to be processed
@return the result of processing the block
ethereum/core/src/main/java/org/hyperledger/besu/ethereum/MainnetBlockValidator.java