storage

package
v1.15.1-rc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 17, 2022 License: Apache-2.0, MIT Imports: 45 Imported by: 4

Documentation

Index

Constants

View Source
const (
	SubmitConfidence    = 4
	ChallengeConfidence = 1
)
View Source
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) Address added in v0.3.0

func (m *Miner) Address() address.Address

func (*Miner) CommitFlush added in v1.10.0

func (m *Miner) CommitFlush(ctx context.Context) ([]sealiface.CommitBatchRes, error)

func (*Miner) CommitPending added in v1.10.0

func (m *Miner) CommitPending(ctx context.Context) ([]abi.SectorID, error)

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 (m *Miner) MarkForUpgrade(ctx context.Context, id abi.SectorNumber, snap bool) error

func (*Miner) PledgeSector

func (m *Miner) PledgeSector(ctx context.Context) (storage.SectorRef, error)

func (*Miner) RemoveSector added in v0.4.1

func (m *Miner) RemoveSector(ctx context.Context, id abi.SectorNumber) error

func (*Miner) Run

func (m *Miner) Run(ctx context.Context) error

Run starts the sealing FSM in the background, running preliminary checks first.

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 (m *Miner) SectorMatchPendingPiecesToOpenSectors(ctx context.Context) error

func (*Miner) SectorPreCommitFlush added in v1.10.0

func (m *Miner) SectorPreCommitFlush(ctx context.Context) ([]sealiface.PreCommitBatchRes, error)

func (*Miner) SectorPreCommitPending added in v1.10.0

func (m *Miner) SectorPreCommitPending(ctx context.Context) ([]abi.SectorID, error)

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) Stop

func (m *Miner) Stop(ctx context.Context) error

func (*Miner) TerminateFlush added in v1.4.1

func (m *Miner) TerminateFlush(ctx context.Context) (*cid.Cid, error)

func (*Miner) TerminatePending added in v1.4.1

func (m *Miner) TerminatePending(ctx context.Context) ([]abi.SectorID, error)

func (*Miner) TerminateSector added in v1.4.1

func (m *Miner) TerminateSector(ctx context.Context, id abi.SectorNumber) error

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 (SealingAPIAdapter) ChainGetMessage added in v1.4.2

func (s SealingAPIAdapter) ChainGetMessage(ctx context.Context, mc cid.Cid) (*types.Message, error)

func (SealingAPIAdapter) ChainHead added in v0.3.0

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 (s SealingAPIAdapter) StateSearchMsg(ctx context.Context, c cid.Cid) (*sealing.MsgLookup, error)

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

func (s SealingAPIAdapter) StateWaitMsg(ctx context.Context, mcid cid.Cid) (sealing.MsgLookup, error)

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)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL