In the description of the transaction life cycle it is mentioned that:

SCP resolves the differences between the various transaction sets proposed and decides on the one transaction set that the network will apply.

My understanding is that difference instances of stellar-core might decide to add different transactions in a transaction set, but why would that happen? Then, how specifically the servers reach a consensus about which transaction set is the right one?

1 Answer 1


There are two distinct phases/sub-protocols with different purpose in SCP:

the ballot protocol ensures that if a quorum agrees to something, all nodes will agree to the same thing;

the nomination protocol is there to pick “interesting values” to feed into the ballot protocol.

An interesting value is constructed such that: it converges over time, values are likely to be confirmed by the quorum (not guaranteed, there are some edge cases that may cause a new value to be generated later to unblock the ballot protocol).

When the nomination protocol “starts”, nodes use whatever transactions they know about as a starting point and over the course of the consensus round resolve conflicts by merging transaction sets.

You can read more about this in the section “6.1 nomination protocol” in the SCP white paper

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.