Documentation ¶
Index ¶
- Constants
- func NewDeadlineInfo(periodStart abi.ChainEpoch, deadlineIdx uint64, currEpoch abi.ChainEpoch) *dline.Info
- type AddressSelector
- type CompleteGeneratePoSTCb
- type CompleteSubmitPoSTCb
- type EventsAdapter
- type Miner
- func (m *Miner) Address() address.Address
- func (m *Miner) CommitFlush(ctx context.Context) ([]sealiface.CommitBatchRes, error)
- func (m *Miner) CommitPending(ctx context.Context) ([]abi.SectorID, error)
- func (m *Miner) ForceSectorState(ctx context.Context, id abi.SectorNumber, state sealing.SectorState) error
- func (m *Miner) IsMarkedForUpgrade(id abi.SectorNumber) bool
- func (m *Miner) ListSectors() ([]sealing.SectorInfo, error)
- func (m *Miner) MarkForUpgrade(ctx context.Context, id abi.SectorNumber, snap bool) error
- func (m *Miner) PledgeSector(ctx context.Context) (storage.SectorRef, error)
- func (m *Miner) RemoveSector(ctx context.Context, id abi.SectorNumber) error
- func (m *Miner) Run(ctx context.Context) error
- func (m *Miner) SectorAbortUpgrade(sectorNum abi.SectorNumber) error
- func (m *Miner) SectorAddPieceToAny(ctx context.Context, size abi.UnpaddedPieceSize, r storage.Data, ...) (api.SectorOffset, error)
- func (m *Miner) SectorMatchPendingPiecesToOpenSectors(ctx context.Context) error
- func (m *Miner) SectorPreCommitFlush(ctx context.Context) ([]sealiface.PreCommitBatchRes, error)
- func (m *Miner) SectorPreCommitPending(ctx context.Context) ([]abi.SectorID, error)
- func (m *Miner) SectorsStatus(ctx context.Context, sid abi.SectorNumber, showOnChainInfo bool) (api.SectorInfo, error)
- func (m *Miner) StartPackingSector(sectorNum abi.SectorNumber) error
- func (m *Miner) Stop(ctx context.Context) error
- func (m *Miner) TerminateFlush(ctx context.Context) (*cid.Cid, error)
- func (m *Miner) TerminatePending(ctx context.Context) ([]abi.SectorID, error)
- func (m *Miner) TerminateSector(ctx context.Context, id abi.SectorNumber) error
- type SchedulerState
- type SealingAPIAdapter
- func (s SealingAPIAdapter) ChainBaseFee(ctx context.Context, tok sealing.TipSetToken) (abi.TokenAmount, error)
- func (s SealingAPIAdapter) ChainGetMessage(ctx context.Context, mc cid.Cid) (*types.Message, error)
- func (s SealingAPIAdapter) ChainHead(ctx context.Context) (sealing.TipSetToken, abi.ChainEpoch, error)
- func (s SealingAPIAdapter) ChainReadObj(ctx context.Context, ocid cid.Cid) ([]byte, error)
- func (s SealingAPIAdapter) SendMsg(ctx context.Context, from, to address.Address, method abi.MethodNum, ...) (cid.Cid, error)
- func (s SealingAPIAdapter) StateComputeDataCommitment(ctx context.Context, maddr address.Address, sectorType abi.RegisteredSealProof, ...) (cid.Cid, error)
- func (s SealingAPIAdapter) StateGetRandomnessFromBeacon(ctx context.Context, personalization crypto.DomainSeparationTag, ...) (abi.Randomness, error)
- func (s SealingAPIAdapter) StateGetRandomnessFromTickets(ctx context.Context, personalization crypto.DomainSeparationTag, ...) (abi.Randomness, error)
- func (s SealingAPIAdapter) StateLookupID(ctx context.Context, addr address.Address, tok sealing.TipSetToken) (address.Address, error)
- func (s SealingAPIAdapter) StateMarketStorageDeal(ctx context.Context, dealID abi.DealID, tok sealing.TipSetToken) (*api.MarketDeal, error)
- func (s SealingAPIAdapter) StateMarketStorageDealProposal(ctx context.Context, dealID abi.DealID, tok sealing.TipSetToken) (market.DealProposal, error)
- func (s SealingAPIAdapter) StateMinerActiveSectors(ctx context.Context, maddr address.Address, tok sealing.TipSetToken) (bitfield.BitField, error)
- func (s SealingAPIAdapter) StateMinerAvailableBalance(ctx context.Context, maddr address.Address, tok sealing.TipSetToken) (big.Int, error)
- func (s SealingAPIAdapter) StateMinerDeadlines(ctx context.Context, maddr address.Address, tok sealing.TipSetToken) ([]api.Deadline, error)
- func (s SealingAPIAdapter) StateMinerInfo(ctx context.Context, maddr address.Address, tok sealing.TipSetToken) (miner.MinerInfo, error)
- func (s SealingAPIAdapter) StateMinerInitialPledgeCollateral(ctx context.Context, a address.Address, pci miner.SectorPreCommitInfo, ...) (big.Int, error)
- func (s SealingAPIAdapter) StateMinerPartitions(ctx context.Context, maddr address.Address, dlIdx uint64, ...) ([]api.Partition, error)
- func (s SealingAPIAdapter) StateMinerPreCommitDepositForPower(ctx context.Context, a address.Address, pci miner.SectorPreCommitInfo, ...) (big.Int, error)
- func (s SealingAPIAdapter) StateMinerProvingDeadline(ctx context.Context, maddr address.Address, tok sealing.TipSetToken) (*dline.Info, error)
- func (s SealingAPIAdapter) StateMinerSectorAllocated(ctx context.Context, maddr address.Address, sid abi.SectorNumber, ...) (bool, error)
- func (s SealingAPIAdapter) StateMinerSectorSize(ctx context.Context, maddr address.Address, tok sealing.TipSetToken) (abi.SectorSize, error)
- func (s SealingAPIAdapter) StateMinerWorkerAddress(ctx context.Context, maddr address.Address, tok sealing.TipSetToken) (address.Address, error)
- func (s SealingAPIAdapter) StateNetworkVersion(ctx context.Context, tok sealing.TipSetToken) (network.Version, error)
- func (s SealingAPIAdapter) StateSearchMsg(ctx context.Context, c cid.Cid) (*sealing.MsgLookup, error)
- func (s SealingAPIAdapter) StateSectorGetInfo(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, ...) (*miner.SectorOnChainInfo, error)
- func (s SealingAPIAdapter) StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, ...) (*sealing.SectorLocation, error)
- func (s SealingAPIAdapter) StateSectorPreCommitInfo(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, ...) (*miner.SectorPreCommitOnChainInfo, error)
- func (s SealingAPIAdapter) StateWaitMsg(ctx context.Context, mcid cid.Cid) (sealing.MsgLookup, error)
- type SealingStateEvt
- type StorageWpp
- type SubmitState
- type WdPoStFaultsProcessedEvt
- type WdPoStProofsProcessedEvt
- type WdPoStRecoveriesProcessedEvt
- type WdPoStSchedulerEvt
- type WindowPoStScheduler
Constants ¶
const ( SubmitConfidence = 4 ChallengeConfidence = 1 )
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") )
Variables ¶
This section is empty.
Functions ¶
func NewDeadlineInfo ¶ added in v0.8.1
func NewDeadlineInfo(periodStart abi.ChainEpoch, deadlineIdx uint64, currEpoch abi.ChainEpoch) *dline.Info
Types ¶
type AddressSelector ¶ added in v1.2.3
type AddressSelector struct {
api.AddressConfig
}
func (*AddressSelector) AddressFor ¶ added in v1.2.3
func (as *AddressSelector) AddressFor(ctx context.Context, a addrSelectApi, mi miner.MinerInfo, use api.AddrUse, goodFunds, minFunds abi.TokenAmount) (address.Address, abi.TokenAmount, error)
type CompleteGeneratePoSTCb ¶ added in v0.8.1
type CompleteGeneratePoSTCb func(posts []miner.SubmitWindowedPoStParams, err error)
type CompleteSubmitPoSTCb ¶ added in v0.8.1
type CompleteSubmitPoSTCb func(err error)
type EventsAdapter ¶ added in v0.3.0
type EventsAdapter struct {
// contains filtered or unexported fields
}
func NewEventsAdapter ¶ added in v0.3.0
func NewEventsAdapter(api *events.Events) EventsAdapter
func (EventsAdapter) ChainAt ¶ added in v0.3.0
func (e EventsAdapter) ChainAt(hnd sealing.HeightHandler, rev sealing.RevertHandler, confidence int, h abi.ChainEpoch) error
type Miner ¶
type Miner struct {
// contains filtered or unexported fields
}
Miner is the central miner entrypoint object inside Lotus. It is instantiated in the node builder, along with the WindowPoStScheduler.
This object is the owner of the sealing pipeline. Most of the actual logic lives in the storage-sealing module (sealing.Sealing), and the Miner object exposes it to the rest of the system by proxying calls.
Miner#Run starts the sealing FSM.
func NewMiner ¶
func NewMiner(api fullNodeFilteredAPI, maddr address.Address, ds datastore.Batching, sealer sectorstorage.SectorManager, sc sealing.SectorIDCounter, verif ffiwrapper.Verifier, prover ffiwrapper.Prover, gsd dtypes.GetSealingConfigFunc, feeCfg config.MinerFeeConfig, journal journal.Journal, as *AddressSelector) (*Miner, error)
NewMiner creates a new Miner object.
func (*Miner) CommitFlush ¶ added in v1.10.0
func (*Miner) CommitPending ¶ added in v1.10.0
func (*Miner) ForceSectorState ¶ added in v0.2.5
func (m *Miner) ForceSectorState(ctx context.Context, id abi.SectorNumber, state sealing.SectorState) error
func (*Miner) IsMarkedForUpgrade ¶ added in v0.5.2
func (m *Miner) IsMarkedForUpgrade(id abi.SectorNumber) bool
func (*Miner) ListSectors ¶
func (m *Miner) ListSectors() ([]sealing.SectorInfo, error)
func (*Miner) MarkForUpgrade ¶ added in v0.5.0
func (*Miner) PledgeSector ¶
func (*Miner) RemoveSector ¶ added in v0.4.1
func (*Miner) SectorAbortUpgrade ¶ added in v1.14.0
func (m *Miner) SectorAbortUpgrade(sectorNum abi.SectorNumber) error
func (*Miner) SectorAddPieceToAny ¶ added in v1.11.1
func (m *Miner) SectorAddPieceToAny(ctx context.Context, size abi.UnpaddedPieceSize, r storage.Data, d api.PieceDealInfo) (api.SectorOffset, error)
func (*Miner) SectorMatchPendingPiecesToOpenSectors ¶ added in v1.14.0
func (*Miner) SectorPreCommitFlush ¶ added in v1.10.0
func (*Miner) SectorPreCommitPending ¶ added in v1.10.0
func (*Miner) SectorsStatus ¶ added in v1.11.1
func (m *Miner) SectorsStatus(ctx context.Context, sid abi.SectorNumber, showOnChainInfo bool) (api.SectorInfo, error)
func (*Miner) StartPackingSector ¶ added in v0.5.0
func (m *Miner) StartPackingSector(sectorNum abi.SectorNumber) error
func (*Miner) TerminateFlush ¶ added in v1.4.1
func (*Miner) TerminatePending ¶ added in v1.4.1
func (*Miner) TerminateSector ¶ added in v1.4.1
type SchedulerState ¶ added in v0.7.1
type SchedulerState string
SchedulerState defines the possible states in which the scheduler could be, for the purposes of journalling.
type SealingAPIAdapter ¶ added in v0.3.0
type SealingAPIAdapter struct {
// contains filtered or unexported fields
}
func NewSealingAPIAdapter ¶ added in v0.3.0
func NewSealingAPIAdapter(api fullNodeFilteredAPI) SealingAPIAdapter
func (SealingAPIAdapter) ChainBaseFee ¶ added in v1.10.0
func (s SealingAPIAdapter) ChainBaseFee(ctx context.Context, tok sealing.TipSetToken) (abi.TokenAmount, error)
func (SealingAPIAdapter) ChainGetMessage ¶ added in v1.4.2
func (SealingAPIAdapter) ChainHead ¶ added in v0.3.0
func (s SealingAPIAdapter) ChainHead(ctx context.Context) (sealing.TipSetToken, abi.ChainEpoch, error)
func (SealingAPIAdapter) ChainReadObj ¶ added in v0.3.0
func (s SealingAPIAdapter) ChainReadObj(ctx context.Context, ocid cid.Cid) ([]byte, error)
func (SealingAPIAdapter) SendMsg ¶ added in v0.3.0
func (s SealingAPIAdapter) SendMsg(ctx context.Context, from, to address.Address, method abi.MethodNum, value, maxFee abi.TokenAmount, params []byte) (cid.Cid, error)
func (SealingAPIAdapter) StateComputeDataCommitment ¶ added in v0.3.0
func (s SealingAPIAdapter) StateComputeDataCommitment(ctx context.Context, maddr address.Address, sectorType abi.RegisteredSealProof, deals []abi.DealID, tok sealing.TipSetToken) (cid.Cid, error)
func (SealingAPIAdapter) StateGetRandomnessFromBeacon ¶ added in v1.12.0
func (s SealingAPIAdapter) StateGetRandomnessFromBeacon(ctx context.Context, personalization crypto.DomainSeparationTag, randEpoch abi.ChainEpoch, entropy []byte, tok sealing.TipSetToken) (abi.Randomness, error)
func (SealingAPIAdapter) StateGetRandomnessFromTickets ¶ added in v1.12.0
func (s SealingAPIAdapter) StateGetRandomnessFromTickets(ctx context.Context, personalization crypto.DomainSeparationTag, randEpoch abi.ChainEpoch, entropy []byte, tok sealing.TipSetToken) (abi.Randomness, error)
func (SealingAPIAdapter) StateLookupID ¶ added in v1.4.2
func (s SealingAPIAdapter) StateLookupID(ctx context.Context, addr address.Address, tok sealing.TipSetToken) (address.Address, error)
func (SealingAPIAdapter) StateMarketStorageDeal ¶ added in v0.3.0
func (s SealingAPIAdapter) StateMarketStorageDeal(ctx context.Context, dealID abi.DealID, tok sealing.TipSetToken) (*api.MarketDeal, error)
func (SealingAPIAdapter) StateMarketStorageDealProposal ¶ added in v1.4.2
func (s SealingAPIAdapter) StateMarketStorageDealProposal(ctx context.Context, dealID abi.DealID, tok sealing.TipSetToken) (market.DealProposal, error)
func (SealingAPIAdapter) StateMinerActiveSectors ¶ added in v1.14.0
func (s SealingAPIAdapter) StateMinerActiveSectors(ctx context.Context, maddr address.Address, tok sealing.TipSetToken) (bitfield.BitField, error)
func (SealingAPIAdapter) StateMinerAvailableBalance ¶ added in v1.11.1
func (s SealingAPIAdapter) StateMinerAvailableBalance(ctx context.Context, maddr address.Address, tok sealing.TipSetToken) (big.Int, error)
func (SealingAPIAdapter) StateMinerDeadlines ¶ added in v0.3.0
func (s SealingAPIAdapter) StateMinerDeadlines(ctx context.Context, maddr address.Address, tok sealing.TipSetToken) ([]api.Deadline, error)
func (SealingAPIAdapter) StateMinerInfo ¶ added in v1.2.0
func (s SealingAPIAdapter) StateMinerInfo(ctx context.Context, maddr address.Address, tok sealing.TipSetToken) (miner.MinerInfo, error)
func (SealingAPIAdapter) StateMinerInitialPledgeCollateral ¶ added in v0.3.0
func (s SealingAPIAdapter) StateMinerInitialPledgeCollateral(ctx context.Context, a address.Address, pci miner.SectorPreCommitInfo, tok sealing.TipSetToken) (big.Int, error)
func (SealingAPIAdapter) StateMinerPartitions ¶ added in v1.4.1
func (s SealingAPIAdapter) StateMinerPartitions(ctx context.Context, maddr address.Address, dlIdx uint64, tok sealing.TipSetToken) ([]api.Partition, error)
func (SealingAPIAdapter) StateMinerPreCommitDepositForPower ¶ added in v0.5.0
func (s SealingAPIAdapter) StateMinerPreCommitDepositForPower(ctx context.Context, a address.Address, pci miner.SectorPreCommitInfo, tok sealing.TipSetToken) (big.Int, error)
func (SealingAPIAdapter) StateMinerProvingDeadline ¶ added in v1.4.1
func (s SealingAPIAdapter) StateMinerProvingDeadline(ctx context.Context, maddr address.Address, tok sealing.TipSetToken) (*dline.Info, error)
func (SealingAPIAdapter) StateMinerSectorAllocated ¶ added in v1.1.3
func (s SealingAPIAdapter) StateMinerSectorAllocated(ctx context.Context, maddr address.Address, sid abi.SectorNumber, tok sealing.TipSetToken) (bool, error)
func (SealingAPIAdapter) StateMinerSectorSize ¶ added in v0.3.0
func (s SealingAPIAdapter) StateMinerSectorSize(ctx context.Context, maddr address.Address, tok sealing.TipSetToken) (abi.SectorSize, error)
func (SealingAPIAdapter) StateMinerWorkerAddress ¶ added in v0.3.0
func (s SealingAPIAdapter) StateMinerWorkerAddress(ctx context.Context, maddr address.Address, tok sealing.TipSetToken) (address.Address, error)
func (SealingAPIAdapter) StateNetworkVersion ¶ added in v0.7.2
func (s SealingAPIAdapter) StateNetworkVersion(ctx context.Context, tok sealing.TipSetToken) (network.Version, error)
func (SealingAPIAdapter) StateSearchMsg ¶ added in v0.5.0
func (SealingAPIAdapter) StateSectorGetInfo ¶ added in v0.3.1
func (s SealingAPIAdapter) StateSectorGetInfo(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tok sealing.TipSetToken) (*miner.SectorOnChainInfo, error)
func (SealingAPIAdapter) StateSectorPartition ¶ added in v0.5.0
func (s SealingAPIAdapter) StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tok sealing.TipSetToken) (*sealing.SectorLocation, error)
func (SealingAPIAdapter) StateSectorPreCommitInfo ¶ added in v0.3.0
func (s SealingAPIAdapter) StateSectorPreCommitInfo(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tok sealing.TipSetToken) (*miner.SectorPreCommitOnChainInfo, error)
func (SealingAPIAdapter) StateWaitMsg ¶ added in v0.3.0
type SealingStateEvt ¶ added in v0.7.1
type SealingStateEvt struct { SectorNumber abi.SectorNumber SectorType abi.RegisteredSealProof From sealing.SectorState After sealing.SectorState Error string }
SealingStateEvt is a journal event that records a sector state transition.
type StorageWpp ¶ added in v0.3.0
type StorageWpp struct {
// contains filtered or unexported fields
}
func NewWinningPoStProver ¶ added in v0.3.0
func NewWinningPoStProver(api v1api.FullNode, prover storage.Prover, verifier ffiwrapper.Verifier, miner dtypes.MinerID) (*StorageWpp, error)
func (*StorageWpp) ComputeProof ¶ added in v0.3.0
func (wpp *StorageWpp) ComputeProof(ctx context.Context, ssi []builtin.ExtendedSectorInfo, rand abi.PoStRandomness, currEpoch abi.ChainEpoch, nv network.Version) ([]builtin.PoStProof, error)
func (*StorageWpp) GenerateCandidates ¶ added in v0.3.0
func (wpp *StorageWpp) GenerateCandidates(ctx context.Context, randomness abi.PoStRandomness, eligibleSectorCount uint64) ([]uint64, error)
type SubmitState ¶ added in v0.8.1
type SubmitState string
const ( SubmitStateStart SubmitState = "SubmitStateStart" SubmitStateSubmitting SubmitState = "SubmitStateSubmitting" SubmitStateComplete SubmitState = "SubmitStateComplete" )
type WdPoStFaultsProcessedEvt ¶ added in v0.7.1
type WdPoStFaultsProcessedEvt struct { Declarations []miner.FaultDeclaration MessageCID cid.Cid `json:",omitempty"` // contains filtered or unexported fields }
WdPoStFaultsProcessedEvt is the journal event that gets recorded when Windowed PoSt faults have been processed.
type WdPoStProofsProcessedEvt ¶ added in v0.7.1
type WdPoStProofsProcessedEvt struct { Partitions []miner.PoStPartition MessageCID cid.Cid `json:",omitempty"` // contains filtered or unexported fields }
WdPoStProofsProcessedEvt is the journal event that gets recorded when Windowed PoSt proofs have been processed.
type WdPoStRecoveriesProcessedEvt ¶ added in v0.7.1
type WdPoStRecoveriesProcessedEvt struct { Declarations []miner.RecoveryDeclaration MessageCID cid.Cid `json:",omitempty"` // contains filtered or unexported fields }
WdPoStRecoveriesProcessedEvt is the journal event that gets recorded when Windowed PoSt recoveries have been processed.
type WdPoStSchedulerEvt ¶ added in v0.7.1
type WdPoStSchedulerEvt struct { State SchedulerState // contains filtered or unexported fields }
WdPoStSchedulerEvt is the journal event that gets recorded on scheduler actions.
type WindowPoStScheduler ¶ added in v0.3.0
type WindowPoStScheduler struct {
// contains filtered or unexported fields
}
WindowPoStScheduler is the coordinator for WindowPoSt submissions, fault declaration, and recovery declarations. It watches the chain for reverts and applies, and schedules/run those processes as partition deadlines arrive.
WindowPoStScheduler watches the chain though the changeHandler, which in turn turn calls the scheduler when the time arrives to do work.
func NewWindowedPoStScheduler ¶ added in v0.3.0
func NewWindowedPoStScheduler(api fullNodeFilteredAPI, cfg config.MinerFeeConfig, as *AddressSelector, sp storage.Prover, verif ffiwrapper.Verifier, ft sectorstorage.FaultTracker, j journal.Journal, actor address.Address) (*WindowPoStScheduler, error)
NewWindowedPoStScheduler creates a new WindowPoStScheduler scheduler.
func (*WindowPoStScheduler) Run ¶ added in v0.3.0
func (s *WindowPoStScheduler) Run(ctx context.Context)