api

package
v1.2.6 Latest Latest
Warning

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

Go to latest
Published: Dec 19, 2020 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrMustOverrideConfig returned when trying to push config for storing a Cid
	// without the override flag.
	ErrMustOverrideConfig = errors.New("cid already pinned, consider using override flag")
	// ErrReplacedCidNotFound returns when replacing a Cid that isn't stored.
	ErrReplacedCidNotFound = errors.New("provided replaced cid wasn't found")
	// ErrActiveInStorage returns when a Cid is trying to be removed but still defined as active
	// on Hot or Cold storage.
	ErrActiveInStorage = errors.New("can't remove Cid, disable from Hot and Cold storage")
	// ErrHotStorageDisabled returned when trying to fetch a Cid when disabled on Hot Storage.
	// To retrieve the data, is necessary to call unfreeze by enabling the Enabled flag in
	// hot storage for that Cid.
	ErrHotStorageDisabled = errors.New("cid disabled in hot storage")
)
View Source
var (
	// ErrNotFound returned when instance configuration doesn't exist.
	ErrNotFound = errors.New("stored item not found")
)

Functions

This section is empty.

Types

type API

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

API is an Api instance, which owns a Lotus Address and allows to Store and Retrieve Cids from hot and cold storage.

func Load

func Load(ds datastore.Datastore, iid ffs.APIID, sched *scheduler.Scheduler, wm ffs.WalletManager, drm ffs.DealRecordsManager) (*API, error)

Load loads a saved Api instance from its ConfigStore.

func New

func New(ds datastore.Datastore, iid ffs.APIID, sch *scheduler.Scheduler, wm ffs.WalletManager, drm ffs.DealRecordsManager, dc ffs.StorageConfig, addrInfo AddrInfo) (*API, error)

New returns a new Api instance.

func (*API) Addrs

func (i *API) Addrs() []AddrInfo

Addrs returns the wallet addresses.

func (*API) CancelJob

func (i *API) CancelJob(jid ffs.JobID) error

CancelJob cancels an executing Job. If no Job is executing with that JobID, it won't fail.

func (*API) Close

func (i *API) Close() error

Close terminates the running Api.

func (*API) DefaultStorageConfig added in v0.2.0

func (i *API) DefaultStorageConfig() ffs.StorageConfig

DefaultStorageConfig returns the default StorageConfig.

func (*API) ExecutingStorageJobs added in v1.0.0

func (i *API) ExecutingStorageJobs(cids ...cid.Cid) []ffs.StorageJob

ExecutingStorageJobs returns executing jobs for the specified cids. If no cids are provided, data for all data cids is returned.

func (*API) Get

func (i *API) Get(ctx context.Context, c cid.Cid) (io.Reader, error)

Get returns an io.Reader for reading a stored Cid from hot storage.

func (*API) GetRetrieval added in v0.6.0

func (i *API) GetRetrieval(prID ffs.RetrievalID) (Retrieval, error)

GetRetrieval returns information from a Retrieval using its ID.

func (*API) GetStorageConfigs added in v1.0.0

func (i *API) GetStorageConfigs(cids ...cid.Cid) (map[cid.Cid]ffs.StorageConfig, error)

GetStorageConfigs returns the current StorageConfigs for a FFS instance, filtered by cids, if provided.

func (*API) GetStorageJob added in v0.6.0

func (i *API) GetStorageJob(jid ffs.JobID) (ffs.StorageJob, error)

GetStorageJob returns the current state of the specified job.

func (*API) ID

func (i *API) ID() ffs.APIID

ID returns the ID.

func (*API) ImportStorage added in v0.6.0

func (i *API) ImportStorage(payloadCid cid.Cid, pieceCid cid.Cid, deals []ImportDeal, opts ...ImportOption) error

ImportStorage imports deals existing in the Filecoin network. The StorageConfig attached to this Cid will be the default one with HotStorage disabled.

func (*API) LatestFinalStorageJobs added in v1.0.0

func (i *API) LatestFinalStorageJobs(cids ...cid.Cid) []ffs.StorageJob

LatestFinalStorageJobs returns the most recent finished jobs for the specified cids. If no cids are provided, data for all data cids is returned.

func (*API) LatestSuccessfulStorageJobs added in v1.0.0

