4

Suppose I want to set up four nodes: A, B, C, D. I want A to trust B, and C to trust D, so the set is denoted by {{A, b}, {C, D}}.

I want to set up a situation where either one of these sets can vote "yes" and the transaction is approved, but in order to vote "yes," both nodes inside the set must agree. In other words, the transaction is approved if A*B + C*D.

I think my quorum set would look like this:

[QUORUM_SET.1]
THRESHOLD_PERCENT=100
VALIDATORS=["A","B"]

[QUORUM_SET.2]
THRESHOLD_PERCENT=100
VALIDATORS=["C", "D"]

So, I have two questions at this point.

  1. Is this possible, where either one of Y number of quorum sets can agree and the transaction is approved?

  2. I'd have to be running four stellar-core instances to achieve this. Do all four nodes have to replicate this configuration, or can I just include A's and B's information in A's and B's configuration? For example, can I set up my Core nodes representing A and B like this:

    [QUORUM_SET.1] THRESHOLD_PERCENT=100 VALIDATORS=["$self", "B"] And then for the Core instance representing B:

    [QUORUM_SET.2] THRESHOLD_PERCENT=100 VALIDATORS=["$self", "A"]

2 Answers 2

1

A couple things.

First, the way quorum sets are configured are always done in the context of a validator.

A validator will never “vote” for something it doesn’t agree with so when you have things like “AB+CD” in the context of A it just means that C and D’s votes won’t matter for A (unless B somehow depends on them).

Second, you need a property called “quorum intersection”. This configuration would not have this property as the (missing) top level quorum configuration that you want is [QUORUM_SET] THRESHOLD_PERCENT=50 This configuration requires to set “unsafe quorum” in the configuration as it doesn’t meet the criteria.

The property says that you cannot have two disjoint sets of node reaching quorum independently, in your case “A,C” and “B,D” would be an example of a bad network split.

1
  • Ok, I think I get it. So [quorum_set] can contain either [A,C], [A,D], [B,C] or [B,D] so that I can create an intersection, correct? And then in the [quorum_set] section I'd set THRESHHOLD_PERCENT=50?
    – Munawar
    Commented Apr 24, 2018 at 16:11
1

All Stellar-Core nodes do not need to have the same configuration. But there needs to be a crossover between the quorum sets so that they can be a part of the same network.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.