corerepo

package
v0.4.18-rc1 Latest Latest
Warning

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

Go to latest
Published: Oct 28, 2018 License: MIT Imports: 15 Imported by: 0

Documentation

Overview

Package corerepo provides pinning and garbage collection for local IPFS block services.

IPFS nodes will keep local copies of any object that have either been added or requested locally. Not all of these objects are worth preserving forever though, so the node administrator can pin objects they want to keep and unpin objects that they don't care about.

Garbage collection sweeps iterate through the local block store removing objects that aren't pinned, which frees storage space for new objects.

Index

Constants

View Source
const NoLimit uint64 = math.MaxUint64

NoLimit represents the value for unlimited storage

Variables

View Source
var ErrMaxStorageExceeded = errors.New("maximum storage limit exceeded. Try to unpin some files")

Functions

func BestEffortRoots added in v0.4.3

func BestEffortRoots(filesRoot *mfs.Root) ([]cid.Cid, error)

func CollectResult added in v0.4.8

func CollectResult(ctx context.Context, gcOut <-chan gc.Result, cb func(cid.Cid)) error

CollectResult collects the output of a garbage collection run and calls the given callback for each object removed. It also collects all errors into a MultiError which is returned after the gc is completed.

func ConditionalGC added in v0.3.10

func ConditionalGC(ctx context.Context, node *core.IpfsNode, offset uint64) error

func GarbageCollect

func GarbageCollect(n *core.IpfsNode, ctx context.Context) error

func GarbageCollectAsync

func GarbageCollectAsync(n *core.IpfsNode, ctx context.Context) <-chan gc.Result

func PeriodicGC added in v0.3.10

func PeriodicGC(ctx context.Context, node *core.IpfsNode) error

func Pin

func Pin(n *core.IpfsNode, api iface.CoreAPI, ctx context.Context, paths []string, recursive bool) ([]cid.Cid, error)

func Unpin

func Unpin(n *core.IpfsNode, api iface.CoreAPI, ctx context.Context, paths []string, recursive bool) ([]cid.Cid, error)

Types

type GC added in v0.3.10

type GC struct {
	Node       *core.IpfsNode
	Repo       repo.Repo
	StorageMax uint64
	StorageGC  uint64
	SlackGB    uint64
	Storage    uint64
}

func NewGC added in v0.3.10

func NewGC(n *core.IpfsNode) (*GC, error)

type MultiError added in v0.4.8

type MultiError struct {
	Errors  []error
	Summary error
}

MultiError contains the results of multiple errors.

func NewMultiError added in v0.4.8

func NewMultiError(errs ...error) *MultiError

NewMultiError creates a new MultiError object from a given slice of errors.

func (*MultiError) Error added in v0.4.8

func (e *MultiError) Error() string

type SizeStat added in v0.4.17

type SizeStat struct {
	RepoSize   uint64 // size in bytes
	StorageMax uint64 // size in bytes
}

SizeStat wraps information about the repository size and its limit.

func RepoSize added in v0.4.17

func RepoSize(ctx context.Context, n *core.IpfsNode) (SizeStat, error)

RepoSize returns a *Stat object with the RepoSize and StorageMax fields set.

type Stat added in v0.4.0

type Stat struct {
	SizeStat
	NumObjects uint64
	RepoPath   string
	Version    string
}

Stat wraps information about the objects stored on disk.

func RepoStat added in v0.4.0

func RepoStat(ctx context.Context, n *core.IpfsNode) (Stat, error)

RepoStat returns a *Stat object with all the fields set.

Jump to

Keyboard shortcuts

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