As far as I understand, DAML on Fabric is not compatible with Fabric’s two privacy features, Private Data and Transient Data.
The difference between Private Data and Transient Data is explained eg. in this blog post:
Scenario 3 : Using Private Data with Transient Data input
Similar to Scenario 2, data is written into the private data part inside a ledger, and only those peers of organizations defined in collection definition will keep this data. In the chaincode,
GetPrivateDataAPI are used with collection specified. When we invoke chaincode, we specify the input as transient data, not as arguments. And we use
GetTransientin the chaincode to process the input data.
This can be used when data privacy is needed in storage, while the input data is sensitive such that they should not be kept anywhere.
From the description, it seems to me that for using these two features we don’t need different chaincode logic, just need to use three special functions in the chaincode for processing the input arguments, and put and get the world state data.
All this makes me wonder if it would take a big development effort to make DAML on Fabric support these two privacy features.