Skip to content

Commit ad92710

Browse files
Pass config.acsCommitmentReconciliationInterval to DsoBootstrap (#3365)
* [ci] init Signed-off-by: Julien Tinguely <[email protected]> * [ci] move acsCommitmentReconciliationInterval to FoundDso AppConfig Signed-off-by: Julien Tinguely <[email protected]> --------- Signed-off-by: Julien Tinguely <[email protected]>
1 parent 1c39148 commit ad92710

File tree

4 files changed

+35
-11
lines changed

4 files changed

+35
-11
lines changed

apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ManualStartIntegrationTest.scala

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import org.lfdecentralizedtrust.splice.integration.tests.SpliceTests.{
2525
}
2626
import org.lfdecentralizedtrust.splice.store.AppStoreWithIngestion.SpliceLedgerConnectionPriority.Low
2727
import org.lfdecentralizedtrust.splice.sv.config.SvAppBackendConfig
28+
import org.lfdecentralizedtrust.splice.sv.config.SvOnboardingConfig.FoundDso
2829
import org.lfdecentralizedtrust.splice.util.{StandaloneCanton, TriggerTestUtil, WalletTestUtil}
2930

3031
import java.util.UUID
@@ -68,9 +69,21 @@ class ManualStartIntegrationTest
6869
// as pruning can be done only up to the end of the latest complete acs commitment interval
6970
svApps = conf.svApps.updatedWith(InstanceName.tryCreate("sv1")) {
7071
_.map { config =>
71-
config.copy(acsCommitmentReconciliationInterval =
72-
PositiveDurationSeconds.ofSeconds(30)
73-
)
72+
config.onboarding match {
73+
case Some(c) =>
74+
c match {
75+
case foundDsoConfig: FoundDso =>
76+
config.copy(onboarding =
77+
Some(
78+
foundDsoConfig.copy(acsCommitmentReconciliationInterval =
79+
PositiveDurationSeconds.ofSeconds(30)
80+
)
81+
)
82+
)
83+
case _ => config
84+
}
85+
case None => config
86+
}
7487
}
7588
},
7689
validatorApps = conf.validatorApps
@@ -190,7 +203,7 @@ class ManualStartIntegrationTest
190203
}
191204

192205
clue("Check sv1 participant is actively pruning") {
193-
eventually(70.seconds) {
206+
eventually(120.seconds) {
194207
sv1Backend.svAutomation
195208
.connection(Low)
196209
// returns 0 when participant pruning is disabled

apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ object SvBootstrapDumpConfig {
8181

8282
object SvOnboardingConfig {
8383
case class FoundDso(
84+
acsCommitmentReconciliationInterval: PositiveDurationSeconds =
85+
SvUtil.defaultAcsCommitmentReconciliationInterval,
8486
name: String,
8587
firstSvRewardWeightBps: Long,
8688
dsoPartyHint: String = "DSO",
@@ -322,8 +324,6 @@ case class SvAppBackendConfig(
322324
// Defaults to 24h to allow for 24h between preparation and execution of an externally signed transaction
323325
preparationTimeRecordTimeTolerance: NonNegativeFiniteDuration =
324326
NonNegativeFiniteDuration.ofHours(24),
325-
acsCommitmentReconciliationInterval: PositiveDurationSeconds =
326-
SvUtil.defaultAcsCommitmentReconciliationInterval,
327327
// Defaults to 48h as it must be at least 2x preparationTimeRecordtimeTolerance
328328
mediatorDeduplicationTimeout: NonNegativeFiniteDuration = NonNegativeFiniteDuration.ofHours(48),
329329
// We want to be able to override this for simtime tests

apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/sv1/SV1Initializer.scala

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,7 @@ class SV1Initializer(
481481
val values = initialValues.tryUpdate(
482482
trafficControlParameters = Some(initialTrafficControlParameters),
483483
reconciliationInterval =
484-
PositiveSeconds.fromConfig(config.acsCommitmentReconciliationInterval),
484+
PositiveSeconds.fromConfig(sv1Config.acsCommitmentReconciliationInterval),
485485
acsCommitmentsCatchUp = Some(SvUtil.defaultAcsCommitmentsCatchUpParameters),
486486
preparationTimeRecordTimeTolerance =
487487
NonNegativeFiniteDuration.fromConfig(config.preparationTimeRecordTimeTolerance),
@@ -650,7 +650,11 @@ class SV1Initializer(
650650
private def bootstrapDso(initialRound: Long, packageVersionSupport: PackageVersionSupport)(
651651
implicit tc: TraceContext
652652
): Future[Unit] = {
653-
val dsoRulesConfig = SvUtil.defaultDsoRulesConfig(synchronizerId, sv1Config.voteCooldownTime)
653+
val dsoRulesConfig = SvUtil.defaultDsoRulesConfig(
654+
synchronizerId,
655+
sv1Config.voteCooldownTime,
656+
sv1Config.acsCommitmentReconciliationInterval,
657+
)
654658
for {
655659
(participantId, trafficStateForAllMembers, amuletRules, dsoRules) <- (
656660
participantAdminConnection.getParticipantId(),

apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/util/SvUtil.scala

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,15 +131,18 @@ object SvUtil {
131131
List.empty.asJava,
132132
)
133133

134-
private def defaultDsoDecentralizedSynchronizerConfig(synchronizerId: SynchronizerId) =
134+
private def defaultDsoDecentralizedSynchronizerConfig(
135+
synchronizerId: SynchronizerId,
136+
acsCommitmentReconciliationInterval: PositiveDurationSeconds,
137+
) =
135138
new DsoDecentralizedSynchronizerConfig(
136139
// domains
137140
Map(
138141
synchronizerId.toProtoPrimitive -> new SynchronizerConfig(
139142
dso.decentralizedsynchronizer.SynchronizerState.DS_OPERATIONAL,
140143
"TODO(DACH-NY/canton-network-node#4900): share CometBFT genesis.json of sv1 via DsoRules config.",
141144
// TODO(M3-47): also share the Canton SynchronizerId of the decentralized domain here
142-
Optional.of(defaultAcsCommitmentReconciliationInterval.duration.toSeconds),
145+
Optional.of(acsCommitmentReconciliationInterval.duration.toSeconds),
143146
)
144147
).asJava,
145148
synchronizerId.toProtoPrimitive, // lastSynchronizerId
@@ -246,6 +249,7 @@ object SvUtil {
246249
def defaultDsoRulesConfig(
247250
synchronizerId: SynchronizerId,
248251
voteCooldownTime: Option[NonNegativeFiniteDuration] = None,
252+
acsCommitmentReconciliationInterval: PositiveDurationSeconds,
249253
): DsoRulesConfig = new DsoRulesConfig(
250254
10, // numUnclaimedRewardsThreshold
251255
5, // numMemberTrafficContractsThreshold, arbitrarily set as 5 for now.
@@ -256,7 +260,10 @@ object SvUtil {
256260
new RelTime(TimeUnit.SECONDS.toMicros(70)), // dsoDelegateInactiveTimeout
257261
defaultSynchronizerNodeConfigLimits,
258262
1024, // maxTextLength
259-
defaultDsoDecentralizedSynchronizerConfig(synchronizerId), // decentralizedSynchronizerConfig
263+
defaultDsoDecentralizedSynchronizerConfig(
264+
synchronizerId,
265+
acsCommitmentReconciliationInterval,
266+
), // decentralizedSynchronizerConfig
260267
Optional.empty(), // nextScheduledHardDomainMigration
261268
voteCooldownTime.map(t => new RelTime(t.duration.toMicros)).toJava,
262269
)

0 commit comments

Comments
 (0)