bobg / scp

Standalone implementation of the Stellar Consensus Protocol.
MIT License
36 stars 4 forks source link

How fast is this implementation compared to stellar's? #9

Open AndrejMitrovic opened 4 years ago

AndrejMitrovic commented 4 years ago

As far as I understand it Stellar produces many blocks per minute, usually closing a ledger every 5-6 seconds.

I've tried to use the lunch.go script with a quorum config with around 36 nodes, the first slot externalizes fast, but slot 2 takes a very long time (over a minute).

Here's the quorum config I've used: https://gist.github.com/AndrejMitrovic/f59a0e47e6a0c1fe8be74e690ff60eb6

bobg commented 4 years ago

Hey, sorry I missed this when you first opened it.

To answer your question: I have heard a number of times that Stellar closes a new ledger every five seconds or so. However, when I've gone asking how this is possible, based on the results I've seen with this tool (which match your experience - sometimes fast, sometimes quite slow), I've never gotten a clear answer, even from senior people within the Stellar project.

Of course it's possible that there's some error in my implementation and a correct implementation never encounters very slow ledgers. But considering that probabilistic outcomes are at the heart of the protocol, occasionally slow ledgers seem unavoidable.

This remains a mystery to me that I'd like to understand better. As such, if you don't mind, I'd like to keep this issue open.

AndrejMitrovic commented 4 years ago

Sure! Thanks a lot for reaching back.

My experience is similar to yours. The last time I asked a protocol question in their newsgroups they just outright deleted my post. https://stellar.stackexchange.com/ is a little better, but questions often go unanswered there too.

I haven't looked deeply into your implementation yet. I'm quite familiar with the nomination protocol in SCP, but I'm still researching the Balloting protocol. If I figure out what's different about their implementation and yours, I'll let you know!

By the way, your blog post on https://medium.com/interstellar/understanding-the-stellar-consensus-protocol-423409aad32e is fantastic! Thanks a lot for the hard work on making a digestible write-up!