Go to file
Hector Sanjuan 0d73d33ef5 Pintracker: streaming methods
This commit continues the work of taking advantage of the streaming
capabilities in go-libp2p-gorpc by improving the ipfsconnector and pintracker
components.

StatusAll and RecoverAll methods are now streaming methods, with the REST API
output changing accordingly to produce a stream of GlobalPinInfos rather than
a json array.

pin/ls request to the ipfs daemon now use ?stream=true and avoid having to
load the full pinset map on memory. StatusAllLocal and RecoverAllLocal
requests to the pin tracker stream all the way and no longer store the full
pinset, and the full PinInfo status slice before sending it out.

We have additionally switched to a pattern where streaming methods receive the
channel as an argument, allowing the caller to decide on whether to launch a
goroutine, do buffering etc.
2022-03-22 15:38:01 +01:00
.github Tests: Separate docker build and compose tests to different jobs 2021-12-01 01:27:59 +01:00
adder Pinset streaming and method type revamp 2022-03-19 03:02:55 +01:00
allocator/balanced Pinset streaming and method type revamp 2022-03-19 03:02:55 +01:00
api Pintracker: streaming methods 2022-03-22 15:38:01 +01:00
cmd Pintracker: streaming methods 2022-03-22 15:38:01 +01:00
cmdutils Pintracker: streaming methods 2022-03-22 15:38:01 +01:00
config Dependency upgrades (#1451) 2021-08-16 17:52:31 +02:00
consensus Pintracker: streaming methods 2022-03-22 15:38:01 +01:00
datastore Fix #1320: Add automatic GC to Badger datastore 2021-06-28 21:51:29 +02:00
docker Docker: allow controlling datastore backend via IPFS_CLUSTER_DATASTORE 2021-06-29 15:44:24 +02:00
informer Pintracker: streaming methods 2022-03-22 15:38:01 +01:00
ipfsconn/ipfshttp Pintracker: streaming methods 2022-03-22 15:38:01 +01:00
monitor Pinset streaming and method type revamp 2022-03-19 03:02:55 +01:00
observations Dependency upgrades (#1378) 2021-07-06 14:06:04 +02:00
pintracker Pintracker: streaming methods 2022-03-22 15:38:01 +01:00
pstoremgr Changes pertaining to go-libp2p v0.16.0 2021-11-30 06:25:15 +01:00
rpcutil Pinset streaming and method type revamp 2022-03-19 03:02:55 +01:00
sharness Pintracker: streaming methods 2022-03-22 15:38:01 +01:00
state Pintracker: streaming methods 2022-03-22 15:38:01 +01:00
test Pintracker: streaming methods 2022-03-22 15:38:01 +01:00
version Set development version v0.14.5-next 2022-02-16 17:12:14 +01:00
.codeclimate.yml codeclimate 2018-08-07 20:12:05 +02:00
.codecov.yml Codecov: disable comments 2020-10-05 08:41:42 +02:00
.dockerignore Issue #259: Address CR comments 2017-12-04 13:59:48 +01:00
.gitignore Feat: ipfs-cluster-follow 2019-12-07 15:38:59 +01:00
add_test.go Pinset streaming and method type revamp 2022-03-19 03:02:55 +01:00
allocate.go Pinset streaming and method type revamp 2022-03-19 03:02:55 +01:00
CHANGELOG.md Fix links in latest CHANGELOG entry 2022-02-16 17:17:29 +01:00
cluster_config_test.go allocator: Filter out metrics from non-trusted peers when configured 2022-03-01 11:25:16 +01:00
cluster_config.go allocator: Filter out metrics from non-trusted peers when configured 2022-03-01 11:25:16 +01:00
cluster_test.go Pintracker: streaming methods 2022-03-22 15:38:01 +01:00
cluster.go Pintracker: streaming methods 2022-03-22 15:38:01 +01:00
clusterhost.go Dependency upgrades (#1600) 2022-03-15 11:50:44 +01:00
config_test.go allocator: Filter out metrics from non-trusted peers when configured 2022-03-01 11:25:16 +01:00
connect_graph.go Pinset streaming and method type revamp 2022-03-19 03:02:55 +01:00
CONTRIBUTING.md Docs: Move to website. 2018-04-27 09:05:11 +02:00
COPYRIGHT Dual-license the codebase. 2019-03-01 20:12:19 +00:00
docker-compose.yml chore: use latest in all instances 2021-06-09 15:39:34 +02:00
Dockerfile Docker: set ipfs as file owner when adding 2021-12-01 01:47:15 +01:00
Dockerfile-bundle Docker: set ipfs as file owner when adding 2021-12-01 01:47:15 +01:00
Dockerfile-test Docker: set ipfs as file owner when adding 2021-12-01 01:47:15 +01:00
go.mod Pintracker: streaming methods 2022-03-22 15:38:01 +01:00
go.sum Pintracker: streaming methods 2022-03-22 15:38:01 +01:00
ipfscluster_test.go Pintracker: streaming methods 2022-03-22 15:38:01 +01:00
ipfscluster.go Pintracker: streaming methods 2022-03-22 15:38:01 +01:00
LICENSE Chore: Add license file with URLS (#1014) 2020-03-06 13:52:19 +01:00
LICENSE-APACHE Chore: Add license file with URLS (#1014) 2020-03-06 13:52:19 +01:00
LICENSE-MIT Chore: Add license file with URLS (#1014) 2020-03-06 13:52:19 +01:00
logging.go Merge branch 'master' into feat/pinning-api 2022-03-10 13:41:54 +01:00
Makefile Be more verbose in the docker compose test 2021-12-01 00:10:32 +01:00
peer_manager_test.go Pintracker: streaming methods 2022-03-22 15:38:01 +01:00
pnet_test.go Dependency ugprade: changes needed 2020-03-22 14:50:25 +01:00
README.md Update IRC link in repository badges 2021-06-01 14:29:47 +02:00
release.sh release.sh: improve script. 2021-01-14 14:06:53 +01:00
rpc_api.go Pintracker: streaming methods 2022-03-22 15:38:01 +01:00
rpc_policy.go cluster: add PeersWithFilter option that only requests info for certain peer IDs 2022-02-02 00:43:00 +01:00
util.go Pinset streaming and method type revamp 2022-03-19 03:02:55 +01:00

IPFS Cluster

Made by Main project Matrix channel GoDoc Go Report Card Build Status codecov

Automated data availability and redundancy on IPFS

logo

IPFS Cluster provides data orchestration across a swarm of IPFS daemons by allocating, replicating and tracking a global pinset distributed among multiple peers.

It provides:

  • A cluster peer application: ipfs-cluster-service, to be run along with go-ipfs.
  • A client CLI application: ipfs-cluster-ctl, which allows easily interacting with the peer's HTTP API.
  • An additional "follower" peer application: ipfs-cluster-follow, focused on simplifying the process of configuring and running follower peers.

Are you using IPFS Cluster?

Please participate in the IPFS Cluster user registry.


Table of Contents

Documentation

Please visit https://cluster.ipfs.io/documentation/ to access user documentation, guides and any other resources, including detailed download and usage instructions.

News & Roadmap

We regularly post project updates to https://cluster.ipfs.io/news/ .

The most up-to-date Roadmap is available at https://cluster.ipfs.io/roadmap/ .

Install

Instructions for different installation methods (including from source) are available at https://cluster.ipfs.io/download .

Usage

Extensive usage information is provided at https://cluster.ipfs.io/documentation/ , including:

Contribute

PRs accepted. As part of the IPFS project, we have some contribution guidelines.

License

This library is dual-licensed under Apache 2.0 and MIT terms.

© 2020. Protocol Labs, Inc.