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 Datastore ¶
func Datastore(repo repo.Repo) datastore.Datastore
Datastore provides the datastore
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 IPFS ¶
func IPFS(ctx context.Context, bcfg *BuildCfg) fx.Option
IPFS builds a group of fx Options based on the passed BuildCfg
func Identity ¶
func Identity(cfg *config.Config) fx.Option
Identity groups units providing cryptographic identity
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 Online ¶
func Online(bcfg *BuildCfg, cfg *config.Config) fx.Option
Online groups online-only units
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 Providers ¶
func Providers(cfg *config.Config) fx.Option
Providers groups units managing provider routing records
func RecordValidator ¶
func RecordValidator(ps peerstore.Peerstore) record.Validator
RecordValidator provides namesys compatible routing record validator
func RepoConfig ¶
func RepoConfig(repo repo.Repo) (*config.Config, error)
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
}