protected DefaultSynchronizer createSynchronizer(
      final ProtocolSchedule protocolSchedule,
      final WorldStateStorageCoordinator worldStateStorageCoordinator,
      final ProtocolContext protocolContext,
      final EthContext ethContext,
      final PeerTaskExecutor peerTaskExecutor,
      final SyncState syncState,
      final EthProtocolManager ethProtocolManager,
      final PivotBlockSelector pivotBlockSelector) {

    return new DefaultSynchronizer(
        syncConfig,
        protocolSchedule,
        protocolContext,
        worldStateStorageCoordinator,
        ethProtocolManager.getBlockBroadcaster(),
        ethContext,
        peerTaskExecutor,
        syncState,
        dataDirectory,
        storageProvider,
        clock,
        metricsSystem,
        getFullSyncTerminationCondition(protocolContext.getBlockchain()),
        pivotBlockSelector);
  }
Create synchronizer synchronizer.

@param protocolSchedule the protocol schedule
@param worldStateStorageCoordinator the world state storage
@param protocolContext the protocol context
@param ethContext the eth context
@param peerTaskExecutor the PeerTaskExecutor
@param syncState the sync state
@param ethProtocolManager the eth protocol manager
@param pivotBlockSelector the pivot block selector
@return the synchronizer
app/src/main/java/org/hyperledger/besu/controller/BesuControllerBuilder.java