public Address selectProposerForNextBlock(final BlockHeader parentHeader) {
    final List<Address> validatorSet =
        new ArrayList<>(validatorProvider.getValidatorsAfterBlock(parentHeader));

    final long nextBlockNumber = parentHeader.getNumber() + 1L;
    final int indexIntoValidators = (int) (nextBlockNumber % validatorSet.size());

    return validatorSet.get(indexIntoValidators);
  }
Determines which validator should create the block after that supplied.

@param parentHeader The header of the previously received block.
@return The address of the node which is to propose a block for the provided Round.
consensus/clique/src/main/java/org/hyperledger/besu/consensus/clique/blockcreation/CliqueProposerSelector.java