Skip to content
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,19 @@ jobs:
protocol_version: ${{ inputs.protocol_version }}
secrets: inherit

scala_test_sync_operator_lsu:
uses: ./.github/workflows/build.scala_test.yml
with:
runs_on: self-hosted-k8s-medium
test_names_file: 'test-full-class-names-sync-operator-lsu.log'
start_canton_options: -w -t
parallelism: 1
test_name: sync-operator-lsu
commit_sha: ${{ inputs.commit_sha }}
daml_base_version: ${{ inputs.daml_base_version }}
protocol_version: ${{ inputs.protocol_version }}
secrets: inherit

scala_test_logical_sync_upgrade:
uses: ./.github/workflows/build.scala_test.yml
with:
Expand Down Expand Up @@ -345,6 +358,7 @@ jobs:
- scala_test_resource_intensive
- scala_test_record_time_tolerance
- scala_test_sync_operator
- scala_test_sync_operator_lsu
- scala_test_logical_sync_upgrade
- scala_test_roll_forward_lsu
- scala_test_with_cometbft
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,10 @@ import org.lfdecentralizedtrust.splice.sv.automation.singlesv.offboarding.{
}
import org.lfdecentralizedtrust.splice.sv.config.*
import org.lfdecentralizedtrust.splice.sv.SvAppClientConfig
import org.lfdecentralizedtrust.splice.syncoperator.config.SyncOperatorAppBackendConfig
import org.lfdecentralizedtrust.splice.syncoperator.config.{
SyncOperatorAppBackendConfig,
SyncOperatorSynchronizerNodeConfig,
}
import org.lfdecentralizedtrust.splice.validator.config.{
AnsAppExternalClientConfig,
ValidatorAppBackendConfig,
Expand Down Expand Up @@ -558,8 +561,10 @@ object ConfigTransforms {
conf
.focus(_.participantClient)
.modify(portTransform(bump, _))
.focus(_.sequencer.adminApi)
.focus(_.synchronizerNodes.current)
.modify(portTransform(bump, _))
.focus(_.synchronizerNodes.successor)
.modify(_.map(portTransform(bump, _)))
else conf
),
)
Expand Down Expand Up @@ -914,6 +919,19 @@ object ConfigTransforms {
private def portTransform(bump: Int, c: SvMediatorConfig): SvMediatorConfig =
c.focus(_.adminApi).modify(portTransform(bump, _))

private def portTransform(
bump: Int,
c: SyncOperatorSynchronizerNodeConfig,
): SyncOperatorSynchronizerNodeConfig =
c.focus(_.sequencer.adminApi)
.modify(portTransform(bump, _))
.focus(_.sequencer.internalApi)
.modify(_.map(portTransform(bump, _)))
.focus(_.sequencer.externalPublicApiUrl)
.modify(_.map(bumpUrl(bump, _)))
.focus(_.mediator)
.modify(_.map(_.focus(_.adminApi).modify(portTransform(bump, _))))

private def portTransform(
bump: Int,
c: SvSynchronizerNodeConfig,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,11 @@ import org.lfdecentralizedtrust.splice.sv.config.SvOnboardingConfig.FoundDso
import org.lfdecentralizedtrust.splice.syncoperator.config.{
SyncOperatorAppBackendConfig,
SyncOperatorAppClientConfig,
SyncOperatorLsuConfig,
SyncOperatorMediatorConfig,
SyncOperatorSequencerConfig,
SyncOperatorSynchronizerNodeConfig,
SyncOperatorSynchronizerNodesConfig,
}
import org.lfdecentralizedtrust.splice.util.{
Codec,
Expand Down Expand Up @@ -998,6 +1002,16 @@ object SpliceConfig {
deriveReader[SplitwellAppClientConfig]
implicit val syncOperatorSequencerConfigReader: ConfigReader[SyncOperatorSequencerConfig] =
deriveReader[SyncOperatorSequencerConfig]
implicit val syncOperatorMediatorConfigReader: ConfigReader[SyncOperatorMediatorConfig] =
deriveReader[SyncOperatorMediatorConfig]
implicit val syncOperatorSynchronizerNodeConfigReader
: ConfigReader[SyncOperatorSynchronizerNodeConfig] =
deriveReader[SyncOperatorSynchronizerNodeConfig]
implicit val syncOperatorSynchronizerNodesConfigReader
: ConfigReader[SyncOperatorSynchronizerNodesConfig] =
deriveReader[SyncOperatorSynchronizerNodesConfig]
implicit val syncOperatorLsuConfigReader: ConfigReader[SyncOperatorLsuConfig] =
deriveReader[SyncOperatorLsuConfig]
implicit val syncOperatorConfigReader: ConfigReader[SyncOperatorAppBackendConfig] =
deriveReader[SyncOperatorAppBackendConfig]
implicit val syncOperatorClientConfigReader: ConfigReader[SyncOperatorAppClientConfig] =
Expand Down Expand Up @@ -1330,6 +1344,16 @@ object SpliceConfig {
deriveWriter[SplitwellAppClientConfig]
implicit val syncOperatorSequencerConfigWriter: ConfigWriter[SyncOperatorSequencerConfig] =
deriveWriter[SyncOperatorSequencerConfig]
implicit val syncOperatorMediatorConfigWriter: ConfigWriter[SyncOperatorMediatorConfig] =
deriveWriter[SyncOperatorMediatorConfig]
implicit val syncOperatorSynchronizerNodeConfigWriter
: ConfigWriter[SyncOperatorSynchronizerNodeConfig] =
deriveWriter[SyncOperatorSynchronizerNodeConfig]
implicit val syncOperatorSynchronizerNodesConfigWriter
: ConfigWriter[SyncOperatorSynchronizerNodesConfig] =
deriveWriter[SyncOperatorSynchronizerNodesConfig]
implicit val syncOperatorLsuConfigWriter: ConfigWriter[SyncOperatorLsuConfig] =
deriveWriter[SyncOperatorLsuConfig]
implicit val syncOperatorConfigWriter: ConfigWriter[SyncOperatorAppBackendConfig] =
deriveWriter[SyncOperatorAppBackendConfig]
implicit val syncOperatorClientConfigWriter: ConfigWriter[SyncOperatorAppClientConfig] =
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# The successor synchronizer node for a sync operator LSU. Left uninitialized on purpose: the
# operator's LSU trigger initializes both nodes from the synchronizer it is upgrading.
include required("include/canton-basic.conf")
include required("include/sequencers.conf")
include required("include/mediators.conf")

canton {
parameters {
non-standard-config = yes
}

sequencers {
syncOperatorSuccessorSequencer = ${_sequencer_reference_template} {
public-api.port = 27608
admin-api.port = 27609
storage.config.properties.databaseName = "sequencer_sync_operator_successor"
sequencer.config.storage.config.properties.databaseName = "sequencer_driver_sync_operator_successor"
}
syncOperatorSuccessorSequencer.storage.config.properties.databaseName = ${?SYNC_OPERATOR_SUCCESSOR_SEQUENCER_DB}
syncOperatorSuccessorSequencer.sequencer.config.storage.config.properties.databaseName = ${?SYNC_OPERATOR_SUCCESSOR_SEQUENCER_DRIVER_DB}
}

mediators {
syncOperatorSuccessorMediator = ${_mediator_template} {
admin-api.port = 27607
storage.config.properties.databaseName = "mediator_sync_operator_successor"
}
syncOperatorSuccessorMediator.storage.config.properties.databaseName = ${?SYNC_OPERATOR_SUCCESSOR_MEDIATOR_DB}
}
}
2 changes: 1 addition & 1 deletion apps/app/src/test/resources/sync-operator-topology.conf
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ canton {
admin-api.port = 5116
participant-client = ${canton.validator-apps.splitwellValidator.participant-client}
operator-user = ${canton.validator-apps.splitwellValidator.app-instances.syncOperator.service-user}
sequencer.admin-api.port = 5709
synchronizer-nodes.current.sequencer.admin-api.port = 5709
}
}
}
Loading
Loading