Documentation ¶
Index ¶
- Constants
- Variables
- func BaseBlockstoreCtor(cacheOpts blockstore.CacheOpts, nilRepo bool, hashOnRead bool) ...
- func BlockService(lc fx.Lifecycle, bs blockstore.Blockstore, rem exchange.Interface) blockservice.BlockService
- 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) func(rt routing.IpfsRouting, repo repo.Repo) (namesys.NameSystem, error)
- func Networked(bcfg *BuildCfg, cfg *config.Config) fx.Option
- func Online(bcfg *BuildCfg, cfg *config.Config) fx.Option
- func OnlineExchange(mctx helpers.MetricsCtx, lc fx.Lifecycle, host host.Host, ...) exchange.Interface
- func PeerID(id peer.ID) func() peer.ID
- 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 ProviderCtor(mctx helpers.MetricsCtx, lc fx.Lifecycle, queue *provider.Queue, ...) provider.Provider
- func ProviderQueue(mctx helpers.MetricsCtx, lc fx.Lifecycle, repo repo.Repo) (*provider.Queue, error)
- func Providers(cfg *config.Config) fx.Option
- func RecordValidator(ps peerstore.Peerstore) record.Validator
- func RepoConfig(repo repo.Repo) (*config.Config, error)
- func Reprovider(lp lcProcess, reprovider *reprovide.Reprovider) error
- func ReproviderCtor(reproviderInterval time.Duration) ...
- func Storage(bcfg *BuildCfg, cfg *config.Config) fx.Option
- type BaseBlocks
- type BuildCfg
Constants ¶
const DefaultIpnsCacheSize = 128
Variables ¶
var BaseLibP2P = fx.Options( fx.Provide(libp2p.PNet), fx.Provide(libp2p.ConnectionManager), fx.Provide(libp2p.DefaultTransports), fx.Provide(libp2p.Host), fx.Provide(libp2p.DiscoveryHandler), fx.Invoke(libp2p.PNetChecker), )
var Core = fx.Options( fx.Provide(BlockService), fx.Provide(Dag), fx.Provide(resolver.NewBasicResolver), fx.Provide(Pinning), fx.Provide(Files), )
Core groups basic IPFS services
var IPNS = fx.Options( fx.Provide(RecordValidator), )
IPNS groups namesys related units
var Offline = fx.Options( fx.Provide(offline.Exchange), fx.Provide(Namesys(0)), fx.Provide(offroute.NewOfflineRouter), fx.Provide(provider.NewOfflineProvider), )
Offline groups offline alternatives to Online units
Functions ¶
func BaseBlockstoreCtor ¶
func BaseBlockstoreCtor(cacheOpts blockstore.CacheOpts, nilRepo bool, 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 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) func(rt routing.IpfsRouting, repo repo.Repo) (namesys.NameSystem, error)
Namesys creates new name system
func OnlineExchange ¶
func OnlineExchange(mctx helpers.MetricsCtx, lc fx.Lifecycle, host host.Host, rt routing.IpfsRouting, bs blockstore.GCBlockstore) exchange.Interface
OnlineExchange creates new LibP2P backed block exchange (BitSwap)
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 ¶
func PrivateKey(sk crypto.PrivKey) func(id peer.ID) (crypto.PrivKey, error)
PrivateKey loads the private key from config
func ProviderCtor ¶
func ProviderCtor(mctx helpers.MetricsCtx, lc fx.Lifecycle, queue *provider.Queue, rt routing.IpfsRouting) provider.Provider
ProviderCtor creates new record provider
func ProviderQueue ¶
func ProviderQueue(mctx helpers.MetricsCtx, lc fx.Lifecycle, repo repo.Repo) (*provider.Queue, error)
ProviderQueue creates new datastore backed provider queue
func RecordValidator ¶
func RecordValidator(ps peerstore.Peerstore) record.Validator
RecordValidator provides namesys compatible routing record validator
func RepoConfig ¶
RepoConfig loads configuration from the repo
func Reprovider ¶
func Reprovider(lp lcProcess, reprovider *reprovide.Reprovider) error
Reprovider runs the reprovider service
func ReproviderCtor ¶
func ReproviderCtor(reproviderInterval time.Duration) func(helpers.MetricsCtx, fx.Lifecycle, routing.IpfsRouting, reprovide.KeyChanFunc) (*reprovide.Reprovider, error)
ReproviderCtor creates new reprovider
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 // If NilRepo is set, a Repo backed by a nil datastore will be constructed NilRepo bool Routing libp2p.RoutingOption Host libp2p.HostOption Repo repo.Repo }