MCPcopy Create free account
hub / github.com/DNAProject/DNA / GetPeersConfig

Function GetPeersConfig

consensus/vbft/utils.go:188–221  ·  view source on GitHub ↗
(memdb *overlaydb.MemDB)

Source from the content-addressed store, hash-verified

186}
187
188func GetPeersConfig(memdb *overlaydb.MemDB) ([]*config.VBFTPeerStakeInfo, error) {
189 goveranceview, err := GetGovernanceView(memdb)
190 if err != nil {
191 return nil, err
192 }
193 viewBytes, err := gov.GetUint32Bytes(goveranceview.View)
194 if err != nil {
195 return nil, err
196 }
197 key := append([]byte(gov.PEER_POOL), viewBytes...)
198 data, err := GetStorageValue(memdb, ledger.DefLedger, nutils.GovernanceContractAddress, key)
199 if err != nil {
200 return nil, err
201 }
202 peerMap := &gov.PeerPoolMap{
203 PeerPoolMap: make(map[string]*gov.PeerPoolItem),
204 }
205 err = peerMap.Deserialization(common.NewZeroCopySource(data))
206 if err != nil {
207 return nil, err
208 }
209 var peerstakes []*config.VBFTPeerStakeInfo
210 for _, id := range peerMap.PeerPoolMap {
211 if id.Status == gov.CandidateStatus || id.Status == gov.ConsensusStatus {
212 config := &config.VBFTPeerStakeInfo{
213 Index: uint32(id.Index),
214 PeerPubkey: id.PeerPubkey,
215 InitPos: id.InitPos + id.TotalPos,
216 }
217 peerstakes = append(peerstakes, config)
218 }
219 }
220 return peerstakes, nil
221}
222
223func isUpdate(memdb *overlaydb.MemDB, view uint32) (bool, error) {
224 goveranceview, err := GetGovernanceView(memdb)

Callers 1

getChainConfigFunction · 0.85

Calls 3

DeserializationMethod · 0.95
GetStorageValueFunction · 0.85
GetGovernanceViewFunction · 0.70

Tested by

no test coverage detected