Skip to content

Improve quorum set generation from simple quorums #278

@bboston7

Description

@bboston7

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions