api

package
v0.6.0-rc5 Latest Latest
Warning

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

Go to latest
Published: Sep 17, 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
	// the 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 layers.

func Load

func Load(ds datastore.Datastore, iid ffs.APIID, sched *scheduler.Scheduler, wm ffs.WalletManager, pm ffs.PaychManager, 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, pm ffs.PaychManager, 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) CreatePayChannel

func (i *API) CreatePayChannel(ctx context.Context, from string, to string, amount uint64) (ffs.PaychInfo, cid.Cid, error)

CreatePayChannel creates a new payment channel.

func (*API) DefaultStorageConfig added in v0.2.0

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

DefaultStorageConfig returns the default StorageConfig.

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 the 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) GetStorageConfig added in v0.2.0

func (i *API) GetStorageConfig(c cid.Cid) (ffs.StorageConfig, error)

GetStorageConfig returns the current StorageConfig for a Cid.

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

func (i *API) Info(ctx context.Context) (InstanceInfo, error)

Info returns instance information.

func (*API) ListPayChannels

func (i *API) ListPayChannels(ctx context.Context) ([]ffs.PaychInfo, error)

ListPayChannels lists all payment channels associated with this FFS.

func (*API) ListRetrievalDealRecords

func (i *API) ListRetrievalDealRecords(opts ...deals.ListDealRecordsOption) ([]deals.RetrievalDealRecord, error)

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

func (*API) ListStorageDealRecords

func (i *API) ListStorageDealRecords(opts ...deals.ListDealRecordsOption) ([]deals.StorageDealRecord, error)

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

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 layer. If WithOverride opt isn't set it errors with ErrMustOverrideConfig.

func (*API) RedeemPayChannel

func (i *API) RedeemPayChannel(ctx context.Context, addr string) error

RedeemPayChannel redeems a payment channel.

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) 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(c cid.Cid) (ffs.CidInfo, 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) 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) 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 BalanceInfo

type BalanceInfo struct {
	AddrInfo
	Balance uint64
}

BalanceInfo contains the balance for the associated 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 InstanceInfo

type InstanceInfo struct {
	ID                   ffs.APIID
	DefaultStorageConfig ffs.StorageConfig
	Balances             []BalanceInfo
	Pins                 []cid.Cid
}

InstanceInfo has general information about a running 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