Hi Derek,
A remote participant is essentially just a connection to a participant node (docs here). So you will need to run two participant nodes, and possibly connect to those two local participant nodes with two remote participant nodes.
Should i use 3VM, one for each participant and one for the domain?
Using 3 VMs is one option to run the two participant nodes and the domain node. Another option is to run all three nodes as separate JVM processes on the same machine (this will also isolate the nodes). A third option is to run all nodes in a single JVM process on the same machine (this is the default behaviour you’ll get if you specify all the local nodes in the same config file).
The conf file on each participant must contain the references of the domain and itself, while the conf file of the domain must contain the remote participants and itself ?
The configuration for a domain does not include information on participant nodes, though the config file you use to start a domain might contain additional configuration to also start a participant node or connect to a remove participant node.
Similarly, the configuration for a participant nodes not include information on domain nodes. A participant node can connect to a domain using the participant.domains.connect
command even if the domain is not present in the config file used to start a participant. However, it is quite common to include a remote domain in the config file used to start a participant, as the participant can then connect to this domain without specifying an address etc.
You might find the documentation on static configuration useful, and might also want to take a look at the Canton examples (found inside the release bundle).
How can I then connect the participants to the domain?
This depends on how your network is set up. I’m not sure what your requirements are. In the simplest case where the participants and domains all run in a single JVM process (from one config file), the connection will (by default) happen automatically.
As I only want persistence in the domain, can I let the participants storage in memory?
Yes, this is possible. There is more documentation here.