@Override
  protected EthProtocolManager createEthProtocolManager(
      final ProtocolContext protocolContext,
      final SynchronizerConfiguration synchronizerConfiguration,
      final TransactionPool transactionPool,
      final EthProtocolConfiguration ethereumWireProtocolConfiguration,
      final EthPeers ethPeers,
      final EthContext ethContext,
      final EthMessages ethMessages,
      final EthScheduler scheduler,
      final List<PeerValidator> peerValidators,
      final Optional<MergePeerFilter> mergePeerFilter,
      final ForkIdManager forkIdManager) {
    besuControllerBuilderSchedule
        .values()
        .forEach(
            b ->
                b.createEthProtocolManager(
                    protocolContext,
                    synchronizerConfiguration,
                    transactionPool,
                    ethereumWireProtocolConfiguration,
                    ethPeers,
                    ethContext,
                    ethMessages,
                    scheduler,
                    peerValidators,
                    mergePeerFilter,
                    forkIdManager));
    return super.createEthProtocolManager(
        protocolContext,
        synchronizerConfiguration,
        transactionPool,
        ethereumWireProtocolConfiguration,
        ethPeers,
        ethContext,
        ethMessages,
        scheduler,
        peerValidators,
        mergePeerFilter,
        forkIdManager);
  }
Instantiates a new Consensus schedule besu controller builder. Visible for testing.

@param besuControllerBuilderSchedule the besu controller builder schedule
@param combinedProtocolScheduleFactory the combined protocol schedule factory
app/src/main/java/org/hyperledger/besu/controller/ConsensusScheduleBesuControllerBuilder.java