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


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.BandwidthCounter `optional:"true"`
    Discovery       discovery.Service         `optional:"true"`
    FilesRoot       *mfs.Root
    RecordValidator record.Validator

    // Online
    PeerHost      p2phost.Host            `optional:"true"` // the network host (server+client)
    Peering       peering.PeeringService  `optional:"true"`
    Filters       *ma.Filters             `optional:"true"`
    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"`
    GraphExchange graphsync.GraphExchange `optional:"true"`

    PubSub   *pubsub.PubSub             `optional:"true"`
    PSRouter *psrouter.PubsubValueStore `optional:"true"`
    DHT      *ddht.DHT                  `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.


commandsPackage commands implements the ipfs command interface
coreapiPackage coreapi provides direct access to the core commands in IPFS.
corehttpPackage corehttp provides utilities for the webui, gateways, and other high-level HTTP interfaces to IPFS.

Package core imports 41 packages (graph) and is imported by 1078 packages. Updated 2020-11-15. Refresh now. Tools for package owners.