Why are allocated party names different on various ledgers
When allocating a party on Daml for Corda, for example party name ‘Alice’ as follows:
'D:Alice:O:Moorgate:L:London:C:GB'
we can observe different output comparing to other ledgers.
Party allocation on Daml for VMware Blockchain
$ daml ledger allocate-parties Alice --host x.x.x.x --port 6865
Checking party allocation at x.x.x.x:6865
Allocating party for 'Alice' at x.x.x.x:6865
Allocated ' **Alice** ' for 'Alice' at x.x.x.x:6865
Party allocation on Daml for Corda
$ daml ledger allocate-parties Alice --host y.y.y.y --port 6865
Checking party allocation at y.y.y.y:6865
Allocating party for 'Alice' at y.y.y.y:6865
Allocated ' **D:Alice:O:Moorgate:L:London:C:GB** ' for 'Alice' at y.y.y.y:6865
This is the standard behavior.
Definition of ‘Party’
The Party class represents an entity on the network, which is typically identified by a legal name and public key that it can sign transactions under. Party is also used for service identities. (See: Party by Daml, Party by Corda)
When a party is allocated via the following command:
daml ledger allocate-parties
a hint is provided but the implementation can return any string to identify the party (so could return, for example, a UUID). For this reason different ledger implementations can return different strings to identify parties.
The Daml Driver for Corda method
The string used by Daml Driver for Corda is a combination of the hint and the node on which the party resides. The advantage of this is that the party created is globally unique and globally addressable.
Notes
-
The format of the party string may change and should not be parsed or used for other purposes.
-
Unlike some other ledger implementations Daml Driver for Corda parties are (currently) specific to a particular node.
-
The Daml Driver for Corda parties do not currently conform to net.corda.core.identity.Party but may be modified to do so in the future.