OSDN Git Service

get standby nodes
[bytom/vapor.git] / toolbar / common / consensus.go
diff --git a/toolbar/common/consensus.go b/toolbar/common/consensus.go
new file mode 100644 (file)
index 0000000..014ee51
--- /dev/null
@@ -0,0 +1,25 @@
+package common
+
+import (
+       "sort"
+
+       "github.com/vapor/api"
+       "github.com/vapor/consensus"
+)
+
+const NumOfBPNode = 42
+
+func CalcStandByNodes(voteResult []api.VoteInfo) []api.VoteInfo {
+       sort.Slice(voteResult, func(i, j int) bool {
+               return voteResult[i].VoteNum > voteResult[j].VoteNum
+       })
+
+       result := []api.VoteInfo{}
+       for i := int(consensus.ActiveNetParams.NumOfConsensusNode); i < NumOfBPNode && i < len(voteResult); i++ {
+               if voteResult[i].VoteNum < consensus.ActiveNetParams.MinConsensusNodeVoteNum {
+                       break
+               }
+               result = append(result, voteResult[i])
+       }
+       return result
+}