package wdpost import ( "github.com/ipfs/go-cid" "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/dline" "github.com/filecoin-project/lotus/chain/actors/builtin/miner" ) // SchedulerState defines the possible states in which the scheduler could be, // for the purposes of journalling. type SchedulerState string const ( // SchedulerStateStarted gets recorded when a WdPoSt cycle for an // epoch begins. SchedulerStateStarted = SchedulerState("started") // SchedulerStateAborted gets recorded when a WdPoSt cycle for an // epoch is aborted, normally because of a chain reorg or advancement. SchedulerStateAborted = SchedulerState("aborted") // SchedulerStateFaulted gets recorded when a WdPoSt cycle for an // epoch terminates abnormally, in which case the error is also recorded. SchedulerStateFaulted = SchedulerState("faulted") // SchedulerStateSucceeded gets recorded when a WdPoSt cycle for an // epoch ends successfully. SchedulerStateSucceeded = SchedulerState("succeeded") ) // Journal event types. const ( evtTypeWdPoStScheduler = iota evtTypeWdPoStProofs evtTypeWdPoStRecoveries evtTypeWdPoStFaults ) // evtCommon is a common set of attributes for Windowed PoSt journal events. type evtCommon struct { Deadline *dline.Info Height abi.ChainEpoch TipSet []cid.Cid Error error `json:",omitempty"` } // WdPoStSchedulerEvt is the journal event that gets recorded on scheduler // actions. type WdPoStSchedulerEvt struct { evtCommon State SchedulerState } // WdPoStProofsProcessedEvt is the journal event that gets recorded when // Windowed PoSt proofs have been processed. type WdPoStProofsProcessedEvt struct { evtCommon Partitions []miner.PoStPartition MessageCID cid.Cid `json:",omitempty"` } // WdPoStRecoveriesProcessedEvt is the journal event that gets recorded when // Windowed PoSt recoveries have been processed. type WdPoStRecoveriesProcessedEvt struct { evtCommon Declarations []miner.RecoveryDeclaration MessageCID cid.Cid `json:",omitempty"` } // WdPoStFaultsProcessedEvt is the journal event that gets recorded when // Windowed PoSt faults have been processed. type WdPoStFaultsProcessedEvt struct { evtCommon Declarations []miner.FaultDeclaration MessageCID cid.Cid `json:",omitempty"` }