private Optional<AccountPermissioningController> buildAccountPermissioningController(
      final Optional<PermissioningConfiguration> permissioningConfiguration,
      final TransactionSimulator transactionSimulator) {

    if (permissioningConfiguration.isPresent()
        || permissioningService.getTransactionPermissioningProviders().size() > 0) {
      final PermissioningConfiguration configuration =
          permissioningConfiguration.orElse(new PermissioningConfiguration(Optional.empty()));
      final Optional<AccountPermissioningController> accountPermissioningController =
          AccountPermissioningControllerFactory.create(
              configuration,
              transactionSimulator,
              metricsSystem,
              permissioningService.getTransactionPermissioningProviders());

      accountPermissioningController.ifPresent(
          permissioningController ->
              besuController
                  .getProtocolSchedule()
                  .setPermissionTransactionFilter(permissioningController::isPermitted));

      return accountPermissioningController;
    } else {
      return Optional.empty();
    }
  }
Build Runner instance.

@return the runner
app/src/main/java/org/hyperledger/besu/RunnerBuilder.java