// Run starts the accountability algorithm to detect which processes caused the fork and finds all processes that had bad behavior
Run starts the accountability algorithm to detect which processes caused the fork and finds all processes that had bad behavior
// Run starts the accountability algorithm to detect which processes caused the fork and finds all processes that had bad behavior
func (acc *Accountability) Run(firstDecisionRound, secondDecisionRound uint64) {
	acc.heightLogs.mutex.Lock()
	defer acc.heightLogs.mutex.Unlock()
	acc.faultySet.Clear()
	acc.preprocessPhase(firstDecisionRound, secondDecisionRound)
	acc.faultDetectionPhase(firstDecisionRound, secondDecisionRound)
}
func ( acc * Accountability ) Run ( firstDecisionRound , secondDecisionRound uint64 ) { acc . heightLogs . mutex . Lock ( ) defer acc . heightLogs . mutex . Unlock ( ) acc . faultySet . Clear ( ) acc . preprocessPhase ( firstDecisionRound , secondDecisionRound ) acc . faultDetectionPhase ( firstDecisionRound , secondDecisionRound ) }
Run starts the accountability algorithm to detect which processes caused the fork and finds all processes that had bad behavior
Run starts the accountability algorithm to detect which processes caused the fork and finds all processes that had bad behavior
// lock logs to prevent other additions during the execution // clear faulty set // first, preprocess messages by scanning all the received vote sets and add missing messages in the processes which omitted to have sent some messages // then, find faulty processes by analyzing their message logs