In order for a node to determine that a ledger has been confirmed, it needs to know that a proportion of other nodes in one of its quorum has accepted the ledger. In order to determine which nodes have accepted a ledger a node needs to know how all nodes in its quorums voted.

A quorum could be quite large (hundreds or thousands of nodes), since it is a set of nodes which encompasses at least one quorum slice for each node in the quorum.

Looking at the example config here https://github.com/stellar/stellar-core/blob/master/docs/stellar-core_example.cfg I can see that the maximum peer connections it allows is 16.

Given the 16 node connection limit, it doesn't seem like a node could even connect to all the nodes in their quorum, obviously the limit could be set higher, but you don't know in advance how big your quorum will be, so you cannot be sure that it wil be high enough.

Given that for a node to discover its quorums it needs to ask all nodes in its quorums for thier SCPQuorumSets, but it can't even connect to every node in its quorums, how does a node discover its quorums?

up vote 3 down vote accepted

Nodes rely on the fact that SCP messages are broadcasted to all peers on the network (for the most part); the number of peer to peer connections just increases the chances that the network as a whole is strongly connected (it's mostly randomly connected) which in turn pretty much guarantees that messages eventually reach all peers on the network.

Note that the quorum information is orthogonal to this: it represents the trust graph.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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