@Provides
  public ProtocolSchedule createProtocolSchedule(
      final ProtocolScheduleBuilder builder, final GenesisConfigOptions config) {
    final Optional<BigInteger> chainId = config.getChainId().or(builder::getDefaultChainId);
    DefaultProtocolSchedule protocolSchedule = new DefaultProtocolSchedule(chainId);
    builder.initSchedule(protocolSchedule, chainId);
    return protocolSchedule;
  }
Provides the protocol schedule.

@param builder the protocol schedule builder
@param config the genesis config options
@return the protocol schedule
ethereum/core/src/main/java/org/hyperledger/besu/ethereum/components/ProtocolScheduleModule.java