sebak icon indicating copy to clipboard operation
sebak copied to clipboard

Changing proposer selection algorithm

Open Charleslee522 opened this issue 7 years ago • 1 comments

The proposer selection algorithm is like below. https://github.com/bosnet/sebak/wiki/How-to-select-the-proposer

func CalculateProposer(blockHeight int, roundNumber int) string {
	candidates := sort.StringSlice(nr.connectionManager.RoundCandidates())
	candidates.Sort()

	return candidates[(blockHeight + roundNumber)%len(candidates)]
}
  • I think the good selection algorithm is that,
    1. the proposer is changed every round.
    2. to predict the specific height and round proposer is impossible. -> next year

But in our selection algorithm, if the block is confirmed in round 1, the next proposer is same as before. And I think this situation will happen often. So this the proposer is changed every round condition is not satisfied.

Therefore I want to suggest the new selection algorithm that the proposer is changed every round.

Charleslee522 avatar Oct 22 '18 01:10 Charleslee522

Applying VRF into this method is good start for open membership.

Charleslee522 avatar Mar 07 '19 07:03 Charleslee522