Canton 3 Private Domain

Hi,

For a Canton 3 private network (not connected to Mainnet) do we need to spin up at least 3 supervalidators in order to get the required BFT nodes for consensus? Or are we able to do essentially a Canton 2 setup, where we have our 1 domain within our supervalidator and have either 1 sequencer that connects to 3+ CometBFT nodes, or 3+ sequencers that each connect to 1 CometBFT nodes?

Thanks,

Austin

Hi Austin,

In principle it might be possible to do all of the above options, but the way things are wired by default in Canton 3, it’s always 1 sequencer process to one underlying BFT node. Changing that would require a bit of tinkering.

Out of interest, why are you looking into such setups?

The setup with one sequencer per consensus node is the one that optimizes for fault tolerance. The goal of decentralized synchronizers is to get 3f+1 fault tolerance, meaning for 4 nodes, 1 byzantine node is tolerated, for 7 nodes, 2 faults, etc.

If you have only one CometBFT node (but an arbitrary number of sequencer processes), your fault tolerance is back down to zero.

If you have many CometBFT nodes, but only one sequencer process connected to one of those CometBFT nodes, your fault tolerance is back down to zero.

Hi Bernhard!

It was a question that I personally had about a private sync setup, for whether or not we could make use of just 1 supervalidator. What you mentioned makes sense in terms of fault tolerance. I’m assuming based off of your response that we can only have 1 sequencer per supervalidator? So the only way to get the 1 to 1 CometBFT to sequencer with fault tolerance would be to run at least 4 supervalidators?

Yes, I think that’s right. You cannot get true fault tolerance with fewer then 4 nodes.

Interesting, thank you!!