Why are allocated party names different on various ledgers

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.

3 Likes