-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Is it bad that the tie breaking rule doesn't give keys a total order? #18
Comments
Let me try to understand the problem more formally. Given epoch keys X and Y, the tie breaking rule could pick Y, so it may seem that "Y" is "greatest", i.e. Given epoch keys X, Y, Z, the tie breaking rule could pick Z, it may seem that "Z" is "greatest", i.e. Blending with the results above, that gives us However, given epoch keys X and Z only, the tie breaking rule could pick X, i.e. contradicting the previous outcomes. Could that be a problem? Perhaps it could, here's how: graph TB;
zero[E: a,b,c,d,e]
zero--"a excludes c"-->X[X: a,b,d,e]
zero--"b excludes d"-->Y[Y: a,b,c,e]
zero--"c excludes e"-->Z[Z: a,b,c,d]
This ⬆️ is what But this ⬇️ is what graph TB;
zero[E: a,b,c,d,e]
zero--"b excludes d"-->Y[Y: a,b,c,e]
zero--"c excludes e"-->Z[Z: a,b,c,d]
And BUT this ⬇️ is what graph TB;
zero[E: a,b,c,d,e]
zero--"a excludes c"-->X[X: a,b,d,e]
zero--"c excludes e"-->Z[Z: a,b,c,d]
And |
But then if we want a b and c to know that Z should be the winner, even before they've all discovered all 3 forks, then we need to revert the current tie breaking rule and use something with an always obvious winner, like the alphabetical sort thing we discussed originally. |
I have another idea: we could go back to the simple lexicographic order as before. The problem there was that you could "brute force" a strong epoch key. So what if we include the requirement that every epoch key has to do a little bit of brute forcing to get an epoch key that has I don't know, now that I wrote it it sounds like a weak idea. |
yeah i think the benefit from that would be very marginal |
just wrote this in chat
The text was updated successfully, but these errors were encountered: