Technically, this is probably considered a voting protocol, but it doesn't really seem like one. Presumably every backup router would vote for itself and a majority-style winner would never be selected. That makes it more like Rock Paper Scissors, or Eeny-Meeny-Miney-Moe.
Some unique identifier for each backup router would have to be known by all the backups in order for them all to do the replicated calculation to arrive at the same result more or less simultaneously. Using that identifier, just establish which direction is clockwise and then the Eeny-Meeny method applies.
As for determining whether the master has died, the "You Snooze, You Lose" method could be used. A simple timeout could cause one or more backups to declare Eeny-Meeny to be in effect. If the previous master then came back, it would see the Eeny-Meeny declaration and then proceed to do its own calculation by eliminating itself from the candidates, and then rejoin as another backup. Maybe that's harder than it sounds.
Periodically switching masters might be a good thing, as long as the timeout threshold was not too low. Making this whole procedure painless and quick would certainly add to the stability of the whole Croquet match.
Andreas Raab wrote:
>But herein lies a problem: We currently don't have an
>implementation of a voting protocol (byzantine or not) by which
>the backups could decide whether the master is considered down or
>not and which of the backups becomes the new master.