mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-05-31 03:06:44 +00:00

* [NOD-1590] Moved all finality logic to FinalityManager * [NOD-1590] Add finality store * [NOD-1590] Implement optimized finalityPoint calculation mechanism * [NOD-1590] Add comments * [NOD-1590] Add finalityStore to consensus object, and TestConsensus * [NOD-1590] Added logs to finalityPoint calculation
25 lines
745 B
Go
25 lines
745 B
Go
package consensusstatemanager
|
|
|
|
import "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
|
|
|
func (csm *consensusStateManager) checkFinalityViolation(
|
|
blockHash *externalapi.DomainHash) error {
|
|
|
|
log.Tracef("checkFinalityViolation start for block %s", blockHash)
|
|
defer log.Tracef("checkFinalityViolation end for block %s", blockHash)
|
|
|
|
isViolatingFinality, err := csm.finalityManager.IsViolatingFinality(blockHash)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
if isViolatingFinality {
|
|
csm.blockStatusStore.Stage(blockHash, externalapi.StatusUTXOPendingVerification)
|
|
log.Warnf("Finality Violation Detected! Block %s violates finality!", blockHash)
|
|
return nil
|
|
}
|
|
log.Tracef("Block %s does not violate finality", blockHash)
|
|
|
|
return nil
|
|
}
|