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 ¶ added in v0.3.8
type BuildCfg = node.BuildCfg // Alias for compatibility until we properly refactor the constructor interface
type ConstructPeerHostOpts ¶ added in v0.4.8
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 ¶ added in v0.3.8
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.
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. |
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. |
Click to show internal directories.
Click to hide internal directories.