> ## Documentation Index
> Fetch the complete documentation index at: https://docs.canton.network/llms.txt
> Use this file to discover all available pages before exploring further.

# Splice.DSO.DecentralizedSynchronizer

> Documentation for Splice.DSO.DecentralizedSynchronizer

Data structures and contracts related managing the decentralized synchronizer.

## Data Types

<div id="type-splice-dso-decentralizedsynchronizer-dsodecentralizedsynchronizerconfig-15965">
  **data** DsoDecentralizedSynchronizerConfig
</div>

> The decentralized synchronizer consists of a series of actual synchronizers. New synchronizers are created by the SVs for the rare case of needing to roll-out a BFT protocol upgrade that cannot be rolled out in a backwards compatible fashion.
>
> Note that synchronizers themselves are formed by a cluster of nodes run by the SVs. As can be seen form `SynchronizerNodeConfig` each sv runs multiple different kinds of physical nodes.
>
> <div id="constr-splice-dso-decentralizedsynchronizer-dsodecentralizedsynchronizerconfig-75458">
>   DsoDecentralizedSynchronizerConfig
> </div>
>
> > | Field                | Type                                                                                                                                                                                      | Description                                                                 |
> > | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
> > | synchronizers        | [Map](/appdev/reference/daml-standard-library/prelude#type-da-internal-lf-map-90052) [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952) SynchronizerConfig | The actual synchronizers, numbered sequentially.                            |
> > | lastSynchronizerId   | [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)                                                                                                         | The last allocated synchronizer Id.                                         |
> > | activeSynchronizerId | [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)                                                                                                         | The synchronizer to be used for managing standard DSO and Amulet workflows. |
>
> **instance** [Eq](/appdev/reference/daml-standard-library/prelude#class-ghc-classes-eq-22713) DsoDecentralizedSynchronizerConfig
>
> **instance** [Show](/appdev/reference/daml-standard-library/prelude#class-ghc-show-show-65360) DsoDecentralizedSynchronizerConfig
>
> **instance** GetField "activeSynchronizerId" DsoDecentralizedSynchronizerConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** GetField "decentralizedSynchronizer" DsoRulesConfig DsoDecentralizedSynchronizerConfig
>
> **instance** GetField "lastSynchronizerId" DsoDecentralizedSynchronizerConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** GetField "synchronizers" DsoDecentralizedSynchronizerConfig ([Map](/appdev/reference/daml-standard-library/prelude#type-da-internal-lf-map-90052) [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952) SynchronizerConfig)
>
> **instance** SetField "activeSynchronizerId" DsoDecentralizedSynchronizerConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** SetField "decentralizedSynchronizer" DsoRulesConfig DsoDecentralizedSynchronizerConfig
>
> **instance** SetField "lastSynchronizerId" DsoDecentralizedSynchronizerConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** SetField "synchronizers" DsoDecentralizedSynchronizerConfig ([Map](/appdev/reference/daml-standard-library/prelude#type-da-internal-lf-map-90052) [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952) SynchronizerConfig)
>
> **instance** Patchable DsoDecentralizedSynchronizerConfig

<div id="type-splice-dso-decentralizedsynchronizer-legacysequencerconfig-76078">
  **data** LegacySequencerConfig
</div>

> Config for a legacy sequencer, i.e., a migration id that is still up but paused. This is useful to allow validators to catch up.
>
> <div id="constr-splice-dso-decentralizedsynchronizer-legacysequencerconfig-74515">
>   LegacySequencerConfig
> </div>
>
> > | Field       | Type                                                                              | Description                                                    |
> > | ----------- | --------------------------------------------------------------------------------- | -------------------------------------------------------------- |
> > | migrationId | [Int](/appdev/reference/daml-standard-library/prelude#type-ghc-types-int-37261)   | The synchronizer migration id corresponding to this sequencer. |
> > | sequencerId | [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952) | The id of the sequencer.                                       |
> > | url         | [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952) | The public accessible url of the sequencer.                    |
>
> **instance** [Eq](/appdev/reference/daml-standard-library/prelude#class-ghc-classes-eq-22713) LegacySequencerConfig
>
> **instance** [Show](/appdev/reference/daml-standard-library/prelude#class-ghc-show-show-65360) LegacySequencerConfig
>
> **instance** GetField "legacySequencerConfig" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) LegacySequencerConfig)
>
> **instance** GetField "migrationId" LegacySequencerConfig [Int](/appdev/reference/daml-standard-library/prelude#type-ghc-types-int-37261)
>
> **instance** GetField "sequencerId" LegacySequencerConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** GetField "url" LegacySequencerConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** SetField "legacySequencerConfig" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) LegacySequencerConfig)
>
> **instance** SetField "migrationId" LegacySequencerConfig [Int](/appdev/reference/daml-standard-library/prelude#type-ghc-types-int-37261)
>
> **instance** SetField "sequencerId" LegacySequencerConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** SetField "url" LegacySequencerConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** Patchable LegacySequencerConfig

<div id="type-splice-dso-decentralizedsynchronizer-mediatorconfig-99298">
  **data** MediatorConfig
</div>

> Config for a mediator.
>
> <div id="constr-splice-dso-decentralizedsynchronizer-mediatorconfig-88513">
>   MediatorConfig
> </div>
>
> > | Field      | Type                                                                              | Description             |
> > | ---------- | --------------------------------------------------------------------------------- | ----------------------- |
> > | mediatorId | [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952) | The id of the mediator. |
>
> **instance** [Eq](/appdev/reference/daml-standard-library/prelude#class-ghc-classes-eq-22713) MediatorConfig
>
> **instance** [Show](/appdev/reference/daml-standard-library/prelude#class-ghc-show-show-65360) MediatorConfig
>
> **instance** GetField "mediator" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) MediatorConfig)
>
> **instance** GetField "mediatorId" MediatorConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** SetField "mediator" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) MediatorConfig)
>
> **instance** SetField "mediatorId" MediatorConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** Patchable MediatorConfig

<div id="type-splice-dso-decentralizedsynchronizer-physicalsynchronizernodeconfig-61630">
  **data** PhysicalSynchronizerNodeConfig
</div>

> <div id="constr-splice-dso-decentralizedsynchronizer-physicalsynchronizernodeconfig-31009">
>   PhysicalSynchronizerNodeConfig
> </div>
>
> > | Field     | Type                                                                                                                          | Description                                              |
> > | --------- | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
> > | sequencer | [Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) SequencerConnectionConfig | The configuration of this sv's optional local sequencer. |
>
> **instance** [Eq](/appdev/reference/daml-standard-library/prelude#class-ghc-classes-eq-22713) PhysicalSynchronizerNodeConfig
>
> **instance** [Show](/appdev/reference/daml-standard-library/prelude#class-ghc-show-show-65360) PhysicalSynchronizerNodeConfig
>
> **instance** GetField "sequencer" PhysicalSynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) SequencerConnectionConfig)
>
> **instance** SetField "sequencer" PhysicalSynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) SequencerConnectionConfig)
>
> **instance** Patchable PhysicalSynchronizerNodeConfig

<div id="type-splice-dso-decentralizedsynchronizer-physicalsynchronizernodeconfigmap-79969">
  **type** PhysicalSynchronizerNodeConfigMap
  \= [Map](/appdev/reference/daml-standard-library/prelude#type-da-internal-lf-map-90052) [Int](/appdev/reference/daml-standard-library/prelude#type-ghc-types-int-37261) PhysicalSynchronizerNodeConfig

  A map from physical synchronizer serial to the configuration of a sv's node for that physical synchronizer.

  **instance** GetField "physicalSynchronizers" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) PhysicalSynchronizerNodeConfigMap)

  **instance** SetField "physicalSynchronizers" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) PhysicalSynchronizerNodeConfigMap)
</div>

<div id="type-splice-dso-decentralizedsynchronizer-scanconfig-87910">
  **data** ScanConfig
</div>

> Config for a Scan instance.
>
> <div id="constr-splice-dso-decentralizedsynchronizer-scanconfig-27525">
>   ScanConfig
> </div>
>
> > | Field     | Type                                                                              | Description                                       |
> > | --------- | --------------------------------------------------------------------------------- | ------------------------------------------------- |
> > | publicUrl | [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952) | The publicly accessible URL of the Scan instance. |
>
> **instance** [Eq](/appdev/reference/daml-standard-library/prelude#class-ghc-classes-eq-22713) ScanConfig
>
> **instance** [Show](/appdev/reference/daml-standard-library/prelude#class-ghc-show-show-65360) ScanConfig
>
> **instance** GetField "publicUrl" ScanConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** GetField "scan" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) ScanConfig)
>
> **instance** SetField "publicUrl" ScanConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** SetField "scan" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) ScanConfig)
>
> **instance** Patchable ScanConfig

<div id="type-splice-dso-decentralizedsynchronizer-sequencerconfig-38423">
  **data** SequencerConfig
</div>

> Config for a sequencer.
>
> <div id="constr-splice-dso-decentralizedsynchronizer-sequencerconfig-73098">
>   SequencerConfig
> </div>
>
> > | Field          | Type                                                                                                                                                                                       | Description                                                                                                       |
> > | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------- |
> > | migrationId    | [Int](/appdev/reference/daml-standard-library/prelude#type-ghc-types-int-37261)                                                                                                            | The synchronizer migration id corresponding to this sequencer.                                                    |
> > | sequencerId    | [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)                                                                                                          | The id of the sequencer.                                                                                          |
> > | url            | [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)                                                                                                          | The public accessible url of the sequencer.                                                                       |
> > | availableAfter | [Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) [Time](/appdev/reference/daml-standard-library/prelude#type-da-internal-lf-time-63886) | Any participant should subscribe this sequencer after this time. ^ If not set the sequencer is not yet accessible |
>
> **instance** [Eq](/appdev/reference/daml-standard-library/prelude#class-ghc-classes-eq-22713) SequencerConfig
>
> **instance** [Show](/appdev/reference/daml-standard-library/prelude#class-ghc-show-show-65360) SequencerConfig
>
> **instance** GetField "availableAfter" SequencerConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) [Time](/appdev/reference/daml-standard-library/prelude#type-da-internal-lf-time-63886))
>
> **instance** GetField "migrationId" SequencerConfig [Int](/appdev/reference/daml-standard-library/prelude#type-ghc-types-int-37261)
>
> **instance** GetField "sequencer" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) SequencerConfig)
>
> **instance** GetField "sequencerId" SequencerConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** GetField "url" SequencerConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** SetField "availableAfter" SequencerConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) [Time](/appdev/reference/daml-standard-library/prelude#type-da-internal-lf-time-63886))
>
> **instance** SetField "migrationId" SequencerConfig [Int](/appdev/reference/daml-standard-library/prelude#type-ghc-types-int-37261)
>
> **instance** SetField "sequencer" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) SequencerConfig)
>
> **instance** SetField "sequencerId" SequencerConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** SetField "url" SequencerConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** Patchable SequencerConfig

<div id="type-splice-dso-decentralizedsynchronizer-sequencerconnectionconfig-44977">
  **data** SequencerConnectionConfig
</div>

> Connection config for a sequencer.
>
> <div id="constr-splice-dso-decentralizedsynchronizer-sequencerconnectionconfig-40632">
>   SequencerConnectionConfig
> </div>
>
> > | Field | Type                                                                              | Description                                 |
> > | ----- | --------------------------------------------------------------------------------- | ------------------------------------------- |
> > | url   | [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952) | The public accessible url of the sequencer. |
>
> **instance** [Eq](/appdev/reference/daml-standard-library/prelude#class-ghc-classes-eq-22713) SequencerConnectionConfig
>
> **instance** [Show](/appdev/reference/daml-standard-library/prelude#class-ghc-show-show-65360) SequencerConnectionConfig
>
> **instance** GetField "sequencer" PhysicalSynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) SequencerConnectionConfig)
>
> **instance** GetField "url" SequencerConnectionConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** SetField "sequencer" PhysicalSynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) SequencerConnectionConfig)
>
> **instance** SetField "url" SequencerConnectionConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** Patchable SequencerConnectionConfig

