Documentation ¶
Index ¶
- Constants
- Variables
- func BaseBlockstoreCtor(cacheOpts blockstore.CacheOpts, hashOnRead bool) ...
- func BitswapOptions(cfg *config.Config, provide bool) interface{}
- func BlockService(lc fx.Lifecycle, bs blockstore.Blockstore, rem exchange.Interface) blockservice.BlockService
- func DNSResolver(cfg *config.Config) (*madns.Resolver, error)
- func Dag(bs blockservice.BlockService) format.DAGService
- func Datastore(repo repo.Repo) datastore.Datastore
- func Files(mctx helpers.MetricsCtx, lc fx.Lifecycle, repo repo.Repo, ...) (*mfs.Root, error)
- func FilestoreBlockstoreCtor(repo repo.Repo, bb BaseBlocks) (gclocker blockstore.GCLocker, gcbs blockstore.GCBlockstore, ...)
- func GcBlockstoreCtor(bb BaseBlocks) (gclocker blockstore.GCLocker, gcbs blockstore.GCBlockstore, ...)
- func IPFS(ctx context.Context, bcfg *BuildCfg) fx.Option
- func Identity(cfg *config.Config) fx.Option
- func IpnsRepublisher(repubPeriod time.Duration, recordLifetime time.Duration) func(lcProcess, namesys.NameSystem, repo.Repo, crypto.PrivKey) error
- func LibP2P(bcfg *BuildCfg, cfg *config.Config, ...) fx.Option
- func Namesys(cacheSize int, cacheMaxTTL time.Duration) ...
- func Networked(bcfg *BuildCfg, cfg *config.Config, ...) fx.Option
- func Offline(cfg *config.Config) fx.Option
- func OfflineProviders() fx.Option
- func Online(bcfg *BuildCfg, cfg *config.Config, ...) fx.Option
- func OnlineExchange() interface{}
- func OnlineProviders(useStrategicProviding bool, reprovideStrategy string, ...) fx.Option
- func PeerID(id peer.ID) func() peer.ID
- func PeerWith(peers ...peer.AddrInfo) fx.Option
- func Peering(lc fx.Lifecycle, host host.Host) *peering.PeeringService
- func Pinning(bstore blockstore.Blockstore, ds format.DAGService, repo repo.Repo) (pin.Pinner, error)
- func PrivateKey(sk crypto.PrivKey) func(id peer.ID) (crypto.PrivKey, error)
- func ProviderSys(reprovideInterval time.Duration, acceleratedDHTClient bool) fx.Option
- func RecordValidator(ps peerstore.Peerstore) record.Validator
- func RepoConfig(repo repo.Repo) (*config.Config, error)
- func Storage(bcfg *BuildCfg, cfg *config.Config) fx.Option
- type BaseBlocks
- type BuildCfg
- type FetchersIn
- type FetchersOut
- type PathResolversOut
Constants ¶
const ( DefaultEngineBlockstoreWorkerCount = 128 DefaultTaskWorkerCount = 8 DefaultEngineTaskWorkerCount = 8 DefaultMaxOutstandingBytesPerPeer = 1 << 20 DefaultProviderSearchDelay = 1000 * time.Millisecond )
Docs: https://github.com/bluzelle/ipfs-kubo/blob/master/docs/config.md#internalbitswap
const DefaultIpnsCacheSize = 128
Variables ¶
var BaseLibP2P = fx.Options( fx.Provide(libp2p.PNet), fx.Provide(libp2p.ConnectionManager), fx.Provide(libp2p.Host), fx.Provide(libp2p.MultiaddrResolver), fx.Provide(libp2p.DiscoveryHandler), fx.Invoke(libp2p.PNetChecker), )
var Core = fx.Options( fx.Provide(BlockService), fx.Provide(Dag), fx.Provide(FetcherConfig), fx.Provide(PathResolverConfig), fx.Provide(Pinning), fx.Provide(Files), )
Core groups basic IPFS services
var IPNS = fx.Options( fx.Provide(RecordValidator), )
IPNS groups namesys related units
Functions ¶
func BaseBlockstoreCtor ¶
func BaseBlockstoreCtor(cacheOpts blockstore.CacheOpts, hashOnRead bool) func(mctx helpers.MetricsCtx, repo repo.Repo, lc fx.Lifecycle) (bs BaseBlocks, err error)
BaseBlockstoreCtor creates cached blockstore backed by the provided datastore
func BitswapOptions ¶
BitswapOptions creates configuration options for Bitswap from the config file and whether to provide data.
func BlockService ¶
func BlockService(lc fx.Lifecycle, bs blockstore.Blockstore, rem exchange.Interface) blockservice.BlockService
BlockService creates new blockservice which provides an interface to fetch content-addressable blocks
func Files ¶
func Files(mctx helpers.MetricsCtx, lc fx.Lifecycle, repo repo.Repo, dag format.DAGService) (*mfs.Root, error)
Files loads persisted MFS root
func FilestoreBlockstoreCtor ¶
func FilestoreBlockstoreCtor(repo repo.Repo, bb BaseBlocks) (gclocker blockstore.GCLocker, gcbs blockstore.GCBlockstore, bs blockstore.Blockstore, fstore *filestore.Filestore)
GcBlockstoreCtor wraps GcBlockstore and adds Filestore support
func GcBlockstoreCtor ¶
func GcBlockstoreCtor(bb BaseBlocks) (gclocker blockstore.GCLocker, gcbs blockstore.GCBlockstore, bs blockstore.Blockstore)
GcBlockstoreCtor wraps the base blockstore with GC and Filestore layers
func IpnsRepublisher ¶
func IpnsRepublisher(repubPeriod time.Duration, recordLifetime time.Duration) func(lcProcess, namesys.NameSystem, repo.Repo, crypto.PrivKey) error
IpnsRepublisher runs new IPNS republisher service
func Namesys ¶
func Namesys(cacheSize int, cacheMaxTTL time.Duration) func(rt irouting.ProvideManyRouter, rslv *madns.Resolver, repo repo.Repo) (namesys.NameSystem, error)
Namesys creates new name system
func OfflineProviders ¶
OfflineProviders groups units managing provider routing records offline
func Online ¶
func Online(bcfg *BuildCfg, cfg *config.Config, userResourceOverrides rcmgr.PartialLimitConfig) fx.Option
Online groups online-only units
func OnlineExchange ¶
func OnlineExchange() interface{}
OnlineExchange creates new LibP2P backed block exchange (BitSwap). Additional options to bitswap.New can be provided via the "bitswap-options" group.
func OnlineProviders ¶
func OnlineProviders(useStrategicProviding bool, reprovideStrategy string, reprovideInterval time.Duration, acceleratedDHTClient bool) fx.Option
OnlineProviders groups units managing provider routing records online
func Peering ¶
Peering constructs the peering service and hooks it into fx's lifetime management system.
func Pinning ¶
func Pinning(bstore blockstore.Blockstore, ds format.DAGService, repo repo.Repo) (pin.Pinner, error)
Pinning creates new pinner which tells GC which blocks should be kept
func PrivateKey ¶
PrivateKey loads the private key from config
func ProviderSys ¶ added in v0.24.0
func RecordValidator ¶
RecordValidator provides namesys compatible routing record validator
func RepoConfig ¶
RepoConfig loads configuration from the repo
Types ¶
type BaseBlocks ¶
type BaseBlocks blockstore.Blockstore
BaseBlocks is the lower level blockstore without GC or Filestore layers
type BuildCfg ¶
type BuildCfg struct { // If online is set, the node will have networking enabled Online bool // ExtraOpts is a map of extra options used to configure the ipfs nodes creation ExtraOpts map[string]bool // If permanent then node should run more expensive processes // that will improve performance in long run Permanent bool // DisableEncryptedConnections disables connection encryption *entirely*. // DO NOT SET THIS UNLESS YOU'RE TESTING. DisableEncryptedConnections bool Routing libp2p.RoutingOption Host libp2p.HostOption Repo repo.Repo }
type FetchersIn ¶ added in v0.24.0
type FetchersIn struct { fx.In IPLDFetcher fetcher.Factory `name:"ipldFetcher"` UnixfsFetcher fetcher.Factory `name:"unixfsFetcher"` OfflineIPLDFetcher fetcher.Factory `name:"offlineIpldFetcher"` OfflineUnixfsFetcher fetcher.Factory `name:"offlineUnixfsFetcher"` }
FetchersIn allows using fetchers for other dependencies.
type FetchersOut ¶ added in v0.24.0
type FetchersOut struct { fx.Out IPLDFetcher fetcher.Factory `name:"ipldFetcher"` UnixfsFetcher fetcher.Factory `name:"unixfsFetcher"` OfflineIPLDFetcher fetcher.Factory `name:"offlineIpldFetcher"` OfflineUnixfsFetcher fetcher.Factory `name:"offlineUnixfsFetcher"` }
FetchersOut allows injection of fetchers.
func FetcherConfig ¶
func FetcherConfig(bs blockservice.BlockService) FetchersOut
FetcherConfig returns a fetcher config that can build new fetcher instances
type PathResolversOut ¶ added in v0.24.0
type PathResolversOut struct { fx.Out IPLDPathResolver pathresolver.Resolver `name:"ipldPathResolver"` UnixFSPathResolver pathresolver.Resolver `name:"unixFSPathResolver"` OfflineIPLDPathResolver pathresolver.Resolver `name:"offlineIpldPathResolver"` OfflineUnixFSPathResolver pathresolver.Resolver `name:"offlineUnixFSPathResolver"` }
PathResolversOut allows injection of path resolvers
func PathResolverConfig ¶ added in v0.24.0
func PathResolverConfig(fetchers FetchersIn) PathResolversOut
PathResolverConfig creates path resolvers with the given fetchers.