Public Party and reference data

There’s no such feature in DAML the smart contract language. The problem is data availability:

Imagine a DAML ledger with full sub-transaction privacy. There is no central place where all data is stored. If Alice creates a contract visible to “all”, and later a new node joins the network, there is no place for that node to “pick up” that data.

We therefore decided to handle “public” data through parties. There’s a discussion on the solution in Query and Create Exercise as multiple parties. That feature should be rolled out in one of the releases early next year.

TL;DR: You’ll be able to use more than one party at a time during submission. So you can model public as a party and issue everyone tokens that allow them to read as that party. You still have the data availability problem, meaning the public party has to be hosted on every node where you want that data to be available. If you are on a multi-node network that means hosting the public party on all participants. If that’s not possible, the workaround is to have a public party per node, and then essentially make each node an observer on “public” contracts.

3 Likes