getters

package
v0.0.0-...-4e9d6c2 Latest Latest
Warning

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

Go to latest
Published: May 12, 2023 License: Apache-2.0 Imports: 31 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ErrorContains

func ErrorContains(err, target error) bool

ErrorContains reports whether any error in err's tree matches any error in targets tree.

func TestGetter

func TestGetter(t *testing.T) (share.Getter, *share.Root)

TestGetter provides a testing SingleEDSGetter and the root of the EDS it holds.

func WithSession

func WithSession(ctx context.Context) context.Context

WithSession stores an empty session in the context, indicating that a blockservice session should be created.

Types

type CascadeGetter

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

CascadeGetter implements custom share.Getter that composes multiple Getter implementations in "cascading" order.

See cascade func for details on cascading.

func NewCascadeGetter

func NewCascadeGetter(getters []share.Getter) *CascadeGetter

NewCascadeGetter instantiates a new CascadeGetter from given share.Getters with given interval.

func (*CascadeGetter) GetEDS

GetEDS gets a full EDS from any of registered share.Getters in cascading order.

func (*CascadeGetter) GetShare

func (cg *CascadeGetter) GetShare(ctx context.Context, root *share.Root, row, col int) (share.Share, error)

GetShare gets a share from any of registered share.Getters in cascading order.

func (*CascadeGetter) GetSharesByNamespace

func (cg *CascadeGetter) GetSharesByNamespace(
	ctx context.Context,
	root *share.Root,
	id namespace.ID,
) (share.NamespacedShares, error)

GetSharesByNamespace gets NamespacedShares from any of registered share.Getters in cascading order.

type IPLDGetter

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

IPLDGetter is a share.Getter that retrieves shares from the bitswap network. Result caching is handled by the provided blockservice. A blockservice session will be created for retrieval if the passed context is wrapped with WithSession.

func NewIPLDGetter

func NewIPLDGetter(bServ blockservice.BlockService) *IPLDGetter

NewIPLDGetter creates a new share.Getter that retrieves shares from the bitswap network.

func (*IPLDGetter) GetEDS

func (ig *IPLDGetter) GetEDS(ctx context.Context, root *share.Root) (eds *rsmt2d.ExtendedDataSquare, err error)

func (*IPLDGetter) GetShare

func (ig *IPLDGetter) GetShare(ctx context.Context, dah *share.Root, row, col int) (share.Share, error)

GetShare gets a single share at the given EDS coordinates from the bitswap network.

func (*IPLDGetter) GetSharesByNamespace

func (ig *IPLDGetter) GetSharesByNamespace(
	ctx context.Context,
	root *share.Root,
	nID namespace.ID,
) (shares share.NamespacedShares, err error)

type ShrexGetter

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

ShrexGetter is a share.Getter that uses the shrex/eds and shrex/nd protocol to retrieve shares.

func NewShrexGetter

func NewShrexGetter(edsClient *shrexeds.Client, ndClient *shrexnd.Client, peerManager *peers.Manager) *ShrexGetter

func (*ShrexGetter) GetEDS

func (sg *ShrexGetter) GetEDS(ctx context.Context, root *share.Root) (*rsmt2d.ExtendedDataSquare, error)

func (*ShrexGetter) GetShare

func (sg *ShrexGetter) GetShare(context.Context, *share.Root, int, int) (share.Share, error)

func (*ShrexGetter) GetSharesByNamespace

func (sg *ShrexGetter) GetSharesByNamespace(
	ctx context.Context,
	root *share.Root,
	id namespace.ID,
) (share.NamespacedShares, error)

func (*ShrexGetter) Start

func (sg *ShrexGetter) Start(ctx context.Context) error

func (*ShrexGetter) Stop

func (sg *ShrexGetter) Stop(ctx context.Context) error

func (*ShrexGetter) WithMetrics

func (sg *ShrexGetter) WithMetrics() error

type SingleEDSGetter

type SingleEDSGetter struct {
	EDS *rsmt2d.ExtendedDataSquare
}

SingleEDSGetter contains a single EDS where data is retrieved from. Its primary use is testing, and GetSharesByNamespace is not supported.

func (*SingleEDSGetter) GetEDS

GetEDS returns a kept EDS if the correct root is given.

func (*SingleEDSGetter) GetShare

func (seg *SingleEDSGetter) GetShare(_ context.Context, root *share.Root, row, col int) (share.Share, error)

GetShare gets a share from a kept EDS if exist and if the correct root is given.

func (*SingleEDSGetter) GetSharesByNamespace

func (seg *SingleEDSGetter) GetSharesByNamespace(context.Context, *share.Root, namespace.ID,
) (share.NamespacedShares, error)

GetSharesByNamespace returns NamespacedShares from a kept EDS if the correct root is given.

type StoreGetter

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

StoreGetter is a share.Getter that retrieves shares from an eds.Store. No results are saved to the eds.Store after retrieval.

func NewStoreGetter

func NewStoreGetter(store *eds.Store) *StoreGetter

NewStoreGetter creates a new share.Getter that retrieves shares from an eds.Store.

func (*StoreGetter) GetEDS

func (sg *StoreGetter) GetEDS(ctx context.Context, root *share.Root) (data *rsmt2d.ExtendedDataSquare, err error)

GetEDS gets the EDS identified by the given root from the EDS store.

func (*StoreGetter) GetShare

func (sg *StoreGetter) GetShare(ctx context.Context, dah *share.Root, row, col int) (share.Share, error)

GetShare gets a single share at the given EDS coordinates from the eds.Store through the corresponding CAR-level blockstore.

func (*StoreGetter) GetSharesByNamespace

func (sg *StoreGetter) GetSharesByNamespace(
	ctx context.Context,
	root *share.Root,
	nID namespace.ID,
) (shares share.NamespacedShares, err error)

GetSharesByNamespace gets all EDS shares in the given namespace from the EDS store through the corresponding CAR-level blockstore.

type TeeGetter

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

TeeGetter is a share.Getter that wraps a getter and stores the results of GetEDS into an eds.Store.

func NewTeeGetter

func NewTeeGetter(getter share.Getter, store *eds.Store) *TeeGetter

NewTeeGetter creates a new TeeGetter.

func (*TeeGetter) GetEDS

func (tg *TeeGetter) GetEDS(ctx context.Context, root *share.Root) (eds *rsmt2d.ExtendedDataSquare, err error)

func (*TeeGetter) GetShare

func (tg *TeeGetter) GetShare(ctx context.Context, root *share.Root, row, col int) (share share.Share, err error)

func (*TeeGetter) GetSharesByNamespace

func (tg *TeeGetter) GetSharesByNamespace(
	ctx context.Context,
	root *share.Root,
	id namespace.ID,
) (shares share.NamespacedShares, err error)

Jump to

Keyboard shortcuts

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