Traceability

Is there a documentation of what exactly is being kept track of when interacting with the Ledger?

For example, do we keep track of a non-consuming choice exercised on a template? Do we keep the JWT instance that was used to connect when exercising a choice like this?

1 Like

DAML Ledgers store everything needed to re-construct, and re-validate the entire ledger. So non-consuming Exercise nodes are stored, as are Fetch nodes, though the latter are currently not emitted through the Ledger API. You can get Exercise nodes through the TransactionService if you send a TransactionTreeRequest.

JWTs associated to command submissions are not currently stored, I believe. If you put a logging proxy in front of the API and log every request, you can correlate JWTs to transactions using the commandId, though. Having that integrated in Ledger nodes, or having even stronger traceability between API requests and transactions is something that comes up quite frequently so it’s something we’ll try to address at some point.

Do you have a particular traceability property that you need for your use-case? It would be useful to understand what you are trying to do in more detail so we can try to take your needs into account when revisiting that topic.

2 Likes

Thanks a lot @bernhard! Thatś very helpful.

Indeed, I want to see exactly for audit reason know the exact actAs and readAs party lists that were used.

1 Like