Question regarding participant data in domains

I am new to DAML and had some basic queries. I know that participants can be a part of multiple domains and their data is present only on the nodes that they are part of, but what happens if all the nodes with that particular participant’s data goes down. For example, I have 3 domains and my participant has joined two of them and both of these domains somehow suffer a critical failure. I know this isn’t possible if the domain is backed by Ethereum, but what if I was using an extremely simple hyperledger fabric network with one organisation and a single peer. Can I recover my transactions related to that participant somehow.

The transaction data is first and foremost stored on the participant nodes, not the domain. The domain acts as a persistent message queue with certain guarantees and a transaction coordinator, but once a transaction is committed, the data on the domain is only good for two things:

  1. Letting a participant node catch up.
  2. Extracting some cryptographic evidence in case there is a dispute.

So to answer your question, if your domains go down, you don’t have much of an issue per se. You can just reassign your active contracts to a new domain and go from there.

However, there is an edge case to consider: If your domain is “hot” when it goes down, it’s theoretically possible that one participant node still receives a transaction confirmation and another one doesn’t any more and it can no longer catch up as the domain is gone. In this case, you have to use some manual repair operations to either transfer state from the node that’s ahead to the one that’s behind, or roll back the node that’s ahead.

2 Likes