Documentation
¶
Index ¶
- func ConstructModule(tp node.Type, cfg *Config, options ...fx.Option) fx.Option
- func WithPeerManagerMetrics(m *peers.Manager) error
- func WithShrexClientMetrics(edsClient *shrexeds.Client, ndClient *shrexnd.Client) error
- func WithShrexGetterMetrics(sg *getters.ShrexGetter) error
- func WithShrexServerMetrics(edsServer *shrexeds.Server, ndServer *shrexnd.Server) error
- type API
- func (api *API) GetEDS(ctx context.Context, root *share.Root) (*rsmt2d.ExtendedDataSquare, error)
- func (api *API) GetShare(ctx context.Context, dah *share.Root, row, col int) (share.Share, error)
- func (api *API) GetSharesByNamespace(ctx context.Context, root *share.Root, namespace namespace.ID) (share.NamespacedShares, error)
- func (api *API) ProbabilityOfAvailability(ctx context.Context) float64
- func (api *API) SharesAvailable(ctx context.Context, root *share.Root) error
- type Config
- type Module
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConstructModule ¶
func WithPeerManagerMetrics ¶ added in v0.9.2
WithPeerManagerMetrics is a utility function that is expected to be "invoked" by the fx lifecycle.
func WithShrexClientMetrics ¶ added in v0.9.2
func WithShrexGetterMetrics ¶ added in v0.9.2
func WithShrexGetterMetrics(sg *getters.ShrexGetter) error
Types ¶
type API ¶ added in v0.5.0
type API struct {
Internal struct {
SharesAvailable func(context.Context, *share.Root) error `perm:"public"`
ProbabilityOfAvailability func(context.Context) float64 `perm:"public"`
GetShare func(
ctx context.Context,
dah *share.Root,
row, col int,
) (share.Share, error) `perm:"public"`
GetEDS func(
ctx context.Context,
root *share.Root,
) (*rsmt2d.ExtendedDataSquare, error) `perm:"public"`
GetSharesByNamespace func(
ctx context.Context,
root *share.Root,
namespace namespace.ID,
) (share.NamespacedShares, error) `perm:"public"`
}
}
API is a wrapper around Module for the RPC. TODO(@distractedm1nd): These structs need to be autogenerated.
func (*API) GetSharesByNamespace ¶ added in v0.5.0
func (*API) ProbabilityOfAvailability ¶ added in v0.5.0
type Config ¶
type Config struct {
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
// Discovery sets peer discovery configuration parameters.
Discovery disc.Parameters
}
func DefaultConfig ¶
func DefaultConfig() Config
type Module ¶
type Module interface {
// the Network.
SharesAvailable(context.Context, *share.Root) error
// ProbabilityOfAvailability calculates the probability of the data square
// being available based on the number of samples collected.
ProbabilityOfAvailability(context.Context) float64
GetShare(ctx context.Context, dah *share.Root, row, col int) (share.Share, error)
// GetEDS gets the full EDS identified by the given root.
GetEDS(ctx context.Context, root *share.Root) (*rsmt2d.ExtendedDataSquare, error)
// Shares are returned in a row-by-row order if the namespace spans multiple rows.
GetSharesByNamespace(ctx context.Context, root *share.Root, namespace namespace.ID) (share.NamespacedShares, error)
}
Module provides access to any data square or block share on the network.
All Get methods provided on Module follow the following flow:
- Check local storage for the requested Share.
- If exists * Load from disk * Return
- 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.
Click to show internal directories.
Click to hide internal directories.