public boolean validate(final SignedData<CommitPayload> signedPayload) {
    if (!validators.contains(signedPayload.getAuthor())) {
      LOG.info("{}: did not originate from a recognized validator.", ERROR_PREFIX);
      return false;
    }

    final CommitPayload payload = signedPayload.getPayload();

    if (!payload.getRoundIdentifier().equals(targetRound)) {
      LOG.info(
          "{}: did not target expected round {} was {}",
          ERROR_PREFIX,
          targetRound,
          payload.getRoundIdentifier());
      return false;
    }

    if (!payload.getDigest().equals(expectedDigest)) {
      LOG.info(
          "{}: did not contain expected digest {} was {}",
          ERROR_PREFIX,
          expectedDigest,
          payload.getDigest());
      return false;
    }

    final Address commitSealCreator =
        Util.signatureToAddress(payload.getCommitSeal(), expectedCommitDigest);

    if (!commitSealCreator.equals(signedPayload.getAuthor())) {
      LOG.info(
          "{}: Seal was not created by the message transmitter {} was {}",
          ERROR_PREFIX,
          commitSealCreator,
          signedPayload.getAuthor());
      return false;
    }

    return true;
  }
Validate.

@param signedPayload the signed payload
@return the boolean
consensus/qbft-core/src/main/java/org/hyperledger/besu/consensus/qbft/core/validation/CommitValidator.java