本文整理匯總了Golang中github.com/FactomProject/factomd/common/interfaces.IState.GetFedServers方法的典型用法代碼示例。如果您正苦於以下問題:Golang IState.GetFedServers方法的具體用法?Golang IState.GetFedServers怎麽用?Golang IState.GetFedServers使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/FactomProject/factomd/common/interfaces.IState
的用法示例。
在下文中一共展示了IState.GetFedServers方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: UpdateState
func (e *ServerFault) UpdateState(state interfaces.IState) error {
core, err := e.MarshalCore()
if err != nil {
return err
}
verifiedSignatures := 0
for _, fullSig := range e.SignatureList.List {
sig := fullSig.GetSignature()
v, err := state.VerifyAuthoritySignature(core, sig, state.GetLeaderHeight())
if err != nil {
if err.Error() != "Signature Key Invalid or not Federated Server Key" {
return err
}
}
if v == 1 {
verifiedSignatures++
}
}
feds := state.GetFedServers(state.GetLeaderHeight())
//50% threshold
if verifiedSignatures <= len(feds)/2 {
return fmt.Errorf("Quorum not reached for ServerFault")
}
//TODO: do
/*
state.AddFedServer(e.DBHeight, e.IdentityChainID)
state.UpdateAuthorityFromABEntry(e)
*/
return nil
}
示例2: UpdateState
func (c *RemoveFederatedServer) UpdateState(state interfaces.IState) error {
if len(state.GetFedServers(c.DBHeight)) != 0 {
state.RemoveFedServer(c.DBHeight, c.IdentityChainID)
}
if state.GetOut() {
state.Println(fmt.Sprintf("Removed Federated Server: %x", c.IdentityChainID.Bytes()[:4]))
}
authorityDeltaString := fmt.Sprintf("AdminBlock (RemoveFedMsg DBHt: %d) \n v %s", c.DBHeight, c.IdentityChainID.String()[5:10])
state.AddAuthorityDelta(authorityDeltaString)
state.UpdateAuthorityFromABEntry(c)
return nil
}
示例3: HasEnoughSigs
func (fs *FaultState) HasEnoughSigs(state interfaces.IState) bool {
if fs.SigTally(state) > len(state.GetFedServers(fs.FaultCore.DBHeight))/2 {
return true
}
return false
}
示例4: HasEnoughSigs
func (m *FullServerFault) HasEnoughSigs(state interfaces.IState) bool {
if m.SigTally(state) > len(state.GetFedServers(m.DBHeight))/2 {
return true
}
return false
}