Skip to content

feat: restrict onboarding on the dedicated synchronizer - #36

Open
sadiq1971 wants to merge 3 commits into
feat/dedicated-synchronizer-parametersfrom
feat/dedicated-synchronizer-onboarding-restriction
Open

feat: restrict onboarding on the dedicated synchronizer#36
sadiq1971 wants to merge 3 commits into
feat/dedicated-synchronizer-parametersfrom
feat/dedicated-synchronizer-onboarding-restriction

Conversation

@sadiq1971

@sadiq1971 sadiq1971 commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

Part of ChainSafe/canton-extending-mainnet#99

Summary: The app-synchronizer is bootstrapped restricted: its participants are permissioned first,
then the synchronizer goes to RestrictedOpen, so the sync operator never changes the
permissioning itself. Stacked on #33.

@sadiq1971
sadiq1971 marked this pull request as ready for review September 9, 2026 14:13
@sadiq1971
sadiq1971 force-pushed the feat/dedicated-synchronizer-onboarding-restriction branch from 1277ed1 to 5aa46a6 Compare September 9, 2026 18:28

@moritzkiefer-da moritzkiefer-da left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks

@moritzkiefer-da
moritzkiefer-da dismissed their stale review September 10, 2026 08:09

needs some revisions

.copy(maxBaseTrafficAmount = baseTrafficAmount)
)
),
onboardingRestriction = if (permissionedSynchronizer) RestrictedOpen else UnrestrictedOpen,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i'm not sure this is gonna work properly, if you go from unrestricted -> restricted, you need to actually issue trust certificates for all existing nodes. We also need tests for this.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For unrestricted -> restricted I think the trust certificate is already there while onboarding the need to given ParticipantSynchronizerPermission.
So what do you think we should keep it Non restricted by default? Or the other way might be Started Restricted and do the steps required to give the permission.
And testing is coming in the next PR.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry yes I meant participant synchronizer permission not the trust certificate.

So what do you think we should keep it Non restricted by default?

I would just not have the trigger change the permissioning at all. Instead directly set the permissioning level when you bootstrap the synchronizer.

And testing is coming in the next PR.

Our usual policy is that by defaults should always be in the same PR that introduces a change.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated

@sadiq1971
sadiq1971 force-pushed the feat/dedicated-synchronizer-parameters branch from 1cbb4cb to 4855555 Compare September 10, 2026 10:18
The reconciliation trigger sets the onboarding restriction alongside traffic
control, so a dedicated synchronizer admits only participants its owner has
permissioned. Configurable, and on by default.

Signed-off-by: sadiq1971 <sadiqurr8@gmail.com>
@sadiq1971
sadiq1971 force-pushed the feat/dedicated-synchronizer-onboarding-restriction branch from 5aa46a6 to 7dfce3f Compare September 10, 2026 10:20
…ated-synchronizer-onboarding-restriction [ci]

Signed-off-by: sadiq1971 <sadiqurr8@gmail.com>
The bootstrap permissions the participants already on the app-synchronizer and then
sets RestrictedOpen, so the operator never changes the permissioning itself.

The LocalNet end-to-end test asserts the restriction and that an admitted participant
still transacts.

Signed-off-by: sadiq1971 <sadiqurr8@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants