go-ipfs: github.com/ipfs/go-ipfs/core Index | Files | Directories

package core

import "github.com/ipfs/go-ipfs/core"

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

Package Files

builder.go core.go

type BuildCfg Uses

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

type ConstructPeerHostOpts Uses

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

type IpfsNode Uses

type IpfsNode struct {

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

    Repo repo.Repo

    // Local node
    Pinning         pin.Pinner             // the pinning manager
    Mounts          Mounts                 `optional:"true"` // current mount state, if any.
    PrivateKey      ic.PrivKey             `optional:"true"` // the local node's private Key
    PNetFingerprint libp2p.PNetFingerprint `optional:"true"` // fingerprint of private network

    // Services
    Peerstore       pstore.Peerstore     `optional:"true"` // storage for other Peer instances
    Blockstore      bstore.GCBlockstore  // the block store (lower level)
    Filestore       *filestore.Filestore `optional:"true"` // the filestore blockstore
    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"`
    FilesRoot       *mfs.Root
    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)
    Namesys      namesys.NameSystem  // the name system, resolves paths to hashes
    Provider     provider.System     // the value provider system
    IpnsRepub    *ipnsrp.Republisher `optional:"true"`

    AutoNAT  *autonat.AutoNATService    `optional:"true"`
    PubSub   *pubsub.PubSub             `optional:"true"`
    PSRouter *psrouter.PubsubValueStore `optional:"true"`
    DHT      *dht.IpfsDHT               `optional:"true"`
    P2P      *p2p.P2P                   `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 Uses

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

NewNode constructs and returns an IpfsNode using the given cfg.

func (*IpfsNode) Bootstrap Uses

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

Bootstrap will set and call the IpfsNodes bootstrap function.

func (*IpfsNode) Close Uses

func (n *IpfsNode) Close() error

Close calls Close() on the App object

func (*IpfsNode) Context Uses

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

Context returns the IpfsNode context

type Mounts Uses

type Mounts struct {
    Ipfs mount.Mount
    Ipns mount.Mount
}

Mounts defines what the node's mount state is. This should perhaps be moved to the daemon or mount. It's here because it needs to be accessible across daemon requests.

Directories

PathSynopsis
bootstrap
commandsPackage commands implements the ipfs command interface
commands/cmdenv
commands/dag
commands/e
commands/name
commands/object
commands/unixfs
coreapiPackage coreapi provides direct access to the core commands in IPFS.
coredag
corehttpPackage corehttp provides utilities for the webui, gateways, and other high-level HTTP interfaces to IPFS.
corerepo
coreunix
mock
node
node/helpers
node/libp2p

Package core imports 38 packages (graph) and is imported by 564 packages. Updated 2019-10-09. Refresh now. Tools for package owners.