deals

package
v0.0.1-beta.6 Latest Latest
Warning

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

Go to latest
Published: May 29, 2020 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrRetrievalNoAvailableProviders indicates that the data isn't available on any provided
	// to be retrieved.
	ErrRetrievalNoAvailableProviders = errors.New("no providers to retrieve the data")
	// ErrDealNotFound indicates a particular ProposalCid from a deal isn't found on-chain. Currently,
	// in Lotus this indicates that it may never existed on-chain, or it existed but it already expired
	// (currEpoch > StartEpoch+Duration).
	ErrDealNotFound = errors.New("deal not found on-chain")
)

Functions

This section is empty.

Types

type Config

type Config struct {
	ImportPath string
}

Config contains configuration for storing deals.

type DealInfo

type DealInfo struct {
	ProposalCid cid.Cid
	StateID     uint64
	StateName   string
	Miner       string

	PieceCID cid.Cid
	Size     uint64

	PricePerEpoch uint64
	Duration      uint64

	DealID          uint64
	ActivationEpoch int64
	Message         string
}

DealInfo contains information about a proposal storage deal

type Module

type Module struct {
	// contains filtered or unexported fields
}

Module exposes storage and monitoring from the market.

func New

func New(api *apistruct.FullNodeStruct, opts ...Option) (*Module, error)

New creates a new Module.

func (*Module) Fetch

func (m *Module) Fetch(ctx context.Context, waddr string, cid cid.Cid) error

Fetch fetches deal data to the underlying blockstore of the Filecoin client. This API is meant for clients that use external implementations of blockstores with their own API, e.g: IPFS.

func (*Module) GetDealStatus

func (m *Module) GetDealStatus(ctx context.Context, pcid cid.Cid) (storagemarket.StorageDealStatus, bool, error)

GetDealStatus returns the current status of the deal, and a flag indicating if the miner of the deal was slashed. If the deal doesn't exist, *or has expired* it will return ErrDealNotFound. There's not actual way of distinguishing both scenarios in Lotus.

func (*Module) Import

func (m *Module) Import(ctx context.Context, data io.Reader, isCAR bool) (cid.Cid, int64, error)

Import imports raw data in the Filecoin client. The isCAR flag indicates if the data is already in CAR format, so it shouldn't be encoded into a UnixFS DAG in the Filecoin client. It returns the imported data cid and the data size.

func (*Module) Retrieve

func (m *Module) Retrieve(ctx context.Context, waddr string, cid cid.Cid, CAREncoding bool) (io.ReadCloser, error)

Retrieve retrieves Deal data.

func (*Module) Store

func (m *Module) Store(ctx context.Context, waddr string, dataCid cid.Cid, size uint64, dcfgs []StorageDealConfig, duration uint64) ([]StoreResult, error)

Store create Deal Proposals with all miners indicated in dcfgs. The epoch price is automatically calculated considering each miner epoch price and data size. The data of dataCid should be already imported to the Filecoin Client or should be accessible to it. (e.g: is integrated with an IPFS node).

func (*Module) Watch

func (m *Module) Watch(ctx context.Context, proposals []cid.Cid) (<-chan DealInfo, error)

Watch returns a channel with state changes of indicated proposals

type Option

type Option func(*Config) error

Option sets values on a Config.

func WithImportPath

func WithImportPath(path string) Option

WithImportPath indicates the import path that will be used to store data to later be imported to Lotus.

type StorageDealConfig

type StorageDealConfig struct {
	Miner      string
	EpochPrice uint64
}

StorageDealConfig contains information about a storage proposal for a miner

type StoreResult

type StoreResult struct {
	ProposalCid cid.Cid
	Config      StorageDealConfig
	Success     bool
	Message     string
}

StoreResult contains information about Executing deals.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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