adder

package
v0.0.0-...-6646f2c Latest Latest
Warning

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

Go to latest
Published: Apr 15, 2019 License: MIT Imports: 16 Imported by: 4

Documentation

Overview

Package adder implements functionality to add content to IPFS daemons managed by the Cluster.

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.Directory) (cid.Cid, error)

FromFiles adds content from a files.Directory. 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