<div id="type-splice-dso-decentralizedsynchronizer-sequenceridentityconfig-4269">
  **data** SequencerIdentityConfig
</div>

> Config for a sequencer.
>
> <div id="constr-splice-dso-decentralizedsynchronizer-sequenceridentityconfig-97016">
>   SequencerIdentityConfig
> </div>
>
> > | Field          | Type                                                                                                                                                                                       | Description                                                                                                       |
> > | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------- |
> > | sequencerId    | [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)                                                                                                          | The id of the sequencer.                                                                                          |
> > | availableAfter | [Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) [Time](/appdev/reference/daml-standard-library/prelude#type-da-internal-lf-time-63886) | Any participant should subscribe this sequencer after this time. ^ If not set the sequencer is not yet accessible |
>
> **instance** [Eq](/appdev/reference/daml-standard-library/prelude#class-ghc-classes-eq-22713) SequencerIdentityConfig
>
> **instance** [Show](/appdev/reference/daml-standard-library/prelude#class-ghc-show-show-65360) SequencerIdentityConfig
>
> **instance** GetField "availableAfter" SequencerIdentityConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) [Time](/appdev/reference/daml-standard-library/prelude#type-da-internal-lf-time-63886))
>
> **instance** GetField "sequencerId" SequencerIdentityConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** GetField "sequencerIdentity" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) SequencerIdentityConfig)
>
> **instance** SetField "availableAfter" SequencerIdentityConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) [Time](/appdev/reference/daml-standard-library/prelude#type-da-internal-lf-time-63886))
>
> **instance** SetField "sequencerId" SequencerIdentityConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** SetField "sequencerIdentity" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) SequencerIdentityConfig)
>
> **instance** Patchable SequencerIdentityConfig

