@Override
  protected ConsensusContext createConsensusContext(
      final Blockchain blockchain,
      final WorldStateArchive worldStateArchive,
      final ProtocolSchedule protocolSchedule) {
    final List<ForkSpec<ConsensusContext>> consensusContextSpecs =
        besuControllerBuilderSchedule.entrySet().stream()
            .map(
                e ->
                    new ForkSpec<>(
                        e.getKey(),
                        e.getValue()
                            .createConsensusContext(
                                blockchain, worldStateArchive, protocolSchedule)))
            .toList();
    final ForksSchedule<ConsensusContext> consensusContextsSchedule =
        new ForksSchedule<>(consensusContextSpecs);
    return new MigratingConsensusContext(consensusContextsSchedule);
  }
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