OSDN Git Service

get standby nodes (#355)
[bytom/vapor.git] / toolbar / common / consensus.go
1 package common
2
3 import (
4         "sort"
5
6         "github.com/vapor/api"
7         "github.com/vapor/consensus"
8 )
9
10 const NumOfBPNode = 42
11
12 func CalcStandByNodes(voteResult []*api.VoteInfo) []*api.VoteInfo {
13         sort.Slice(voteResult, func(i, j int) bool {
14                 return voteResult[i].VoteNum > voteResult[j].VoteNum
15         })
16
17         result := []*api.VoteInfo{}
18         for i := int(consensus.ActiveNetParams.NumOfConsensusNode); i < NumOfBPNode && i < len(voteResult); i++ {
19                 if voteResult[i].VoteNum < consensus.ActiveNetParams.MinConsensusNodeVoteNum {
20                         break
21                 }
22                 result = append(result, voteResult[i])
23         }
24         return result
25 }