Simplify tie-breaking rule in PARSEC's implementation

Description

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

Environment

None

Status

Assignee

Unassigned

Reporter

Pierre Chevalier

Labels

External issue URL

None

External issue ID

None

Start date

None

End date

None

Task progress

None

Baseline start date

None

Baseline end date

None

Story Points

4

Epic Link

Components

Priority

Minor
Configure