Data Chains and net splits

I have been reading up on data chains and I have a question about how network failures are handled, specifically net splits.
During a network split, it appears that equally valid but conflicting data chains could be constructed. When the split ends, how are these conflicting chains reconciled? Which one wins?

If that doesn’t make sense, or I have an incorrect assumption, here is a more in depth walk through my reasoning:
From what I understand, the network as a whole can continue to function as long as there is at least one quorum of valid voters for a current section; where valid voters and current sections are defined by a valid chain segment.
In a massive communication failure, the network will remain offline until enough nodes reconnect to each other to find a valid quorum.
A valid quorum can then continue to add blocks to the end of its chain segment, re-adding all orphaned nodes, merging any orphaned chains into its own, and rebuilding the network.
Is this a correct summary?

If that is correct, what happens in a net split scenario, where the network is temporarily split into two subsets of nodes. Each subset can communicate within itself, but the subsets cannot communicate with each other.
From the description above, as long as a valid quorum remains in each subset, they both should be able to repair the network and continue on functioning.
What happens when the subsets regain communication with each other and attempt to build the full network?
Both subsets will have valid chain segments that conflict with each other (as defined by the rules detailed here: https://forum.safedev.org/t/data-chains-general-rules-in-an-eventually-consistent-network/687).
It seems there must be a rule used to choose which chain wins, but I could not find it in the current documentation. Did I miss it somewhere?

4 Likes

If I am understanding the logic process here this seems to be a question about how the network treats subsections of the network. Theoretically one could create their own network but then that would be incompatible with the SAFE network. In this case in the case of a catastrophe the network breaks down and ends up losing communication with itself and essentially needs to reform from scratch. So from my understanding it’s essentially the same problem as two networks being created from scratch and then wanting to merge with one another. This would not only be an important question to address in the case of an emergency but it would also be an important question to address in the case of LAN networking the SAFE network as if one could create a subsection network on a LAN and then later merge it into the main network, or later break away into a LAN network once again, this would be a terribly important ability. And given what has been iillistrated about network data preservation I would argue it’s an essential skill to keep the network going in case of an outage.