share

package
v0.20.4 Latest Latest
Warning

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

Go to latest
Published: Nov 27, 2024 License: Apache-2.0 Imports: 41 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConstructModule

func ConstructModule(tp node.Type, cfg *Config, options ...fx.Option) fx.Option

func WithDiscoveryMetrics added in v0.9.4

func WithDiscoveryMetrics(discs []*discovery.Discovery) error

WithDiscoveryMetrics is a utility function to turn on discovery metrics and that is expected to be "invoked" by the fx lifecycle.

func WithPeerManagerMetrics added in v0.9.2

func WithPeerManagerMetrics(managers map[string]*peers.Manager) error

WithPeerManagerMetrics is a utility function to turn on peer manager metrics and that is expected to be "invoked" by the fx lifecycle.

func WithShrexClientMetrics added in v0.9.2

func WithShrexClientMetrics(edsClient *shrexeds.Client, ndClient *shrexnd.Client) error

func WithShrexGetterMetrics added in v0.9.2

func WithShrexGetterMetrics(sg *shrex_getter.Getter) error

func WithShrexServerMetrics added in v0.9.2

func WithShrexServerMetrics(edsServer *shrexeds.Server, ndServer *shrexnd.Server) error

func WithStoreMetrics added in v0.11.0

func WithStoreMetrics(s *store.Store) error

Types

type API added in v0.5.0

type API struct {
	Internal struct {
		SharesAvailable func(ctx context.Context, height uint64) error `perm:"read"`
		GetShare        func(
			ctx context.Context,
			height uint64,
			row, col int,
		) (libshare.Share, error) `perm:"read"`
		GetSamples func(
			ctx context.Context,
			header *header.ExtendedHeader,
			indices []shwap.SampleCoords,
		) ([]shwap.Sample, error) `perm:"read"`
		GetEDS func(
			ctx context.Context,
			height uint64,
		) (*rsmt2d.ExtendedDataSquare, error) `perm:"read"`
		GetNamespaceData func(
			ctx context.Context,
			height uint64,
			namespace libshare.Namespace,
		) (shwap.NamespaceData, error) `perm:"read"`
		GetRange func(
			ctx context.Context,
			height uint64,
			start, end int,
		) (*GetRangeResult, error) `perm:"read"`
	}
}

API is a wrapper around Module for the RPC.

func (*API) GetEDS added in v0.6.2

func (api *API) GetEDS(ctx context.Context, height uint64) (*rsmt2d.ExtendedDataSquare, error)

func (*API) GetNamespaceData added in v0.20.2

func (api *API) GetNamespaceData(
	ctx context.Context,
	height uint64,
	namespace libshare.Namespace,
) (shwap.NamespaceData, error)

func (*API) GetRange added in v0.15.0

func (api *API) GetRange(ctx context.Context, height uint64, start, end int) (*GetRangeResult, error)

func (*API) GetSamples added in v0.20.4

func (api *API) GetSamples(ctx context.Context, header *header.ExtendedHeader,
	indices []shwap.SampleCoords,
) ([]shwap.Sample, error)

func (*API) GetShare added in v0.5.0

func (api *API) GetShare(ctx context.Context, height uint64, row, col int) (libshare.Share, error)

func (*API) SharesAvailable added in v0.5.0

func (api *API) SharesAvailable(ctx context.Context, height uint64) error

type Config

type Config struct {
	// EDSStoreParams sets eds store configuration parameters
	EDSStoreParams      *store.Parameters
	BlockStoreCacheSize uint

	UseShareExchange bool
	// ShrExEDSParams sets shrexeds client and server configuration parameters
	ShrExEDSParams *shrexeds.Parameters
	// ShrExNDParams sets shrexnd client and server configuration parameters
	ShrExNDParams *shrexnd.Parameters
	// PeerManagerParams sets peer-manager configuration parameters
	PeerManagerParams *peers.Parameters

	LightAvailability *light.Parameters `toml:",omitempty"`
	Discovery         *discovery.Parameters
}

func DefaultConfig

func DefaultConfig(tp node.Type) Config

func (*Config) Validate

func (cfg *Config) Validate(tp node.Type) error

Validate performs basic validation of the config.

type GetRangeResult added in v0.15.0

type GetRangeResult struct {
	Shares []libshare.Share
	Proof  *types.ShareProof
}

GetRangeResult wraps the return value of the GetRange endpoint because Json-RPC doesn't support more than two return values.

type Module

type Module interface {
	// SharesAvailable subjectively validates if Shares committed to the given
	// ExtendedHeader are available on the Network.
	SharesAvailable(ctx context.Context, height uint64) error
	// GetShare gets a Share by coordinates in EDS.
	GetShare(ctx context.Context, height uint64, row, col int) (libshare.Share, error)
	// GetSamples gets sample for given indices.
	GetSamples(ctx context.Context, header *header.ExtendedHeader, indices []shwap.SampleCoords) ([]shwap.Sample, error)
	// GetEDS gets the full EDS identified by the given extended header.
	GetEDS(ctx context.Context, height uint64) (*rsmt2d.ExtendedDataSquare, error)
	// GetNamespaceData gets all shares from an EDS within the given namespace.
	// Shares are returned in a row-by-row order if the namespace spans multiple rows.
	GetNamespaceData(
		ctx context.Context, height uint64, namespace libshare.Namespace,
	) (shwap.NamespaceData, error)
	// GetRange gets a list of shares and their corresponding proof.
	GetRange(ctx context.Context, height uint64, start, end int) (*GetRangeResult, error)
}

Module provides access to any data square or block share on the network.

All Get methods provided on Module follow the following flow:

  1. Check local storage for the requested share.
  2. If exists * Load from disk * Return
  3. If not * Find provider on the network * Fetch the Share from the provider * Store the Share * Return

Any method signature changed here needs to also be changed in the API struct.

type Window added in v0.20.2

type Window time.Duration

Window is a type alias for time.Duration used in nodebuilder to provide sampling windows to their relevant components

func (Window) Duration added in v0.20.2

func (w Window) Duration() time.Duration

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

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