func (i *API) LatestSuccessfulStorageJobs(cids ...cid.Cid) []ffs.StorageJob

LatestSuccessfulStorageJobs returns the most recent successful jobs for the specified cids. If no cids are provided, data for all data cids is returned.

func (*API) NewAddr

func (i *API) NewAddr(ctx context.Context, name string, options ...NewAddressOption) (string, error)

NewAddr creates a new address managed by the FFS instance.

func (*API) PushStorageConfig added in v0.2.0

func (i *API) PushStorageConfig(c cid.Cid, opts ...PushStorageConfigOption) (ffs.JobID, error)

PushStorageConfig push a new configuration for the Cid in the hot and cold storage. If WithOverride opt isn't set it errors with ErrMustOverrideConfig.

func (*API) QueuedStorageJobs added in v1.0.0

func (i *API) QueuedStorageJobs(cids ...cid.Cid) []ffs.StorageJob

QueuedStorageJobs returns queued jobs for the specified cids. If no cids are provided, data for all data cids is returned.

func (*API) Remove

func (i *API) Remove(c cid.Cid) error

Remove removes a Cid from being tracked as an active storage. The Cid should have both Hot and Cold storage disabled, if that isn't the case it will return ErrActiveInStorage.

func (*API) RemoveRetrieval added in v0.6.0

func (i *API) RemoveRetrieval(partialCid cid.Cid) error

RemoveRetrieval removes information and data from a executed retrieval.

func (*API) Replace

func (i *API) Replace(c1 cid.Cid, c2 cid.Cid) (ffs.JobID, error)

Replace pushes a StorageConfig for c2 equal to that of c1, and removes c1. This operation is more efficient than manually removing and adding in two separate operations. c1 and c2 must not be equal.

func (*API) RetrievalDealRecords added in v1.0.0

func (i *API) RetrievalDealRecords(opts ...deals.DealRecordsOption) ([]deals.RetrievalDealRecord, error)

RetrievalDealRecords returns a list of retrieval deals for this FFS instance according to the provided options.

func (*API) SendFil

func (i *API) SendFil(ctx context.Context, from string, to string, amount *big.Int) error

SendFil sends fil from a managed address to any another address, returns immediately but funds are sent asynchronously.

func (*API) SetDefaultStorageConfig added in v0.2.0

func (i *API) SetDefaultStorageConfig(c ffs.StorageConfig) error

SetDefaultStorageConfig sets a new default StorageConfig.

func (*API) Show

func (i *API) Show(cid cid.Cid) (ffs.StorageInfo, error)

Show returns the information about a stored Cid. If no information is available, since the Cid was never stored, it returns ErrNotFound.

func (*API) SignMessage added in v0.6.9

func (i *API) SignMessage(ctx context.Context, addr string, message []byte) ([]byte, error)

SignMessage signs a message using a managed address.

func (*API) StartRetrieval added in v0.6.0

func (i *API) StartRetrieval(payloadCid, pieceCid cid.Cid, selector string, miners []string, opts ...RetrievalOption) (Retrieval, error)

StartRetrieval schedules a new job to do a data retrieval.

func (*API) StorageConfigForJob added in v1.0.0

func (i *API) StorageConfigForJob(jid ffs.JobID) (ffs.StorageConfig, error)

StorageConfigForJob returns the StorageConfig associated with the specified job.

func (*API) StorageDealRecords added in v1.0.0

func (i *API) StorageDealRecords(opts ...deals.DealRecordsOption) ([]deals.StorageDealRecord, error)

StorageDealRecords lists storage deals for this FFS instance according to the provided options.

func (*API) VerifyMessage added in v0.6.9

func (i *API) VerifyMessage(ctx context.Context, addr string, message, signature []byte) (bool, error)

VerifyMessage verifies a message signature of a message from a managed address.

func (*API) WatchJobs

func (i *API) WatchJobs(ctx context.Context, c chan<- ffs.StorageJob, jids ...ffs.JobID) error

WatchJobs subscribes to Job status changes. If jids is empty, it subscribes to all Job status changes corresonding to the instance. If jids is not empty, it immediately sends current state of those Jobs. If empty, it doesn't.

func (*API) WatchLogs

