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
e54a4f8dd5
coreapi: var block for errors
...
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-03-10 22:17:27 +01:00
Łukasz Magiera
fa0fef336d
coreapi: minor doc fixes
...
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-03-10 18:52:10 +01:00
Łukasz Magiera
f218b69e47
coreapi: split the interface into multiple files
...
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-03-10 18:46:45 +01:00
Łukasz Magiera
eff69bbf37
coreapi: don't alias ipld types
...
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-03-10 18:31:28 +01:00
Łukasz Magiera
20b59ec1ec
coreapi: move unixfs errors to the top
...
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-03-10 18:27:21 +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
b125c89ac7
corapi: block docs
...
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-01-31 00:31:08 +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
64e2327e22
coreapi: object docs
...
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
Łukasz Magiera
529f84726e
coreapi: Basic object API implementation
...
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
ForrestWeston
132c939d24
interface docs for coreapi interface
...
License: MIT
Signed-off-by: ForrestWeston <forrest@protocol.ai>
2018-01-22 16:25:00 -08:00
Łukasz Magiera
2109cbc172
coreapi: Name tests
...
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-01-02 21:01:03 +01: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
587dc187c6
coreapi: Documentation for Name/Key
...
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
1b5fbb09b5
coreapi: Keystore API proposal
...
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-01-01 17:35:37 +01:00
Łukasz Magiera
027f498bc9
coreapi: Name API proposal
...
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-01-01 17:35:37 +01:00
Łukasz Magiera
db318333ab
coreapi: dag review
...
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2017-12-23 04:49:00 +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
Łukasz Magiera
b40a6f88eb
coreapi: add tests for dag
...
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2017-12-20 13:47:32 +01:00
Łukasz Magiera
82924fbedf
coreapi: DAG API proposal
...
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2017-12-20 13:44:06 +01:00
Whyrusleeping
9db5471e72
Merge pull request #4453 from ipfs/gx/update-5osgb9
...
gx: update go-multihash
2017-12-14 17:59:26 -08:00
Łukasz Magiera
eb537a7c8b
docs/coreapi: Add some documentation to CoreAPI
...
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2017-12-15 01:34:49 +01:00
Steven Allen
dfe7ef4fcf
gx: update go-multihash
...
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-12-14 13:09:51 -08:00
Steven Allen
70d6629940
gx: update go-cid, go-multibase, base32
...
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-09-01 17:46:49 -07:00
Jeromy
cccc6a94a3
update go-multihash and bubble up changes
...
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2017-07-11 19:27:43 -07:00
Łukasz Magiera
8ab93aaeb2
Update go-datastore to 1.2.2, go-cid to 0.7.16
...
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2017-07-04 20:18:57 +02:00
Steven Allen
13636bef50
blocks: gx import go-block-format
...
And updated related dependencies.
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-06-29 22:12:14 +02:00
Jeromy
b15470d548
bubble up updates from go-multihash changes
...
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2017-04-20 20:28:04 +02:00
Lars Gierth
ee45b8d32f
coreapi: make the interfaces path centric
...
The new coreiface.Path maps a path to the cid.Cid
resulting from a full path resolution.
The path is internally represented as a go-ipfs/path.Path,
but that doesn't matter to the outside.
Apart from the path-to-CID mapping, it also aims to hold all
resolved segment CIDs of the path. Right now it only exposes
Root(), and only for flat paths a la /ipfs/Qmfoo. In other cases,
the root is nil.
In the future, resolution will internally use
go-ipfs/path.Resolver.ResolvePathComponents and thus always return
the proper resolved segments, via Root(), or a future Segments() func.
- Add coreiface.Path with Cid() and Root().
- Add CoreAPI.ResolvePath() for getting a coreiface.Path.
- All functions now expect and return coreiface.Path.
- Add ParsePath() and ParseCid() for constructing a coreiface.Path.
- Add coreiface.Node and Link which are simply go-ipld-node.Node and Link.
- Add CoreAPI.ResolveNode() for getting a Node from a Path.
License: MIT
Signed-off-by: Lars Gierth <larsg@systemli.org>
2017-03-17 03:47:59 +01:00
Lars Gierth
e260d2fd06
coreapi: smarter way of dealing with the different APIs
...
License: MIT
Signed-off-by: Lars Gierth <larsg@systemli.org>
2017-03-17 02:35:17 +01:00
Jeromy
b4eeff2d84
update go-multihash and bubble up deps
...
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2017-02-12 12:25:41 -08:00
Jeromy
53d47669da
bubble up go-datastore deps
...
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2016-11-28 22:29:38 -08:00
Jeromy
396c629301
update to newer ipld node interface with Copy and better Tree
...
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2016-11-15 18:00:49 -08:00
Lars Gierth
f610e19d3e
coreapi: reuse go-ipld-node.Link
...
License: MIT
Signed-off-by: Lars Gierth <larsg@systemli.org>
2016-11-07 18:25:49 +01:00