Background
- I have a Canton domain setup with two participants.
- The
participant1
node has partyAlice
enabled. - The
participant2
node has partiesBob
andBank
enabled. - I have Navigator instances pointed at the two participant nodes.
- I am using
utils.generate_navigator_conf(...)
to create ui-backend files. - When I try to create a contract, I find that Navigator’s Party drop down boxes only include “local” parties.
- The gRPC method
ListKnownParties
onparticipant2
lists all the parties, both local and non-local (see below).
ui-backend.conf for participant2
// run with
// daml navigator server localhost 5021 -t wallclock --port 5025 -c ui-backend-participant2.conf
users {
participant2 {
party = "participant2::12207...fae41"
password = password
}
Bob {
party = "Bob::12207...fae41"
password = password
}
Bank {
party = "Bank::12207...fae41"
password = password
}
}
ListKnownParties results
{
"party_details": [
{
"party": "Alice::12200...f46c5",
"display_name": "",
"is_local": false,
"local_metadata": {
"annotations": [],
"resource_version": ""
}
},
{
"party": "Bank::12207...fae41",
"display_name": "",
"is_local": true,
"local_metadata": {
"annotations": [],
"resource_version": ""
}
},
{
"party": "Bob::122077...fae41",
"display_name": "",
"is_local": true,
"local_metadata": {
"annotations": [],
"resource_version": ""
}
},
{
"party": "participant1::12200...f46c5",
"display_name": "",
"is_local": false,
"local_metadata": {
"annotations": [],
"resource_version": ""
}
},
{
"party": "participant2::12207...fae41",
"display_name": "",
"is_local": true,
"local_metadata": {
"annotations": [],
"resource_version": ""
}
}
]
}
Questions
-
Is Navigator’s limited list of parties expected? Am I missing a configuration that might make all known parties appear in Navigator? Maybe the ui-backend.conf file should include all the participants?
-
Is there an easier workaround (see below) to use Navigator to create contracts with non-local parties?
Workaround
I was able to create an Iou for Alice
as follows:
- Log into a Canton Console connected to the domain.
- Get a reference to the
Alice
party. For example,
var alice = mydomain.parties.list("Alice").head.party
- Get the proto string for the party.
alice.toProtoPrimitive
- Copy-and-paste the proto string from the Canton Console into the Navigator field.