Inspired by this comment, we discovered that all of the "simple" quorum types result in a flat quorum. That means that any missions that use AllPeersQuorum, CoreSetQuorum, CoreSetQuorumList, or CoreSetQuorumListWithThreshold get flattened into a single qset. I would have guessed that the *List* QuorumSetSpecs end up as hierarchical qsets, but I also understand the logic for flattening them based on how we use the list-based QuorumSetSpecs in practice.
With the more advanced quorum set configuration options at our disposal via the new AutoQuorum type, I think we should revisit this to make it easier to configure sensible quorums. Specifically, I think we should take the following steps:
- Default coreset
homeDomains to None, so as to remove a footgun when using the AutoQuorum type.
- When using
AllPeersQuorum or CoreSetQuorum, generate a flat quorum with an automatically defined homeDomain if homeDomain = None.
- Either remove
CoreSetQuorumList and CoreSetQuorumListWithThreshold and replace all uses with AutoQuorum, or augment these two types to track desired home domains / quorums as well. Update the few missions that use these types to support whichever approach we take.
With these changes, we can hopefully use automatic quorum set configuration for most, if not all missions. This work can be done in tandem with #271 after the 22.3.0 stellar-core release.
Inspired by this comment, we discovered that all of the "simple" quorum types result in a flat quorum. That means that any missions that use
AllPeersQuorum,CoreSetQuorum,CoreSetQuorumList, orCoreSetQuorumListWithThresholdget flattened into a single qset. I would have guessed that the*List*QuorumSetSpecs end up as hierarchical qsets, but I also understand the logic for flattening them based on how we use the list-basedQuorumSetSpecs in practice.With the more advanced quorum set configuration options at our disposal via the new
AutoQuorumtype, I think we should revisit this to make it easier to configure sensible quorums. Specifically, I think we should take the following steps:homeDomains toNone, so as to remove a footgun when using theAutoQuorumtype.AllPeersQuorumorCoreSetQuorum, generate a flat quorum with an automatically definedhomeDomainifhomeDomain = None.CoreSetQuorumListandCoreSetQuorumListWithThresholdand replace all uses withAutoQuorum, or augment these two types to track desired home domains / quorums as well. Update the few missions that use these types to support whichever approach we take.With these changes, we can hopefully use automatic quorum set configuration for most, if not all missions. This work can be done in tandem with #271 after the 22.3.0 stellar-core release.