// Check for faultiness in each process by analyzing the history of messages and making sure it followed the consensus algorithm
Check for faultiness in each process by analyzing the history of messages and making sure it followed the consensus algorithm
// Check for faultiness in each process by analyzing the history of messages and making sure it followed the consensus algorithm
func (acc *Accountability) faultDetectionPhase(firstDecisionRound, secondDecisionRound uint64) {
	wg := sync.WaitGroup{}
	for processID := range acc.heightLogs.messageLogs {
		wg.Add(1)
		go acc.isProcessFaulty(firstDecisionRound, secondDecisionRound, processID, &wg)
	}
	wg.Wait()
}
func ( acc * Accountability ) faultDetectionPhase ( firstDecisionRound , secondDecisionRound uint64 ) { wg := sync . WaitGroup { } for processID := range acc . heightLogs . messageLogs { wg . Add ( 1 ) go acc . isProcessFaulty ( firstDecisionRound , secondDecisionRound , processID , & wg ) } wg . Wait ( ) }
Check for faultiness in each process by analyzing the history of messages and making sure it followed the consensus algorithm
Check for faultiness in each process by analyzing the history of messages and making sure it followed the consensus algorithm
// check for faultiness for each process by analyzing the history of messages and making sure it followed the consensus algorithm // optimize the execution by running the algorithm concurrently for each process // wait for all the goroutines to complete