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

      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

              type Mounts

              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.

                Source Files

                Directories

                Path Synopsis
                Package commands implements the ipfs command interface Using github.com/ipfs/go-ipfs/commands to define the command line and HTTP APIs.
                Package commands implements the ipfs command interface Using github.com/ipfs/go-ipfs/commands to define the command line and HTTP APIs.
                dag
                e
                pin
                Package coreapi provides direct access to the core commands in IPFS.
                Package coreapi provides direct access to the core commands in IPFS.
                Package corehttp provides utilities for the webui, gateways, and other high-level HTTP interfaces to IPFS.
                Package corehttp provides utilities for the webui, gateways, and other high-level HTTP interfaces to IPFS.