<div id="type-splice-dso-decentralizedsynchronizer-synchronizerconfig-49093">
  **data** SynchronizerConfig
</div>

> The DSO-level configuration of a synchronizer. This contains the shared parameters of the synchronizer.
>
> <div id="constr-splice-dso-decentralizedsynchronizer-synchronizerconfig-62326">
>   SynchronizerConfig
> </div>
>
> > | Field                               | Type                                                                                                                                                                                | Description                                                                                                                      |
> > | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
> > | state                               | SynchronizerState                                                                                                                                                                   | The state of this synchronizer                                                                                                   |
> > | cometBftGenesisJson                 | [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)                                                                                                   | The CometBftGenesis json value required for new svs to bring up their CometBft nodes for this synchronizer.                      |
> > | acsCommitmentReconciliationInterval | [Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) [Int](/appdev/reference/daml-standard-library/prelude#type-ghc-types-int-37261) | Participants connected to the decentralized synchronizer exchange ACS commitment messages every reconciliation interval seconds. |
>
> **instance** [Eq](/appdev/reference/daml-standard-library/prelude#class-ghc-classes-eq-22713) SynchronizerConfig
>
> **instance** [Show](/appdev/reference/daml-standard-library/prelude#class-ghc-show-show-65360) SynchronizerConfig
>
> **instance** GetField "acsCommitmentReconciliationInterval" SynchronizerConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) [Int](/appdev/reference/daml-standard-library/prelude#type-ghc-types-int-37261))
>
> **instance** GetField "cometBftGenesisJson" SynchronizerConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** GetField "state" SynchronizerConfig SynchronizerState
>
> **instance** GetField "synchronizers" DsoDecentralizedSynchronizerConfig ([Map](/appdev/reference/daml-standard-library/prelude#type-da-internal-lf-map-90052) [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952) SynchronizerConfig)
>
> **instance** SetField "acsCommitmentReconciliationInterval" SynchronizerConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) [Int](/appdev/reference/daml-standard-library/prelude#type-ghc-types-int-37261))
>
> **instance** SetField "cometBftGenesisJson" SynchronizerConfig [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952)
>
> **instance** SetField "state" SynchronizerConfig SynchronizerState
>
> **instance** SetField "synchronizers" DsoDecentralizedSynchronizerConfig ([Map](/appdev/reference/daml-standard-library/prelude#type-da-internal-lf-map-90052) [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952) SynchronizerConfig)
>
> **instance** Patchable SynchronizerConfig

<div id="type-splice-dso-decentralizedsynchronizer-synchronizernodeconfig-10457">
  **data** SynchronizerNodeConfig
</div>

> The configuration of a sv's node for a particular synchronizer.
>
> <div id="constr-splice-dso-decentralizedsynchronizer-synchronizernodeconfig-64798">
>   SynchronizerNodeConfig
> </div>
>
> > | Field                 | Type                                                                                                                                  | Description                                                                                                                                       |
> > | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
> > | cometBft              | CometBftConfig                                                                                                                        | The configuration of this sv's CometBFT nodes and keys.                                                                                           |
> > | sequencer             | [Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) SequencerConfig                   | The configuration of this sv's optional local sequencer.                                                                                          |
> > | mediator              | [Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) MediatorConfig                    | The configuration of this sv's optional local mediator.                                                                                           |
> > | scan                  | [Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) ScanConfig                        | The configuration of this sv's optional Scan instance.                                                                                            |
> > | legacySequencerConfig | [Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) LegacySequencerConfig             | The legacy sequencer config for the prior migration id that is still up. We store this so it can be published on scan and validators can catchup. |
> > | sequencerIdentity     | [Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) SequencerIdentityConfig           | The configuration of this sv's optional local sequencer.                                                                                          |
> > | physicalSynchronizers | [Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) PhysicalSynchronizerNodeConfigMap | The synchronizer node configs for the currently running physical synchronizers.                                                                   |
>
> **instance** [Eq](/appdev/reference/daml-standard-library/prelude#class-ghc-classes-eq-22713) SynchronizerNodeConfig
>
> **instance** [Show](/appdev/reference/daml-standard-library/prelude#class-ghc-show-show-65360) SynchronizerNodeConfig
>
> **instance** GetField "cometBft" SynchronizerNodeConfig CometBftConfig
>
> **instance** GetField "legacySequencerConfig" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) LegacySequencerConfig)
>
> **instance** GetField "mediator" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) MediatorConfig)
>
> **instance** GetField "newNodeConfig" DsoRules\_SetSynchronizerNodeConfig SynchronizerNodeConfig
>
> **instance** GetField "physicalSynchronizers" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) PhysicalSynchronizerNodeConfigMap)
>
> **instance** GetField "scan" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) ScanConfig)
>
> **instance** GetField "sequencer" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) SequencerConfig)
>
> **instance** GetField "sequencerIdentity" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) SequencerIdentityConfig)
>
> **instance** SetField "cometBft" SynchronizerNodeConfig CometBftConfig
>
> **instance** SetField "legacySequencerConfig" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) LegacySequencerConfig)
>
> **instance** SetField "mediator" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) MediatorConfig)
>
> **instance** SetField "newNodeConfig" DsoRules\_SetSynchronizerNodeConfig SynchronizerNodeConfig
>
> **instance** SetField "physicalSynchronizers" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) PhysicalSynchronizerNodeConfigMap)
>
> **instance** SetField "scan" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) ScanConfig)
>
> **instance** SetField "sequencer" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) SequencerConfig)
>
> **instance** SetField "sequencerIdentity" SynchronizerNodeConfig ([Optional](/appdev/reference/daml-standard-library/prelude#type-da-internal-prelude-optional-37153) SequencerIdentityConfig)
>
> **instance** Patchable SynchronizerNodeConfig

<div id="type-splice-dso-decentralizedsynchronizer-synchronizernodeconfiglimits-3659">
  **data** SynchronizerNodeConfigLimits
</div>

> <div id="constr-splice-dso-decentralizedsynchronizer-synchronizernodeconfiglimits-16072">
>   SynchronizerNodeConfigLimits
> </div>
>
> > | Field    | Type                 | Description |
> > | -------- | -------------------- | ----------- |
> > | cometBft | CometBftConfigLimits |             |
>
> **instance** [Eq](/appdev/reference/daml-standard-library/prelude#class-ghc-classes-eq-22713) SynchronizerNodeConfigLimits
>
> **instance** [Show](/appdev/reference/daml-standard-library/prelude#class-ghc-show-show-65360) SynchronizerNodeConfigLimits
>
> **instance** GetField "cometBft" SynchronizerNodeConfigLimits CometBftConfigLimits
>
> **instance** GetField "synchronizerNodeConfigLimits" DsoRulesConfig SynchronizerNodeConfigLimits
>
> **instance** SetField "cometBft" SynchronizerNodeConfigLimits CometBftConfigLimits
>
> **instance** SetField "synchronizerNodeConfigLimits" DsoRulesConfig SynchronizerNodeConfigLimits
>
> **instance** Patchable SynchronizerNodeConfigLimits

<div id="type-splice-dso-decentralizedsynchronizer-synchronizernodeconfigmap-59848">
  **type** SynchronizerNodeConfigMap
  \= [Map](/appdev/reference/daml-standard-library/prelude#type-da-internal-lf-map-90052) [Text](/appdev/reference/daml-standard-library/prelude#type-ghc-types-text-51952) SynchronizerNodeConfig

  A map from synchronizer-ids to the configuration of a sv's node for this synchronizer.

  **instance** GetField "sv1SynchronizerNodes" DsoBootstrap SynchronizerNodeConfigMap

  **instance** GetField "synchronizerNodes" NodeState SynchronizerNodeConfigMap

  **instance** SetField "sv1SynchronizerNodes" DsoBootstrap SynchronizerNodeConfigMap

  **instance** SetField "synchronizerNodes" NodeState SynchronizerNodeConfigMap
</div>

<div id="type-splice-dso-decentralizedsynchronizer-synchronizerstate-25483">
  **data** SynchronizerState
</div>

> The state of a synchronizer.
>
> <div id="constr-splice-dso-decentralizedsynchronizer-dsbootstrapping-64886">
>   DS\_Bootstrapping
> </div>
>
> > The synchronizer is still being bootstrapped, and SVs are required to provision their nodes for it.
>
> <div id="constr-splice-dso-decentralizedsynchronizer-dsoperational-99130">
>   DS\_Operational
> </div>
>
> > The synchronizer is operational, and thus can be used as the active synchronizer.
>
> <div id="constr-splice-dso-decentralizedsynchronizer-dsdecomissioned-12812">
>   DS\_Decomissioned
> </div>
>
> > The synchronizer has been decommissioned and svs are now allowed to shutdown their nodes for that synchronizer. We track this state explicitly instead of just deleting the synchronizer config, as decomissioning likely takes a while, and we want to avoid confusion among SV operators when they see errors raised from some of their synchronizer nodes.
>
> <div id="constr-splice-dso-decentralizedsynchronizer-extsynchronizerstate-26922">
>   ExtSynchronizerState
> </div>
>
> > Extension constructor to work around the current lack of upgrading for variants in Daml 3.0. Will serve as the default value in a containing record in case of an extension.
>
> **instance** [Eq](/appdev/reference/daml-standard-library/prelude#class-ghc-classes-eq-22713) SynchronizerState
>
> **instance** [Show](/appdev/reference/daml-standard-library/prelude#class-ghc-show-show-65360) SynchronizerState
>
> **instance** GetField "state" SynchronizerConfig SynchronizerState
>
> **instance** SetField "state" SynchronizerConfig SynchronizerState
>
> **instance** Patchable SynchronizerState

## Functions

<div id="function-splice-dso-decentralizedsynchronizer-nosynchronizernodes-89430">
  noSynchronizerNodes
  : SynchronizerNodeConfigMap
</div>

<div id="function-splice-dso-decentralizedsynchronizer-emptysynchronizernodeconfig-56591">
  emptySynchronizerNodeConfig
  : SynchronizerNodeConfig
</div>

<div id="function-splice-dso-decentralizedsynchronizer-validsynchronizernodeconfig-25090">
  validSynchronizerNodeConfig
  : SynchronizerNodeConfigLimits -> SynchronizerNodeConfig -> [Bool](/appdev/reference/daml-standard-library/prelude#type-ghc-types-bool-66265)
</div>

<div id="function-splice-dso-decentralizedsynchronizer-defaultsynchronizernodeconfiglimits-67119">
  defaultSynchronizerNodeConfigLimits
  : SynchronizerNodeConfigLimits
</div>
