core

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Oct 11, 2021 License: Apache-2.0, MIT, Apache-2.0, + 1 more Imports: 41 Imported by: 0

Documentation

Overview

Package core implements the Dms3Node object and related methods.

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

$ godoc gitlab.dms3.io/dms3/go-dms3

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 Dms3Node

type Dms3Node 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 dms3p2p.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             ld.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 dms3-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
	Dms3NsRepub   *dms3nsrp.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
}

Dms3Node is DMS3 Core module. It represents an DMS3 instance.

func NewNode

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

NewNode constructs and returns an Dms3Node using the given cfg.

func (*Dms3Node) Bootstrap

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

Bootstrap will set and call the Dms3Nodes bootstrap function.

func (*Dms3Node) Close

func (n *Dms3Node) Close() error

Close calls Close() on the App object

func (*Dms3Node) Context

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

Context returns the Dms3Node context

type Mounts

type Mounts struct {
	Dms3   mount.Mount
	Dms3Ns 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

Path Synopsis
Package commands implements the dms3 command interface Using gitlab.dms3.io/dms3/go-dms3/commands to define the command line and HTTP APIs.
Package commands implements the dms3 command interface Using gitlab.dms3.io/dms3/go-dms3/commands to define the command line and HTTP APIs.
dag
e
pin
Package coreapi provides direct access to the core commands in DMS3.
Package coreapi provides direct access to the core commands in DMS3.
Package corehttp provides utilities for the webui, gateways, and other high-level HTTP interfaces to DMS3.
Package corehttp provides utilities for the webui, gateways, and other high-level HTTP interfaces to DMS3.
The coreindex package supports searchable index metadata and data management functions.
The coreindex package supports searchable index metadata and data management functions.
kvs
lfs
ufs

Jump to

Keyboard shortcuts

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