node

package
v0.0.0-...-c0cc0bc Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 30, 2024 License: Apache-2.0, MIT Imports: 73 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultIpnsCacheSize = 128

Variables

Core groups basic BTFS services

IPNS groups namesys related 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 BatchedProviderSys

func BatchedProviderSys(isOnline bool, reprovideInterval time.Duration) interface{}

BatchedProviderSys creates new provider system

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 DNSResolver

func DNSResolver(cfg *config.Config) (*madns.Resolver, error)

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 FetcherConfig

func FetcherConfig(bs blockservice.BlockService) fetchersOut

FetcherConfig returns a fetcher config that can build new fetcher instances

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

BTFS 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 irouting.ProvideManyRouter, rslv *madns.Resolver, 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, useBatchedProviding bool, reprovideStrategy string, reprovideInterval time.Duration) 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, useBatchedProviding bool, reprovideStrategy string, reprovideInterval time.Duration) 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 PeerWithLastConn

func PeerWithLastConn() fx.Option

PeerWithLastConn tryConn to connect to last 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 irouting.ProvideManyRouter) 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, reproviderInterval time.Duration) 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

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 btfs 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
}

func (*BuildCfg) AnnouncePublicIp

func (bcfg *BuildCfg) AnnouncePublicIp() error

AnnouncePublicIp announces swarm address with default (direct) port

func (*BuildCfg) AnnouncePublicIpWithPort

func (bcfg *BuildCfg) AnnouncePublicIpWithPort(extPort, intPort int) error

AnnouncePublicIpWithPort announces swarm address with external port and performs internal port validation

Directories

Path Synopsis
fd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL