From 177137e25cc177cec2b0a69a84fd078665033d00 Mon Sep 17 00:00:00 2001 From: Julien Tinguely Date: Fri, 7 Nov 2025 14:53:45 +0000 Subject: [PATCH 1/4] [ci] init Signed-off-by: Julien Tinguely --- .../tests/PruningIntegrationTest.scala | 17 ++++++++++++----- .../splice/sv/config/SvAppConfig.scala | 6 ++++++ .../sv/onboarding/sv1/SV1Initializer.scala | 2 +- .../splice/sv/util/SvUtil.scala | 5 ----- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/PruningIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/PruningIntegrationTest.scala index 3aed2450de..ed8cd2d536 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/PruningIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/PruningIntegrationTest.scala @@ -62,6 +62,13 @@ class PruningIntegrationTest )(config), (_, config) => config.copy( + svApps = config.svApps.updatedWith(InstanceName.tryCreate("sv1")) { + _.map { config => + config.copy(acsCommitmentReconciliationInterval = + PositiveDurationSeconds.ofSeconds(15) + ) + } + }, validatorApps = config.validatorApps.updatedWith(InstanceName.tryCreate("sv1Validator")) { _.map { config => @@ -70,8 +77,8 @@ class PruningIntegrationTest participantPruningSchedule = Some( PruningConfig( "0 /1 * * * ?", - PositiveDurationSeconds.tryFromDuration(1.seconds), - PositiveDurationSeconds.tryFromDuration(1.seconds), + PositiveDurationSeconds.tryFromDuration(2.seconds), + PositiveDurationSeconds.tryFromDuration(5.seconds), ) ) ) @@ -97,7 +104,7 @@ class PruningIntegrationTest .withPausedTrigger[ReconcileSequencerConnectionsTrigger], ) } - ) + ), ), ) @@ -110,8 +117,8 @@ class PruningIntegrationTest sv1ValidatorBackend.participantClient.pruning.get_schedule() shouldBe Some( PruningSchedule( "0 /1 * * * ?", - PositiveDurationSeconds.tryFromDuration(1.seconds), - PositiveDurationSeconds.tryFromDuration(1.seconds), + PositiveDurationSeconds.tryFromDuration(2.seconds), + PositiveDurationSeconds.tryFromDuration(5.seconds), ) ) } diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala index b5efdbea1d..003643370c 100644 --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala @@ -34,6 +34,7 @@ import org.lfdecentralizedtrust.splice.config.{ } import org.lfdecentralizedtrust.splice.environment.{DarResource, DarResources} import org.lfdecentralizedtrust.splice.sv.SvAppClientConfig +import org.lfdecentralizedtrust.splice.sv.util.SvUtil import org.lfdecentralizedtrust.splice.util.SpliceUtil import java.nio.file.Path @@ -320,6 +321,11 @@ case class SvAppBackendConfig( // Defaults to 24h to allow for 24h between preparation and execution of an externally signed transaction preparationTimeRecordTimeTolerance: NonNegativeFiniteDuration = NonNegativeFiniteDuration.ofHours(24), + // We set the reconciliation interval for ACS commitments to 30 mins by default to ensure that + // frequent ACS commitments do not eat up the base rate traffic and prevent validators from topping up + // (See #12107). + acsCommitmentReconciliationInterval: PositiveDurationSeconds = + PositiveDurationSeconds.ofMinutes(30), // Defaults to 48h as it must be at least 2x preparationTimeRecordtimeTolerance mediatorDeduplicationTimeout: NonNegativeFiniteDuration = NonNegativeFiniteDuration.ofHours(48), // We want to be able to override this for simtime tests diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/sv1/SV1Initializer.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/sv1/SV1Initializer.scala index a88ad791d0..9d9e7703bb 100644 --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/sv1/SV1Initializer.scala +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/sv1/SV1Initializer.scala @@ -466,7 +466,7 @@ class SV1Initializer( val values = initialValues.tryUpdate( trafficControlParameters = Some(initialTrafficControlParameters), reconciliationInterval = - PositiveSeconds.fromConfig(SvUtil.defaultAcsCommitmentReconciliationInterval), + PositiveSeconds.fromConfig(config.acsCommitmentReconciliationInterval), acsCommitmentsCatchUp = Some(SvUtil.defaultAcsCommitmentsCatchUpParameters), preparationTimeRecordTimeTolerance = NonNegativeFiniteDuration.fromConfig(config.preparationTimeRecordTimeTolerance), diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/util/SvUtil.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/util/SvUtil.scala index 90f6a6a70f..4b140fb05b 100644 --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/util/SvUtil.scala +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/util/SvUtil.scala @@ -61,11 +61,6 @@ object SvUtil { // Assumption: the sv1 node is run by the foundation val DefaultSV1Weight: Long = 10_000L - // We set the reconciliation interval for ACS commitments to 30 mins by default to ensure that - // frequent ACS commitments do not eat up the base rate traffic and prevent validators from topping up - // (See #12107). - val defaultAcsCommitmentReconciliationInterval: PositiveDurationSeconds = - PositiveDurationSeconds.ofMinutes(30) val defaultAcsCommitmentsCatchUpParameters: AcsCommitmentsCatchUpParameters = AcsCommitmentsCatchUpParameters( // With the default reconciliation interval of 30m this corresponds to a catchup interval of 30m * 24 = 12 hours. From bf1e3cd3cdd5c5d87c17675cf9bd6dc990ab4997 Mon Sep 17 00:00:00 2001 From: Julien Tinguely Date: Fri, 7 Nov 2025 15:26:50 +0000 Subject: [PATCH 2/4] [ci] trying with smaller acs interval Signed-off-by: Julien Tinguely --- .../lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala | 5 +---- .../org/lfdecentralizedtrust/splice/sv/util/SvUtil.scala | 6 ++++++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala index 003643370c..91120c2ac8 100644 --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala @@ -321,11 +321,8 @@ case class SvAppBackendConfig( // Defaults to 24h to allow for 24h between preparation and execution of an externally signed transaction preparationTimeRecordTimeTolerance: NonNegativeFiniteDuration = NonNegativeFiniteDuration.ofHours(24), - // We set the reconciliation interval for ACS commitments to 30 mins by default to ensure that - // frequent ACS commitments do not eat up the base rate traffic and prevent validators from topping up - // (See #12107). acsCommitmentReconciliationInterval: PositiveDurationSeconds = - PositiveDurationSeconds.ofMinutes(30), + SvUtil.defaultAcsCommitmentReconciliationInterval, // Defaults to 48h as it must be at least 2x preparationTimeRecordtimeTolerance mediatorDeduplicationTimeout: NonNegativeFiniteDuration = NonNegativeFiniteDuration.ofHours(48), // We want to be able to override this for simtime tests diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/util/SvUtil.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/util/SvUtil.scala index 4b140fb05b..4c0f168077 100644 --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/util/SvUtil.scala +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/util/SvUtil.scala @@ -61,6 +61,12 @@ object SvUtil { // Assumption: the sv1 node is run by the foundation val DefaultSV1Weight: Long = 10_000L + // We set the reconciliation interval for ACS commitments to 30 mins by default to ensure that + // frequent ACS commitments do not eat up the base rate traffic and prevent validators from topping up + // (See #12107). + val defaultAcsCommitmentReconciliationInterval: PositiveDurationSeconds = + PositiveDurationSeconds.ofMinutes(30) + val defaultAcsCommitmentsCatchUpParameters: AcsCommitmentsCatchUpParameters = AcsCommitmentsCatchUpParameters( // With the default reconciliation interval of 30m this corresponds to a catchup interval of 30m * 24 = 12 hours. From 4e6b231269ba3e2ffb45df232ab5430891b0ce31 Mon Sep 17 00:00:00 2001 From: Julien Tinguely Date: Fri, 7 Nov 2025 17:11:00 +0000 Subject: [PATCH 3/4] [ci] fix static check Signed-off-by: Julien Tinguely --- test-full-class-names.log | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-full-class-names.log b/test-full-class-names.log index fc7a84b04f..641751d7e4 100644 --- a/test-full-class-names.log +++ b/test-full-class-names.log @@ -70,4 +70,4 @@ org.lfdecentralizedtrust.splice.integration.tests.connectivity.SvAppLedgerApiCon org.lfdecentralizedtrust.splice.integration.tests.connectivity.SvNoSynchronizerConnectivityIntegrationTest org.lfdecentralizedtrust.splice.integration.tests.connectivity.WalletAppConnectivityIntegrationTest org.lfdecentralizedtrust.splice.integration.tests.offlinekey.SvOfflineRootNamespaceKeyIntegrationTest -org.lfdecentralizedtrust.splice.integration.tests.offlinekey.ValidatorOfflineRootNamespaceKeyIntegrationTest +org.lfdecentralizedtrust.splice.integration.tests.offlinekey.ValidatorOfflineRootNamespaceKeyIntegrationTest \ No newline at end of file From 83df490c3e375a6e141648e02b7857549da940cd Mon Sep 17 00:00:00 2001 From: Julien Tinguely Date: Fri, 7 Nov 2025 17:48:37 +0000 Subject: [PATCH 4/4] [ci] fix Signed-off-by: Julien Tinguely --- test-full-class-names.log | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test-full-class-names.log b/test-full-class-names.log index 641751d7e4..d5104e1877 100644 --- a/test-full-class-names.log +++ b/test-full-class-names.log @@ -17,6 +17,7 @@ org.lfdecentralizedtrust.splice.integration.tests.FeaturedAppActivityMarkerInteg org.lfdecentralizedtrust.splice.integration.tests.GcpBucketPeriodicBackupIntegrationTest org.lfdecentralizedtrust.splice.integration.tests.MemberTrafficIntegrationTest org.lfdecentralizedtrust.splice.integration.tests.ParticipantPlaintextIdentitiesIntegrationTest +org.lfdecentralizedtrust.splice.integration.tests.PruningIntegrationTest org.lfdecentralizedtrust.splice.integration.tests.RecoverExternalPartyIntegrationTest org.lfdecentralizedtrust.splice.integration.tests.RewardExpiryIntegrationTest org.lfdecentralizedtrust.splice.integration.tests.ScanConnectionIntegrationTest @@ -24,7 +25,6 @@ org.lfdecentralizedtrust.splice.integration.tests.ScanEventHistoryIntegrationTes org.lfdecentralizedtrust.splice.integration.tests.ScanHistoryBackfillingIntegrationTest org.lfdecentralizedtrust.splice.integration.tests.ScanIntegrationTest org.lfdecentralizedtrust.splice.integration.tests.ScanTxLogOwnerExpireLockIntegrationTest -org.lfdecentralizedtrust.splice.integration.tests.PruningIntegrationTest org.lfdecentralizedtrust.splice.integration.tests.SplitwellIntegrationTest org.lfdecentralizedtrust.splice.integration.tests.SplitwellUpgradeIntegrationTest org.lfdecentralizedtrust.splice.integration.tests.SvDevNetReonboardingIntegrationTest @@ -70,4 +70,4 @@ org.lfdecentralizedtrust.splice.integration.tests.connectivity.SvAppLedgerApiCon org.lfdecentralizedtrust.splice.integration.tests.connectivity.SvNoSynchronizerConnectivityIntegrationTest org.lfdecentralizedtrust.splice.integration.tests.connectivity.WalletAppConnectivityIntegrationTest org.lfdecentralizedtrust.splice.integration.tests.offlinekey.SvOfflineRootNamespaceKeyIntegrationTest -org.lfdecentralizedtrust.splice.integration.tests.offlinekey.ValidatorOfflineRootNamespaceKeyIntegrationTest \ No newline at end of file +org.lfdecentralizedtrust.splice.integration.tests.offlinekey.ValidatorOfflineRootNamespaceKeyIntegrationTest