Commit Graph

11097 Commits

Author SHA1 Message Date
Steven Allen
1358b28204 add sharness for trickle importer
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-07-16 15:04:45 -07:00
Steven Allen
19caad2301 add trickle-dag support to the urlstore
fixes #5241

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-07-16 15:04:23 -07:00
Steven Allen
89e1d9fd49 switch urlstore to the new commands lib
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-07-16 12:47:15 -07:00
Whyrusleeping
0ab36f00bc
Merge pull request #5118 from schomatis/feat/importer/remove-unixfsnode
importer: remove `UnixfsNode` from the balanced builder
2018-07-16 18:34:03 +02:00
Lucas Molas
13d9110088 unixfs: split precalcNextBuf
Create new `loadBufNode` function to handle the `buf` logic which is unrelated
to the main `precalcNextBuf` logic of processing promises to fetch nodes.

License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
2018-07-16 13:33:45 -03:00
Lucas Molas
a1d207343a unixfs: refactor switch in precalcNextBuf
Do not use `NewDagReader` just for the `RawNode` case.
Treat invalid UnixFS types in the same case.

License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
2018-07-16 13:31:52 -03:00
Lucas Molas
474b77a2bd importer: remove UnixfsNode from the balanced builder
The `UnixfsNode` structure has multiple pointers to many (non-complementary)
mutually exclusive node types, only some of them are active (not-`nil`) at a
given time in the code path which made the code too convoluted. Specifically,
the most important distinction between node types was being hidden: leaf nodes
vs internal (non-leaf) nodes.

Remove entirely the use of `UnixfsNode` from the `balanced` package replacing it
in turn with the newly created `FSNodeOverDag` structure that represents the
UnixFS node encoded inside the DAG node, primarily used for internal node
representations. Leaf nodes are handled exclusively in the `NewLeafDataNode`
encapsulating its multiple representations (that we're previously exposed in
`UnixfsNode` as conflicting pointers).

The `builder.go` file has been completely rewritten, although the basic DAG
creation algorithm has been preserved (extending a full DAG by creating a new
root and linking the old one as its child), the most significant modification
has been in the loop of `Layout` that now only handles internal nodes (i.e.,
nodes with `depth` bigger than zero) to be able to adapt `fillNodeRec` to only
that scenario (avoiding the replace logic of the zero `depth` case with the
defective `Set` function, now removed). The `fillNodeRec` now explicitly returns
the `ipld.Node` and the size of the file data it's storing to propagate it
upwards into the DAG.

The `DagBuilderHelper` was heavily extended to incorporate `ipld.Node` functions
that would replace the `UnixfsNode` ones used by the balanced builder:
`NewLeafNode()`, `NewLeafDataNode()` and `AddNodeAndClose()`. Also, the
`ProcessFileStore` function was incorporated to encapsulate all the logic
related to the Filestore support which was scattered throughout the builder
logic, the `offset` that was being passed through most functions is now a part
of the `DagBuilderHelper`.

This has turned out to be a rather big commit, it should have been split into
more smaller and logically cohesive commits, but the `UnixfsNode` was too
entangled inside the logic and that would have required a progressive
modification of the `UnixfsNode` structure as well, which wasn't possible as it
is still being used by the balanced builder (the same reason why most of the
`UnixfsNode`-related functions cannot yet be removed, leaving the `helpers.go`
file mostly untouched).

License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
2018-07-16 12:50:53 -03:00
Whyrusleeping
0349d9de43
Merge pull request #5239 from schomatis/fix/unixfs/directory/type-accessor
unixfs: fix `FSNode` accessor in `NewDirectoryFromNode`
2018-07-16 17:42:58 +02:00
Lucas Molas
26feaeb0cc unixfs: fix FSNode accessor in NewDirectoryFromNode
License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
2018-07-16 12:27:43 -03:00
Whyrusleeping
419bfdc20f
Merge pull request #4924 from ipfs/docs/config
Add information about bloom filter to config.md
2018-07-16 17:12:10 +02:00
Whyrusleeping
b126601d80
Merge pull request #5160 from schomatis/feat/unixfs/dir-interface
unixfs: add a directory interface
2018-07-16 16:53:36 +02:00
Whyrusleeping
8fa1c881f1
Merge pull request #5205 from spartucus/patch-1
Refactor code
2018-07-16 16:52:58 +02:00
Whyrusleeping
bda81cd2d4
Merge pull request #5045 from schomatis/fix/cmd/files-ls-file-long
cmd: fix `files ls` to report hash and size for files
2018-07-16 16:52:13 +02:00
Jeromy
7927196fe4 version bump to 0.4.17-dev
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2018-07-16 07:51:26 -07:00
Whyrusleeping
07feeec9c4
Merge pull request #5010 from ipfs/feat/diskusage2
Efficient "repo stat" (DiskUsage) and "--size-only" flag
2018-07-16 16:50:41 +02:00
Whyrusleeping
4f1391f477
Merge pull request #5139 from achingbrain/feat/specify-object-data-encoding
feat: Allow specifing how object data is encoded
2018-07-16 16:49:31 +02:00
Whyrusleeping
51607243c2
Merge pull request #5170 from schomatis/feat/mfs/root-val-as-dir
mfs: make `Root` value a `Directory`
2018-07-16 16:48:06 +02:00
Whyrusleeping
61d08eea4b
Merge pull request #5189 from schomatis/feat/pbdagreader/use-fsnode
pbdagreader: use FSNode instead of protobuf structure
2018-07-16 16:47:41 +02:00
Whyrusleeping
c9cda2c765
Merge pull request #5190 from schomatis/fix/dagreader/remove-offset
dagreader: remove `Offset()` method
2018-07-16 16:47:29 +02:00
Lucas Molas
dfb81abf80 commands: files ls: sort output
Imitate Unix `ls` command, sort by default; disable with `-U` flag.

