Hot answers tagged

10 votes
Accepted

How does the Stellar Consensus Protocol prevent Sybil attacks?

I'll take a try to explain in simpler terms. But first I assume you understand that Quorum Slices are to help a Stellar node do the validation. Stellar is all about trust (validators). After all, ...
  • 1,517
4 votes
Accepted

Consensus about a transaction set

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 ...
4 votes

How are timestamps deemed invalid?

If you look at the stellar-core codebase, under the HerderSCPDriver's validateValueHelper function, there is this code snippet: // Check closeTime (not too old) if (b.closeTime <= ...
  • 627
4 votes

How is the node ID assigned to a stellar core node?

Each node has it's own unique NODE_SEED which is used for messages signing. It can be set in the config file. The seed used for generating the public key this node will be identified with in SCP (that'...
  • 6,846
4 votes
Accepted

When is a slot created in the Stellar Consensus Protocol?

slot is simply a ledger number in Stellar implementation. Once previous ledger closed nodes start by proposing candidates for the next "slot" and then vote on it. Some relevant info can be ...
  • 938
4 votes

How does the Stellar Consensus Protocol prevent Sybil attacks?

The Stellar Consensus Protocol is a form of Byzantine agreement protocol. It is said to be Sybil-proof. It is discussed in page 3 of the Stellar Consensus Protocol official paper And I really can't ...
  • 1,050
4 votes
Accepted

What is asymptotic security and why does Stellar, but not POW exhibit this?

As a practical matter, SCP's asymptotic security follows from the fact that it depends only on digital signatures (and hash functions) for security, and that these can be tuned to resist arbitrarily ...
  • 1,221
4 votes

How a new node trusts another node in the network

This certainly deserves a more complete answer than I'm about to give, and hopefully someone can go ahead and give it -- but the root of it is that a node chooses (manually) which other notes to ...
  • 1,174
4 votes
Accepted

Partial vs Complete Catchup: what are the differences in terms of security?

Each node synchronizes the state with the quorum set, so archives tampering won't work. The node will be unable to catch up with SCP quorum if the local state differs from the quorum-approved state. ...
  • 6,846
4 votes

Could consensus period be changed?

The tricky part is that the timer for the nomination rounds of the SCP protocol starts five seconds after the previous slot's nomination protocol has ended. If you want to have an arbitrary delay ...
  • 1,221
3 votes
Accepted

Unable to find 5 sec slot timing in code base

I found method which returns the expected ledger closing time, std::chrono::seconds Config::getExpectedLedgerCloseTime() const { if (ARTIFICIALLY_SET_CLOSE_TIME_FOR_TESTING) { return ...
3 votes
Accepted

Why does the high level threshold level for quorum have to be above 66%?

This is by analogy with symmetric Byzantine agreement protocols (in which everyone has the same quorum slices). You need any two quorums to intersect at an honest node. If your threshold is 2/3 or ...
  • 1,221
3 votes
Accepted

How does a node discover the quorums that it is in?

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 ...
3 votes

What is asymptotic security and why does Stellar, but not POW exhibit this?

You're mixing up two completely different concepts here. One is about transaction finality, and the other is about resistance to sybil attacks. POW has probabilistic finality, since there's always ...
  • 1,947
3 votes
Accepted

What does it mean with "surge pricing in effect" at Stellar-Core?

The function you linked to seems to be removing the transactions from a transaction set that have the lowest fees, until the set size equals 100. This corresponds with the documentation which states: ...
  • 3,367
3 votes
Accepted

What state is a transaction in after being succesfully posted?

Yes, Horizon waits for the transaction to be included into the ledger. SCP protocol implies immediate finality after the confirmation, so your transaction is 100% confirmed and included into the ...
  • 6,846
2 votes
Accepted

How can I query or visualize the quorum slices of the Stellar network?

If you run a stellar-core instance, it is possible to query the quorum set for any validator via an http request on port 11626: Here is the endpoint your would use: quorum /quorum?[node=NODE_ID][&...
  • 627
2 votes
Accepted

Questions about SCP and federated voting steps, with a focus on the Internet-Draft

The SCPPrepare message conveys "vote commit ballot ". However, it does not convey "accept commit c" for any c, because if it accepts any commit message then it immediately proceeds to the COMMIT ...
  • 1,221
2 votes

What are the message size limitations of stellar consensus protocol?

SCP doesn't have any theoretical limits, since really all you need to agree on is a SHA-256 hash of an arbitrary-sized set of transactions. However, the Stellar validators vote to set a maximum ...
  • 1,221
2 votes

Stuck in "Joining SCP" state with info “Lost track of consensus”

If you’re trying to build a 2 nodes setup it’s unlikely to work: the only safe way to run such a setup would be to have nodes that depend on each other (ie neither can go down) as otherwise you would ...
2 votes

What is the difference between SCP and FBA?

The Stellar Consensus Protocol is a type of federated Byzantine agreement protocol. So FBA is a broader category that includes SCP. There's a more recent peer-reviewed paper written for the SOSP that ...
1 vote
Accepted

Partial Catch-up on Validator nodes

Having consulted my local expert, it appears that when I perform a partial catchup, the core retrieves the entire state of the blockchain, just not the entire transaction history of the blockchain. ...
  • 1,581
1 vote

How does a stellar node know that node its communicating with is definitively in or outside its quorum group?

The protocol consists of exchanging digitally-signed messages bound to nodes' quorum slices. ( https://datatracker.ietf.org/doc/draft-mazieres-dinrg-scp/ ) The trusted nodeIds that you put in your ...
  • 2,514
1 vote

SCP Safety Guarantee Question

A node can only be befouled if there exists an ill-behaved node befouling the node. This is only true if you have nominal quorum intersection. That's why so many of the theorems say "assume an FBAS ...
  • 1,221
1 vote
Accepted

New node is lagging behind the old one

So fixed this problem. My node1's get in history was not pointing to the node2's archive path. After setting them properly it worked. Node1's history configuration [HISTORY.local] get="cp /tmp/...
1 vote
Accepted

Nomination protocol differences between implementation and specification

At this point, there are a bunch of small ways in which the internet draft is not wire compatible with stellar-core. The most important is that while multiple people have implemented SCP, there is ...
  • 1,221
1 vote

How does the Stellar protocol ensure a network doesn't have disjoint quorums?

Yes. Stellar Development Foundation (SDF) maintains three validators, which you can find in this list of validators. If you include at least one of them in every quorum slice, you will stay in sync ...
  • 1,221
1 vote

SCP. Does non-intersecting quorums have different ledgers?

1) Do all nodes in stellar-network know about my transaction and decide whether to include it in the ledger or not? Or does the decision accept only the quorum to which I belong? Yes, all nodes ...
  • 1,221
1 vote

Is there a minimal implementation of Stellar Consensus Protocol besides stellar-core?

I believe there are implementations either complete or in progress, but am not sure if any have been publicly released. If you want to implement SCP, I strongly recommend starting with the protocol ...
  • 1,221
1 vote

Questions about SCP and federated voting steps, with a focus on the Internet-Draft

As per my understanding, the flow should be like this: SCP NOMINATION SCPNominate Vote x Accept x Confirm x BALLOTING SCPPrepare ...

Only top scored, non community-wiki answers of a minimum length are eligible