adder

package
v0.5.0-rc1 Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2018 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrDAGNotFound = errors.New("dagservice: block not found")

ErrDAGNotFound is returned whenever we try to get a block from the DAGService.

Functions

func BlockAllocate

func BlockAllocate(ctx context.Context, rpc *rpc.Client, pinOpts api.PinOptions) ([]peer.ID, error)

BlockAllocate helps allocating blocks to peers.

func Pin

func Pin(ctx context.Context, rpc *rpc.Client, pin api.Pin) error

Pin helps sending local RPC pin requests.

func PutBlock

func PutBlock(ctx context.Context, rpc *rpc.Client, n *api.NodeWithMeta, dests []peer.ID) error

PutBlock sends a NodeWithMeta to the given destinations.

Types

type Adder

type Adder struct {
	// contains filtered or unexported fields
}

Adder is used to add content to IPFS Cluster using an implementation of ClusterDAGService.

func New

func New(ds ClusterDAGService, p *api.AddParams, out chan *api.AddedOutput) *Adder

New returns a new Adder with the given ClusterDAGService, add options and a channel to send updates during the adding process.

An Adder may only be used once.

func (*Adder) FromFiles

func (a *Adder) FromFiles(ctx context.Context, f files.File) (*cid.Cid, error)

FromFiles adds content from a files.File. The adder will no longer be usable after calling this method.

func (*Adder) FromMultipart

func (a *Adder) FromMultipart(ctx context.Context, r *multipart.Reader) (*cid.Cid, error)

FromMultipart adds content from a multipart.Reader. The adder will no longer be usable after calling this method.

type BaseDAGService

type BaseDAGService struct {
}

BaseDAGService partially implements an ipld.DAGService. It provides the methods which are not needed by ClusterDAGServices (Get*, Remove*) so that they can save adding this code.

func (BaseDAGService) Get

func (dag BaseDAGService) Get(ctx context.Context, key *cid.Cid) (ipld.Node, error)

Get always returns errNotFound

func (BaseDAGService) GetMany

func (dag BaseDAGService) GetMany(ctx context.Context, keys []*cid.Cid) <-chan *ipld.NodeOption

GetMany returns an output channel that always emits an error

func (BaseDAGService) Remove

func (dag BaseDAGService) Remove(ctx context.Context, key *cid.Cid) error

Remove is a nop

func (BaseDAGService) RemoveMany

func (dag BaseDAGService) RemoveMany(ctx context.Context, keys []*cid.Cid) error

RemoveMany is a nop

type ClusterDAGService

type ClusterDAGService interface {
	ipld.DAGService
	// Finalize receives the IPFS content root CID as
	// returned by the ipfs adder.
	Finalize(ctx context.Context, ipfsRoot *cid.Cid) (*cid.Cid, error)
}

ClusterDAGService is an implementation of ipld.DAGService plus a Finalize method. ClusterDAGServices can be used to provide Adders with a different add implementation.

Directories

Path Synopsis
Package adderutils provides some utilities for adding content to cluster.
Package adderutils provides some utilities for adding content to cluster.
Package ipfsadd is a simplified copy of go-ipfs/core/coreunix/add.go
Package ipfsadd is a simplified copy of go-ipfs/core/coreunix/add.go
Package local implements a ClusterDAGService that chunks and adds content to a local peer, before pinning it.
Package local implements a ClusterDAGService that chunks and adds content to a local peer, before pinning it.
Package sharding implements a sharding ClusterDAGService places content in different shards while it's being added, creating a final Cluster DAG and pinning it.
Package sharding implements a sharding ClusterDAGService places content in different shards while it's being added, creating a final Cluster DAG and pinning it.

Jump to

Keyboard shortcuts

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