We have a simple Canton Setup shown as below
simple.conf
canton {
participants {
bankAParticipant {
storage.type = memory
admin-api.port = 5012
ledger-api.port = 5011
ledger-api.address = 0.0.0.0
}
bankBParticipant {
storage.type = memory
admin-api.port = 5022
ledger-api.port = 5021
ledger-api.address = 0.0.0.0
}
schedulerParticipant {
storage.type = memory
admin-api.port = 5032
ledger-api.port = 5031
ledger-api.address = 0.0.0.0
}
assemblerParticipant {
storage.type = memory
admin-api.port = 5042
ledger-api.port = 5041
ledger-api.address = 0.0.0.0
}
}
domains {
mydomain {
storage.type = memory
public-api.port = 5018
admin-api.port = 5019
}
}
// enable ledger_api commands for our getting started guide
features.enable-testing-commands = yes
}
and
simple.canton bootstrap
// start all local instances defined in the configuration file
nodes.local start
// Connect participant1 to mydomain using the connect macro.
// The connect macro will inspect the domain configuration to find the correct URL and Port.
// The macro is convenient for local testing, but obviously doesn't work in a distributed setup.
bankAParticipant.domains.connect_local(mydomain)
bankBParticipant.domains.connect_local(mydomain)
schedulerParticipant.domains.connect_local(mydomain)
assemblerParticipant.domains.connect_local(mydomain)
We also allocated parties through daml script and upload the script in a distributed manner
stagingTest = do
bankA <- allocatePartyWithHintOn "bankA" (PartyIdHint "bankA") $ ParticipantName "bankAParticipant"
bankB <- allocatePartyWithHintOn "bankB" (PartyIdHint "bankB") $ ParticipantName "bankBParticipant"
scheduler <- allocatePartyWithHintOn "scheduler" (PartyIdHint "scheduler") $ ParticipantName "schedulerParticipant"
assembler <- allocatePartyWithHintOn "assembler" (PartyIdHint "assembler") $ ParticipantName "assemblerParticipant"
all of the above works and created the parties on different participant as expected.
Yet, when we created a contract on participantBankA with bankA party as signatory and scheduler party as observer,
canton does not seems to help us synced the contract into the acs of participantScheduler (which has schedulerParty on it).
We have double checked that the scheduler party hash on the created contract observer (through canton console command ledger_api_acs) matched the scheduler party hash that we allocated on participantScheduler. However when we run canton console command to check the acs of participantScheduler the created contract is not there.
Any idea why we are not seeing the contract sync?
Thanks so much for any of the help in advance.
it can just really be some noob level incorrect setup /or the way we are checking canton is incorrect.