func (i *API) WatchLogs(ctx context.Context, ch chan<- ffs.LogEntry, c cid.Cid, opts ...GetLogsOption) error

WatchLogs pushes human-friendly messages about Cid executions. The method is blocking and will continue to send messages until the context is canceled.

type AddrInfo

type AddrInfo struct {
	Name string
	Addr string
	Type string
}

AddrInfo provides information about a wallet address.

type GetLogsConfig

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

GetLogsConfig contains configuration for a stream-log of human-friendly messages for a Cid execution.

type GetLogsOption

type GetLogsOption func(config *GetLogsConfig)

GetLogsOption is a function that changes GetLogsConfig.

func WithHistory

func WithHistory(enabled bool) GetLogsOption

WithHistory indicates that prior log history should be sent to the channel before getting realtime logs.

func WithJidFilter

func WithJidFilter(jid ffs.JobID) GetLogsOption

WithJidFilter filters only log messages of a Cid related to the Job with id jid.

type ImportDeal added in v0.6.0

type ImportDeal struct {
	ProposalCid  *cid.Cid
	MinerAddress string
}

ImportDeal contains information of an imported deal.

type ImportOption added in v0.6.0

type ImportOption func(*importConfig)

ImportOption provides configurations for importing deal information.

func WithValidateImport added in v0.6.0

func WithValidateImport(enabled bool) ImportOption

WithValidateImport indicates to validate imported deal information to check for inconsistencies.

type InstanceConfig added in v0.6.0

type InstanceConfig struct {
	ID                   ffs.APIID
	Addrs                map[string]AddrInfo
	DefaultStorageConfig ffs.StorageConfig
}

InstanceConfig has general information about a Api instance.

type NewAddressConfig

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

NewAddressConfig contains options for creating a new wallet address.

type NewAddressOption

type NewAddressOption func(config *NewAddressConfig)

NewAddressOption is a function that changes a NewAddressConfig.

func WithAddressType

func WithAddressType(addressType string) NewAddressOption

WithAddressType specifies the type of address to create.

func WithMakeDefault

func WithMakeDefault(makeDefault bool) NewAddressOption

WithMakeDefault specifies if the new address should become the default.

type PushStorageConfigConfig added in v0.2.0

type PushStorageConfigConfig struct {
	Config         ffs.StorageConfig
	OverrideConfig bool
}

PushStorageConfigConfig contains options for pushing a Cid configuration.

func (PushStorageConfigConfig) Validate added in v0.2.0

func (pc PushStorageConfigConfig) Validate() error

Validate validates a PushStorageConfigConfig.

type PushStorageConfigOption added in v0.2.0

type PushStorageConfigOption func(o *PushStorageConfigConfig) error

PushStorageConfigOption mutates a push configuration.

func WithOverride

func WithOverride(override bool) PushStorageConfigOption

WithOverride allows a new push configuration to override an existing one. It's used as an extra security measure to avoid unwanted configuration changes.

func WithStorageConfig added in v0.2.0

func WithStorageConfig(c ffs.StorageConfig) PushStorageConfigOption

WithStorageConfig overrides the Api default Cid configuration.

type Retrieval added in v0.6.0

type Retrieval struct {
	ID            ffs.RetrievalID
	PayloadCid    cid.Cid
	PieceCid      cid.Cid
	Selector      string
	Miners        []string
	WalletAddress string
	MaxPrice      uint64
	JID           ffs.JobID
	CreatedAt     time.Time

	// Possibly empty
	RetrievalMiner string
	DataCid        cid.Cid
	Size           uint64
}

Retrieval indicates information of a retrieval in the Filecoin network.

type RetrievalOption added in v0.6.0

type RetrievalOption func(*retrievalConfig)

RetrievalOption provides a retrieval configuration setup.

func WithRetrievalMaxPrice added in v0.6.0

func WithRetrievalMaxPrice(maxPrice uint64) RetrievalOption

WithRetrievalMaxPrice indicates which is the maximum prices to pay for the retrieval.

func WithRetrievalWalletAddress added in v0.6.0

func WithRetrievalWalletAddress(addr string) RetrievalOption

WithRetrievalWalletAddress indicates which wallet address to use for doing the deal retrieval.

Jump to

Keyboard shortcuts

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