This question appeared when testing peer addition: we encountered the following scenario:
4 nodes are members of a section
2 new members join while some transactions haven't yet reached consensus (for instance because some old voters voted for these transactions after voting for adding the 2 new peers)
The 2 new members never vote for the old transactions, so they never reach consensus for anyone.
In this situation, PARSEC behaved as expected: a supermajority needs to exist and that's at the time of deciding consensus, which could be different from the time of observing events.
It raises the question, though:
Should new joiners echo any vote that was voted by a supermajority of members of the section before the new joiner joined?
Alternatively, should PARSEC expose some more information so routing can make an informed decision in such situations?
The aim of this task is to answer this question and implement any mitigation needed.