The documentation for command deduplication states the following:
A command submission is considered a duplicate submission if the ledger server receives the command within the deduplication time of a previous command with the same command ID from the same submitting party.
The documentation for the Commands protobuf is a bit more precise (or at least I hope it’s more precise and not inconsistent) and mentions that the application id is also included.
This identifier should be unique for each new command within an application domain, i.e., the triple (application_id, party, command_id) must be unique.
However, the documentation does not explain how this extends to multi-party submissions with multiple submitters (i.e. parties in actAs
). I see two possible implementations:
- For the purposes of deduplication, it behaves as if the same command id was used in separate single-party submissions for each party in
actAs
. - Multi-party submissions don’t interact with single-party submissions. They behave more as if the set of parties was a single completely different party and only interact with other multi-party with the same (unordered) set of parties when it comes to deduplication.
I assume it is probably 1 but I couldn’t find any documentation so asking here