License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
2018-07-16 09:58:55 -03:00
Whyrusleeping
95f721c4df
Merge pull request #4896 from ipfs/feat/ai-mirror
URL store
2018-07-13 17:08:59 +02:00
Kevin Atkinson
1f29699d90 Address c.r. and additional tweaks.
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2018-07-13 09:07:52 -04:00
Kevin Atkinson
8dd970b73a filestore: Return consistent err msg. when file/urlstore is not enabled.
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2018-07-13 09:07:52 -04:00
Kevin Atkinson
6a4b1262a5 Make sure you can't add URL's unless the url store is enabled.
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2018-07-13 09:07:52 -04:00
Kevin Atkinson
0c2efb90d3 More test fixes.
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2018-07-13 09:07:52 -04:00
Kevin Atkinson
ed2bb81b8d Code cleanups to make code climate happy.
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2018-07-13 09:07:52 -04:00
Kevin Atkinson
0e24444280 Add some documentation to ipfs urlstore add command.
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2018-07-13 09:07:52 -04:00
Kevin Atkinson
b3457f240c Enhance tests.
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2018-07-13 09:07:52 -04:00
Kevin Atkinson
e5189f4230 Return better error code when an http request failed.
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2018-07-13 09:07:51 -04:00
Kevin Atkinson
90972095a9 Add test cases for urlstore.
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2018-07-13 09:07:51 -04:00
Kevin Atkinson
b53a1b3022 Add config option to enable urlstore.
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2018-07-13 09:07:51 -04:00
Kevin Atkinson
696a0f039e Simplify code: use prefix instead of flag to determine if a url
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2018-07-13 09:07:51 -04:00
Kevin Atkinson
d59a6e99a6 Fix "ipfs urlstore add" output.
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2018-07-13 09:04:22 -04:00
Jakub Sztandera
1a835202b2 filestore: add URLStore
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2018-07-13 09:04:22 -04:00
Whyrusleeping
92ac43afef
Merge pull request #5179 from ipfs/release-0.4.16
Ipfs 0.4.16 release
2018-07-13 13:06:39 +02:00
Jeromy
7bcc9caa84 Ipfs 0.4.16 release
License: MIT
Signed-off-by: Whyrusleeping <why@ipfs.com>
2018-07-13 13:00:41 +02:00
Steven Allen
265295c789 add a note about the fixed js interop
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-07-13 13:00:23 +02:00
Rob Brackett
da061c2faf Tweak grammar and language in changelog
License: MIT
Signed-off-by: Rob Brackett <rob@robbrackett.com>
2018-07-13 13:00:23 +02:00
Steven Allen
6018de3fb5 add a note about the repo migration
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-07-13 13:00:23 +02:00
Steven Allen
8f51d011a3 paragraphs
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-07-13 13:00:23 +02:00
Lucas Molas
10201db139 mfs: remove sort from ListNames()
License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
2018-07-12 11:05:56 -03:00
Lucas Molas
4334ddeb35 commands/files: add error messages for cp paths
License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
2018-07-12 10:55:48 -03:00
Whyrusleeping
a9efa7e201
Merge pull request #5214 from ipfs/gx/release-0.4.16-rc3
publish the gx 0.4.16-rc3 release
2018-07-11 15:53:09 +02:00
Steven Allen
bf0750a3c1 publish the gx 0.4.16-rc3 release
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-07-11 13:37:44 +02:00
Whyrusleeping
7207b1c1c9
Merge pull request #5207 from ipfs/release-0.4.16-rc3
Ipfs v0.4.16-rc3
2018-07-09 08:53:27 -07:00
Jeromy
310b16528b Ipfs v0.4.16-rc3
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2018-07-09 08:46:20 -07:00
Lucas Molas
ec61606378 core/commands/ls: wrap NewDirectoryFromNode error
License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
2018-07-09 12:37:42 -03:00
Lucas Molas
c47cd13c0b unixfs: remove unused ShardSplitThreshold variable
License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
2018-07-09 12:02:47 -03:00
Lucas Molas
7d531c00ac unixfs: add a directory interface
Add a UnixFS `Directory` that hides implementation details and helps to
distinguish *what* is a UnixFS directory.

Replace the `unixfs.io.Directory` structure that contained the HAMT and basic
directory implementations (through inner pointers) with an interface containing
the same methods. Implement those methods in two clearly distinct structures for
each implementation (`BasicDirectory` and `HAMTDirectory`) avoiding pointer
logic and clearly differentiating which implementation does what.

The potential basic to HAMT transition was being hidden behind the `AddChild`
call at the UnixFS layer (changing one implementation pointer  with the other
one), it is now being explicitly done at the MFS layer.

Rename the `dirbuilder.go` file to `directory.go` and change the `Directory` MFS
attribute `dirbuilder` to `unixfsDir` to be consistent.

License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
2018-07-09 12:02:22 -03:00
Steven Allen
8a9aa41542
Merge pull request #5202 from ipfs/fix/dnslink-recursion-alt
correctly handle multi-hop dnslink resolution
2018-07-09 09:01:32 +00:00