Will a participant node interact with the domain node if there is a fetch in the daml code?

Hi team,

In a context where we have 1 participant node and 1 domain node:
If in the Daml code there is a fetch action, will it interact with the domain node ?
Or the Daml execution engine will interact with the PCS and try to fetch that contract which means the participant node only interact with the domain if the transaction is valid ?

Best Regards,

Jean-Paul

Hi @jaypeeda

In general, for any Daml transaction to go through, the participant will need to interact with the domain.
Note that it is impossible to construct ‘read-only’ Daml transactions which, e.g. contain only a fetch action, as the ledger API does not expose such commands. So in your example, the transaction will exercise choices on some contract. It will therefore interact with the domain (assuming the command is valid).

It is correct that a participant first validates a given Daml command before sending it to the domain as a transaction. Among others, this validation checks the command authorization and uses the Daml execution engine of a participant with its PCS. If the validation fails, the participant will not interact with the domain for that Ledger API call.

Hope this helps clear things up!

Best,
Arne

1 Like

Thanks so much Arne, this is very clear !