// Validate the message, given the state. Three possible results: // < 0 -- Message is invalid. Discard // 0 -- Cannot tell if message is Valid // 1 -- Message is valid func (m *DirectoryBlockSignature) Validate(state interfaces.IState) int { if m.DBHeight < state.GetLLeaderHeight() { return -1 } if m.DBHeight > state.GetLLeaderHeight() { return 0 } found, _ := state.GetVirtualServers(m.DBHeight, 9, m.ServerIdentityChainID) if found == false { return 0 } if m.IsLocal() { return 1 } // ********************************* NEEDS FIXED ************** // Need to check the signature for real. TODO: isVer, err := m.VerifySignature() if err != nil || !isVer { // if there is an error during signature verification // or if the signature is invalid // the message is considered invalid return -1 } return 1 }
// Validate the message, given the state. Three possible results: // < 0 -- Message is invalid. Discard // 0 -- Cannot tell if message is Valid // 1 -- Message is valid func (m *EOM) Validate(state interfaces.IState) int { if m.IsLocal() { return 1 } found, _ := state.GetVirtualServers(m.DBHeight, int(m.Minute), m.ChainID) if !found { // Only EOM from federated servers are valid. return -1 } // Check signature eomSigned, err := m.VerifySignature() if err != nil { return -1 } if !eomSigned { return -1 } return 1 }