core

package
v0.0.0-...-7d4678c Latest Latest
Warning

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

Go to latest
Published: Sep 10, 2019 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Overview

Package core implements the IpfsNode object and related methods.

Packages underneath core/ provide a (relatively) stable, low-level API to carry out most IPFS-related tasks. For more details on the other interfaces and how core/... fits into the bigger IPFS picture, see:

$ godoc github.com/ipfs/go-ipfs

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BuildCfg

type BuildCfg = node.BuildCfg // Alias for compatibility until we properly refactor the constructor interface

type ConstructPeerHostOpts

type ConstructPeerHostOpts struct {
	AddrsFactory      p2pbhost.AddrsFactory
	DisableNatPortMap bool
	DisableRelay      bool
	EnableRelayHop    bool
	ConnectionManager connmgr.ConnManager
}

type IpfsNode

type IpfsNode struct {

	// Self
	Identity peer.ID // the local node's identity

	Repo repo.Repo

	// Local node
	PrivateKey ic.PrivKey `optional:"true"` // the local node's private Key

	// Services
	Peerstore       pstore.Peerstore    `optional:"true"` // storage for other Peer instances
	Blockstore      bstore.GCBlockstore // the block store (lower level)
	BaseBlocks      node.BaseBlocks     // the raw blockstore, no filestore wrapping
	GCLocker        bstore.GCLocker     // the locker used to protect the blockstore during gc
	Blocks          bserv.BlockService  // the block service, get/add blocks.
	DAG             ipld.DAGService     // the merkle dag service, get/add objects.
	Resolver        *resolver.Resolver  // the path resolution system
	Reporter        metrics.Reporter    `optional:"true"`
	Discovery       discovery.Service   `optional:"true"`
	RecordValidator record.Validator

	// Online
	PeerHost     p2phost.Host       `optional:"true"` // the network host (server+client)
	Bootstrapper io.Closer          `optional:"true"` // the periodic bootstrapper
	Routing      routing.Routing    `optional:"true"` // the routing system. recommend ipfs-dht
	Exchange     exchange.Interface // the block exchange + strategy (bitswap)

	AutoNAT *autonat.AutoNATService `optional:"true"`
	PubSub  *pubsub.PubSub          `optional:"true"`
	DHT     *dht.IpfsDHT            `optional:"true"`

	Process goprocess.Process

	// Flags
	IsOnline bool `optional:"true"` // Online is set when networking is enabled.
	IsDaemon bool `optional:"true"` // Daemon is set when running on a long-running daemon.
	// contains filtered or unexported fields
}

IpfsNode is IPFS Core module. It represents an IPFS instance.

func NewNode

func NewNode(ctx context.Context, cfg *BuildCfg) (*IpfsNode, error)

NewNode constructs and returns an IpfsNode using the given cfg.

func (*IpfsNode) Bootstrap

func (n *IpfsNode) Bootstrap(cfg bootstrap.BootstrapConfig) error

Bootstrap will set and call the IpfsNodes bootstrap function.

func (*IpfsNode) Close

func (n *IpfsNode) Close() error

Close calls Close() on the App object

func (*IpfsNode) Context

func (n *IpfsNode) Context() context.Context

Context returns the IpfsNode context

Directories

Path Synopsis
Package coreapi provides direct access to the core commands in IPFS.
Package coreapi provides direct access to the core commands in IPFS.

Jump to

Keyboard shortcuts

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