Skip to content
This repository has been archived by the owner on Nov 6, 2020. It is now read-only.

Obsolete warning about even number of validators? (Authority Round) #11107

Closed
afck opened this issue Oct 1, 2019 · 6 comments
Closed

Obsolete warning about even number of validators? (Authority Round) #11107

afck opened this issue Oct 1, 2019 · 6 comments
Labels
Z1-question 🙋‍♀️ Issue is a question. Closer should answer.

Comments

@afck
Copy link
Contributor

afck commented Oct 1, 2019

SimpleList::new prints a warning about a "risk of network split" when the number of validators is even.

Does #10909 make that warning obsolete after transitioning to a 2/3 quorum?
I'm not sure I understand the warning in the first place, though: Since even with a 1/2 quorum finality requires strictly more than 50%, why does an even number of validators increase the risk of a network split?

@dvdplm
Copy link
Collaborator

dvdplm commented Oct 1, 2019

Yeah maybe we should reword that (cc @tomusdrw); the reason it's there is we didn't want to waste time on debugging odd bugs when running with unsupported setups (like e.g. two nodes).

2/3s quorum is not mandatory though right? Recommended but not mandatory?

@afck
Copy link
Contributor Author

afck commented Oct 1, 2019

Yes, it's a transition and if that's not configured then the default is 50%.

@tomusdrw
Copy link
Collaborator

tomusdrw commented Oct 2, 2019

We don't recommend running with even number of validators, cause in the past we have seen splits, where n/2 validators where producing blocks on one chain and n/2 on the other. Since both chains progressed almost simultaneously the clients that saw both chains were constantly re-organizing between the two (since they had the same weight).
Having odd number of validators prevents this situation (given all validators are online), cause one chain will actually reach finality.
That's obviously a very specific case, but we have seen that in the past and wanted to make users aware that this is not really recommended.

With 2/3 majority and small number of validators the issue might be even worse, cause we may see very long forks and never reach finality (with 5 validators you need 4 to reach finality).

I'm fine with removing the warning in case 2/3 majority is enabled (as it doesn't make much sense), but we might consider adding a warning when the number of validators is below 6 that you need to make sure that validators are (very) well connected and online.

@afck
Copy link
Contributor Author

afck commented Oct 2, 2019

Thank you for the explanation!
If I understand correctly, that means the warning does still make sense in the 2/3 case as well? (Nothing will get finalized, so they will continue alternating between the two chains.)

It rather sounds like the proper solution to this issue would be some sort of a tie-breaker, to make sure that in a situation where the nodes are split 50-50, they all switch to the same alternative?

Anyway, feel free to close this issue!

@jam10o-new jam10o-new added the Z1-question 🙋‍♀️ Issue is a question. Closer should answer. label Oct 2, 2019
@dvdplm
Copy link
Collaborator

dvdplm commented Oct 2, 2019

@afck the whole point of the warning is to give users a heads-up that what they are doing is potentially dangerous, so if you have a suggestion on better wording here I'd be happy to change it. I mean, if its meaning is unclear to you who are very knowledgeable about this stuff, perhaps it's not very good as is today? How can we improve it?

@dvdplm dvdplm reopened this Oct 2, 2019
@afck
Copy link
Contributor Author

afck commented Oct 2, 2019

I actually think the formulation is okay.
My confusion was just that I thought the move to a 2/3 quorum might have made it obsolete; but it has not much to do with the quorum for finality, and it doesn't claim to.

who are very knowledgeable about this stuff

Not really. 😅 I wasn't involved in the original development of Authority Round, and still trying to wrap my head around it.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Z1-question 🙋‍♀️ Issue is a question. Closer should answer.
Projects
None yet
Development

No branches or pull requests

4 participants