Documentation ¶
Index ¶
- Variables
- func CacheAvailability[A share.Availability](lc fx.Lifecycle, ds datastore.Batching, avail A) share.Availability
- func ConstructModule(tp node.Type, cfg *Config, options ...fx.Option) fx.Option
- func Discovery(cfg Config) func(routing.ContentRouting, host.Host) *discovery.Discovery
- type API
- type Config
- type Module
Constants ¶
This section is empty.
Variables ¶
View Source
var (
ErrNegativeInterval = errors.New("interval must be positive")
)
Functions ¶
func CacheAvailability ¶
func CacheAvailability[A share.Availability](lc fx.Lifecycle, ds datastore.Batching, avail A) share.Availability
CacheAvailability wraps either Full or Light availability with a cache for result sampling.
func ConstructModule ¶
Types ¶
type API ¶ added in v0.5.0
type API struct { ProbabilityOfAvailability func() float64 }
API is a wrapper around Module for the RPC. TODO(@distractedm1nd): These structs need to be autogenerated.
type Config ¶
type Config struct { // PeersLimit defines how many peers will be added during discovery. PeersLimit uint // DiscoveryInterval is an interval between discovery sessions. DiscoveryInterval time.Duration // AdvertiseInterval is a interval between advertising sessions. // NOTE: only full and bridge can advertise themselves. AdvertiseInterval time.Duration }
func DefaultConfig ¶
func DefaultConfig() Config
type Module ¶
type Module interface { share.Availability }
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.