Changing Domain Managers

Hello,
I was wondering if there was a relatively easy/straightforward way to change the topology manager of a domain to a new one that already exists. I found this Changing Domain Connection Config which was similar, but not quite exactly what I was looking for. I also saw this Upgrade To a New Release — Daml SDK 2.10.1 documentation which does work, but that changes the entire sync domain rather than just the manager.

I did a test using sandbox where I spun up 2 different sandbox instances and opened a canton console (passing in a conf file with the remote-domains and remote-participants). I then ran the following commands:

participant1.domains.list_connected() 
participant2.domains.list_connected() 
participant1.domains.disconnect_all() 
participant1.domains.list_connected()
participant1.domains.connect(domainAlias = "domain2", connection = "http://localhost:6869")

where domain2 was the name I had specified in the conf file. I got this error:

ERROR c.d.c.e.CommunityConsoleEnvironment - Request failed for participant1.
  GrpcRequestRefusedByServer: FAILED_PRECONDITION/INCOMPATIBLE_UNIQUE_CONTRACT_KEYS_MODE(9,352ab3c3): Cannot connect to domain domain2 as the participant has UCK semantics enabled and has already been connected to other domains: local::1220709e5e2c...
  Request: ConnectDomain(Domain 'domain2',false)
  CorrelationId: 352ab3c38039cc0be1a9591925e104fd
  Context: Map(domain -> domain2, participant -> sandbox, tid -> 352ab3c38039cc0be1a9591925e104fd)
  Command ParticipantAdministration$domains$.connect invoked from cmd19.sc:1
com.digitalasset.canton.console.CommandFailure: Command execution failed.

which I found was due to this Contract Keys in Canton — Daml SDK 2.10.1 documentation

Is it possible to migrate just the topology manager to a new one without migrating the entire domain (or maybe just the manager and the mediator, keeping the old sequencers where they are) using a process similar to this? Thanks

No, there is not a straightforward way to hot-swap the topology manager of a running domain with an entirely new, pre-existing one from a different domain context.

The topology manager is fundamentally tied to its domain. May I know why you want to migrate the topology manager? In particular, which bits of the domain manager do you want to change by the migration.

Hi @rohitt, we were looking to see if there was a way to essentially change who owns the domain, without migrating the entire domain. The process we did end up following is the full domain migration, at the time we were brainstorming if there were other ways to change domain ownership. Thanks for the response!

1 Like