Commit Graph

20 Commits

Author SHA1 Message Date
Hector Sanjuan
2bd401c5c6 Feat: Arbitrary-depth recursive pin levels.
This implements #5133 introducing an option to limit how deep we fetch and store
the DAG associated to a recursive pin ("--max-depth"). This feature
comes motivated by the need to fetch and pin partial DAGs in order to do
DAG sharding with IPFS Cluster.

This means that, when pinning something to --max-depth, the DAG will be
fetched only to that depth and not more.

In order to get this, the PR introduces new recursive pin types: "recursive1"
means: the given CID is pinned along with its direct children (maxDepth=1)

"recursive2" means: the given CID is pinned along with its direct children
and its grandchildren.

And so on...

This required introducing "maxDepth" limits to all the functions walking down
DAGs (in merkledag, pin, core/commands, core/coreapi, exchange/reprovide modules).

maxDepth == -1 effectively acts as no-limit, and all these functions behave like
they did before.

In order to facilitate the task, a new CID Set type has been added:
thirdparty/recpinset. This set carries the MaxDepth associated to every Cid.
This allows to shortcut exploring already explored branches just like the original
cid.Set does. It also allows to store the Recursive pinset (and replaces cid.Set).
recpinset should be moved outside to a different repo eventually.

TODO: tests
TODO: refs -r with --max-depth

License: MIT
Signed-off-by: Hector Sanjuan <code@hector.link>
2018-06-21 14:35:42 +02:00
Steven Allen
85acad9a01 gx update go-log, sys, go-crypto
* go-log
* sys
* go-crypto

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-06-08 22:36:24 -07:00
Łukasz Magiera
b290286dd7 misc: Fix a few typos
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-03-30 09:47:22 +02:00
Łukasz Magiera
12c3179614 coreapi: don't use underscores in opt reciever funcs
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-03-25 14:09:59 +02:00
Łukasz Magiera
c354e19628 coreapi: use defined functions for pin type option
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-03-25 13:58:29 +02:00
Łukasz Magiera
79f56c1831 coreapi: remove options from interfaces
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-03-24 23:25:11 +01:00
Łukasz Magiera
c8cfed5c84 coreapi: implement pin api
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-02-04 15:29:50 +01:00
Łukasz Magiera
064c194b4f coreapi: pin draft
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-02-04 15:29:50 +01:00
Łukasz Magiera
e77b938161 coreapi: update block after update
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-02-02 22:57:54 +01:00
Łukasz Magiera
bdc9f6a96a coreapi: implement block API
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-01-31 00:31:08 +01:00
Łukasz Magiera
219eae7614 coreapi: draft block API
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-01-31 00:31:08 +01:00
Whyrusleeping
4d8b3c9bce
Merge pull request #4492 from ipfs/feat/coreapi/object
coreapi: Basic object API implementation
2018-01-30 13:14:06 -08:00
Łukasz Magiera
0377e49590 coreapi: object API tests
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-01-25 18:26:57 +01:00
Łukasz Magiera
f6663bd05d coreapi: implement object.Put
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-01-25 18:25:05 +01:00
Łukasz Magiera
ae949e3a93 coreapi: Object api review
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-01-25 18:25:05 +01:00
Steven Allen
fe8846fcd7 gx: mass update
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-01-24 15:58:44 -08:00
Łukasz Magiera
396c34b4e1 coreapi: key tests
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-01-01 19:00:56 +01:00
Łukasz Magiera
8df2d1a92e coreapi: name/key review suggestions
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-01-01 17:38:12 +01:00
Łukasz Magiera
1c73d48e5b coreapi: name/key functional options
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-01-01 17:35:37 +01:00
Łukasz Magiera
f153c01dfa coreapi: functional options for DagAPI
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2017-12-20 15:03:13 +01:00