HashConsensus
HashConsensus is a contract that gets consensus reports (i.e. hashes) pushed to and processes them asynchronously.
HashConsensus doesn't expect any specific behavior from a report processor, and guarantees the following:
HashConsensus won't submit reports via
IReportAsyncProcessor.submitConsensusReport
or ask to discard reports viaIReportAsyncProcessor.discardConsensusReport
for any slot up to (and including) the slot returned fromIReportAsyncProcessor.getLastProcessingRefSlot
.HashConsensus won't accept member reports (and thus won't include such reports in calculating the consensus) that have
consensusVersion
argument of theHashConsensus.submitReport
call holding a diff. value than the one returned fromIReportAsyncProcessor.getConsensusVersion()
at the moment of theHashConsensus.submitReport
call.