public static ProtocolSchedule fromConfig(
      final GenesisConfigOptions config,
      final boolean isRevertReasonEnabled,
      final EvmConfiguration evmConfiguration,
      final MiningConfiguration miningConfiguration,
      final BadBlockManager badBlockManager,
      final boolean isParallelTxProcessingEnabled,
      final MetricsSystem metricsSystem) {
    return fromConfig(
        config,
        Optional.of(isRevertReasonEnabled),
        Optional.of(evmConfiguration),
        miningConfiguration,
        badBlockManager,
        isParallelTxProcessingEnabled,
        metricsSystem);
  }
Create a Mainnet protocol schedule from a config object

@param config {@link GenesisConfigOptions} containing the config options for the milestone
    starting points
@param isRevertReasonEnabled whether storing the revert reason is for failed transactions
@param evmConfiguration how to configure the EVMs jumpdest cache
@param miningConfiguration the mining parameters
@param badBlockManager the cache to use to keep invalid blocks
@param isParallelTxProcessingEnabled indicates whether parallel transaction is enabled.
@return A configured mainnet protocol schedule
ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/MainnetProtocolSchedule.java