bosnet / sebak

SEBAK, the next BOScoin Blockchain
https://devteam.blockchainos.org
GNU General Public License v3.0
44 stars 15 forks source link

Changing proposer selection algorithm #570

Open Charleslee522 opened 5 years ago

Charleslee522 commented 5 years ago

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)]
}

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 commented 5 years ago

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