View Source
const DefaultIpnsCacheSize = 128


    Core groups basic IPFS services

      IPNS groups namesys related units


      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 Dag

          func Dag(bs blockservice.BlockService) format.DAGService

            Dag creates new DAGService

            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 Graphsync

                    func Graphsync(lc fx.Lifecycle, mctx helpers.MetricsCtx, host libp2p.Host, bs blockstore.GCBlockstore) graphsync.GraphExchange

                      Graphsync constructs a graphsync

                      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 LibP2P

                            func LibP2P(bcfg *BuildCfg, cfg *config.Config) fx.Option

                            func Namesys

                            func Namesys(cacheSize int) func(rt routing.Routing, repo repo.Repo) (namesys.NameSystem, error)

                              Namesys creates new name system

                              func Networked

                              func Networked(bcfg *BuildCfg, cfg *config.Config) fx.Option

                              func Offline

                              func Offline(cfg *config.Config) fx.Option

                                Offline groups offline alternatives to Online units

                                func OfflineProviders

                                func OfflineProviders(useStrategicProviding bool, reprovideStrategy string, reprovideInterval string) fx.Option

                                  OfflineProviders groups units managing provider routing records offline

                                  func Online

                                  func Online(bcfg *BuildCfg, cfg *config.Config) fx.Option

                                    Online groups online-only units

                                    func OnlineExchange

                                    func OnlineExchange(provide bool) interface{}

                                      OnlineExchange creates new LibP2P backed block exchange (BitSwap)

                                      func OnlineProviders

                                      func OnlineProviders(useStrategicProviding bool, reprovideStrategy string, reprovideInterval string) fx.Option

                                        OnlineProviders groups units managing provider routing records online

                                        func PeerID

                                        func PeerID(id peer.ID) func() peer.ID

                                        func PeerWith

                                        func PeerWith(peers ...peer.AddrInfo) fx.Option

                                          PeerWith configures the peering service to peer with the specified peers.

                                          func Peering

                                          func Peering(lc fx.Lifecycle, host host.Host) *peering.PeeringService

                                            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

                                              func PrivateKey(sk crypto.PrivKey) func(id peer.ID) (crypto.PrivKey, error)

                                                PrivateKey loads the private key from config

                                                func ProviderQueue

                                                func ProviderQueue(mctx helpers.MetricsCtx, lc fx.Lifecycle, repo repo.Repo) (*q.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

                                                    func RepoConfig(repo repo.Repo) (*config.Config, error)

                                                      RepoConfig loads configuration from the repo

                                                      func SimpleProvider

                                                      func SimpleProvider(mctx helpers.MetricsCtx, lc fx.Lifecycle, queue *q.Queue, rt routing.Routing) provider.Provider

                                                        SimpleProvider creates new record provider

                                                        func SimpleProviderSys

                                                        func SimpleProviderSys(isOnline bool) interface{}

                                                          SimpleProviderSys creates new provider system

                                                          func SimpleProviders

                                                          func SimpleProviders(reprovideStrategy string, reprovideInterval string) fx.Option

                                                            SimpleProviders creates the simple provider/reprovider dependencies

                                                            func SimpleReprovider

                                                            func SimpleReprovider(reproviderInterval time.Duration) interface{}

                                                              SimpleReprovider creates new reprovider

                                                              func Storage

                                                              func Storage(bcfg *BuildCfg, cfg *config.Config) fx.Option

                                                                Storage groups units which setup datastore based persistence and blockstore layers


                                                                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


                                                                  Path Synopsis