The current tie-breaking rules in Parsec are a bit weird, especially since recent performance improvements that mean we process less events and reach consensus on more payloads at any time.
Let's try to make the rules more logical:
We know that we want the following properties:
• if all nodes vote for payload X before any node votes for payload Y, X should be polled first (necessary, at least for genesis)
• everything else being equal, we had rather have payloads that have earlier votes come out first (seems fair)
• everything else being equal, we had rather have payloads that had more votes come out first (seems fair)Here is
Here is a suggestion for the new tie-breaking rule, in pseudo-code:
sort by smaller index of this content by this node | then with larger count in the group of transactions that are reaching consensus right at the same time | then with lexicographical order