ipfs-pump

command module
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Jun 4, 2021 License: MIT Imports: 6 Imported by: 0

README

ipfs-pump

ipfs-pump is a command line tool to copy data between IPFS nodes, cluster or storage.

It support multiple interfaces:

  • the IPFS API
  • direct access to a FlatFS datastore
  • direct access to a Badger datastore
  • direct access to a S3 datastore
  • a file with a list of CID

Concepts

An Enumerator is a source that will enumerate the list of existing blocks.

A Collector is a source that where to retrieve block's data.

A Drain is a destination where to push blocks.

Note: even though you will likely want the Enumerator and the Collector to be the same source, they don't necessarily have to.

Install

go get -u github.com/INFURA/ipfs-pump

Usage and examples

You need to provide as arguments the three types of Enumerator, Collector and Drain, as well as the corresponding configuration flags.

Copy between two live nodes using the API:

ipfs-pump \
    apipin --enum-api-pin-url=127.0.0.1:5001 --enum-api-pin-stream \
    api --coll-api-url=127.0.0.1:5001 \
    api --drain-api-url=127.0.0.1:5002 \
    --worker=10

Copy from a FlatFS storage to a Badger storage when the nodes are stopped:

ipfs-pump \
    flatfs --enum-flatfs-path=~/.ipfs/blocks \
    flatfs --coll-flatfs-path=~/.ipfs/blocks \
    badger --drain-badger-path=~/.ipfs/badgerds \
    --worker=50

Parallel processing

Using the --worker flag you can enable parallel processing and greatly increase the throughput.

License

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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