Commit Graph

130 Commits

Author SHA1 Message Date
Steven Allen
3e13277dd4 gx: update deps
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-08-07 10:02:59 -07:00
Jeromy
042a9729a2 Update bitswap deps
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2018-08-05 13:22:51 -07:00
Jeromy
b96a7a0579 extract go-unixfs (importers and unixfs)
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2018-07-30 14:54:26 -07:00
Jeromy
ede2caba46 Extract path and resolver
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2018-07-28 23:57:42 -07:00
Jeromy
28fdee7fce Extract dagservice, move dagutils to top level
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2018-07-28 14:22:20 -07:00
Jeromy
0a3a3c9ba7 Extract blockservice and verifcid
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2018-07-27 18:21:06 -07:00
Steven Allen
53235242a1 gx update deps
Updates:

* go-net
* go-text
* dns
* prometheus
* protobuf (golang, not gogo)

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-07-23 11:49:43 -07:00
Whyrusleeping
ec61e06c68
Merge pull request #5262 from schomatis/fix/mfs/test/seek-before-read
mfs: seek to 0 before reading in `TestTruncateAndWrite`
2018-07-22 18:36:59 -07:00
Lucas Molas
acf12b6eaf mfs: seek to 0 before reading in TestTruncateAndWrite
License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
2018-07-19 20:52:19 -03:00
Whyrusleeping
1dede1b1d7
Merge pull request #5219 from schomatis/fix/mfs/remove-sort
mfs: remove `sort` from `ListNames()`
2018-07-19 14:29:11 -05:00
Lucas Molas
508af1e12c mfs: add test case for MFS repeated truncation failure
License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
2018-07-18 13:14:32 -03:00
Steven Allen
e6545a24b2 fix truncating when already at the correct size
fixes #4518

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-07-18 11:25:16 -03:00
Steven Allen
9a9979b193 update go-cid
alternative to #5243 that updates go-cid and all packages that depend on it

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-07-16 15:16:49 -07: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
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
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
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
Lucas Molas
18361d3849 unixfs: remove Get prefix from FSNode accessors
See https://golang.org/doc/effective_go.html#Getters.

License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
2018-07-06 13:29:47 -03:00
Lucas Molas
f5e7fe28dd mfs: remove DAGService from Root
The `Root` structure now explicitly contains a `Directory` (instead of an
`FSNode` interface), use that `Directory`'s `DAGService` instead of its own
`dserv` variable (which was used only once in `closeChild()`). The `DAGService`
in the `Root` and the `Directory` was the same (passed as an argument in the
`NewRoot` initializer function).

This leaves the `Root` structure with only a `Directory` and a `Republisher` and
allows to better rethink its role and whether if those two structures should be
grouped together (and if that group's name should be `Root`).

License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
2018-06-29 12:08:59 -03:00
Lucas Molas
ba7338543f mfs: remove unused Root variables node and Type
License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
2018-06-29 12:06:06 -03:00
Lucas Molas
08922d239d mfs: make Root value a Directory
Make `Root` value explicitly a `Directory` structure instead of the `FSNode`
interface (which also allowed the `File` type). This helps to make the code
easier to reason about: the root of an MFS layout is always a directory, not a
(single) file.

Rename `GetValue()` to `GetDirectory()` to also make it more explicit, the
renamed function now returns a `Directory` so there is no need for type
assertions that were previously done on the `FSNode` interface to check that it
was actually a `Directory`.

`NewRoot()` now doesn't allow to create `Root` structures from DAG nodes that
contain UnixFS files.

License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
2018-06-29 11:30:53 -03:00
Steven Allen
3eba14aa24 gx update
Updates:

* go-kad-dht: Query performance improvements, DHT client fixes, validates
  records on *local* put.
* go-libp2p-swarm/go-libp2p-transport: Timeout improvements.
* go-multiaddr-net: Exposes useful Conn methods (CloseWrite, CloseRead, etc.)
* go-log: fixes possible panic when enabling/disabling events.
* go-multiaddr: fixes possible panic when stringifying malformed multiaddrs,
  adds support for consuming /p2p/ multiaddrs.

fixes #5113
unblocks #4895

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-06-26 17:11:33 -07:00
Whyrusleeping
9f9ddd561c
Merge pull request #5098 from schomatis/feat/unixfs/fsnode-include-pb
unixfs: integrate `pb.Data` into `FSNode` to avoid duplicating fields
2018-06-13 15:24:24 +08:00
Lucas Molas
934b8b0ddc unixfs: integrate pb.Data into FSNode
To avoid duplicating fields and making the code easier to follow.

Remove all of `FSNode` previous fields in favor on a single `pb.Data` structure
that is not exported. Accessor methods are added only for the necessary internal
fields. This takes up more memory, `pb.Data` is always created inside `FSNode`
and it stays there instead of just being created and destroyed during the
(un)marshal operations.

The removed fields `Data`, `blocksizes` and `Type` had a direct counterpart in
the embedded `pb.Data` structure, in contrast (only) the `subtotal` field
doesn't have one, it was used as a temporary accumulator to track the
`Filesize`, which is now being kept updated on every modification (to ensure the
entire `FSNode` is always at a valid state), so `subtotal` could just be removed
without the addition of any other field (this temporary accumulator  was
obscuring how `Filesize` was computed).

To keep `Filesize` up to date a method was added (`UpdateFilesize()`) to adjust
its value in the two places where the file size could be modified, when changing
its data (in `SetData()`, accessor method added) and when adding or removing
child nodes (in `AddBlockSize()` and `RemoveBlockSize()`).

A constructor method was added (`NewFSNode()`) to initialize the required
fields, like `Type` which is explicitly set, this deprecates the previous
methodology of just calling `new(FSNode)` and relying in the default value of
`pb.Data_DataType` (`Data_Raw`) to avoid an explicit assignment. Also,
`Filesize` is initialized to avoid being left with a `nil` value before
marshaling empty nodes, which would result in a different hash from previous
versions, to be backwards compatible. Previous versions of `GetBytes()` always
set the `Filesize` value, even though it is reflected as an `optional` field in
the `.proto` file (this may be an inaccurate field rule).

Without the duplicated fields the functions `GetBytes()` and `FSNodeFromBytes()`
are now reduced to simple `Marshal()` and `Unmarshal()` operations respectively.

License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
2018-06-11 09:31:33 -03: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
Steven Allen
1e9e2f453c update deps
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-05-31 17:59:17 -07:00
Hector Sanjuan
df59b29fdc Extract exchange/offline to go-ipfs-exchange offline
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2018-04-19 12:07:36 +02:00
Łukasz Magiera
2ee5cfb90f fix error style
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-03-30 09:43:27 +02:00
Hector Sanjuan
3ee1d76d88 Update to latest go-datastore
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2018-03-26 22:12:14 +02:00
Jakub Sztandera
48f706b0f3 fix(mfs): Directory.Path not working, add test
Credit goes to @ridewindx

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2018-03-20 13:55:52 +01:00
Hector Sanjuan
758e00bc4c Extract blocks/blockstore package to go-ipfs-blockstore
This extracts the blocks/blockstore package and renames the
blocks/blockstore/util package to /blocks/blockstoreutil
(because util depends on Pin and I don't plan to extract
Pin and its depedencies).

The history of blocks/blockstore has been preserved. It has
been gx'ed and imported. Imports have been rewritten accordingly
and re-ordered.

License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2018-02-15 18:03:41 +01:00
Hector Sanjuan
381977476f Extract: chunker: rename "chunk" to "chunker" as it is more consistent
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2018-02-08 12:49:39 +01:00
Hector Sanjuan
76d228cf75 Extract chunker: Use last gx'ed go-ipfs-chunker
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2018-02-08 12:43:29 +01:00
Hector Sanjuan
1811425aab go-ipfs-chunker: Use the stable gx'ed release
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2018-02-08 12:34:51 +01:00
Hector Sanjuan
c613fbec38 WIP: Extract: importers/chunk module as go-ipfs-chunker
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2018-02-08 12:34:15 +01:00
Steven Allen
b2cbfd299c gx: update go-log
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-01-31 21:54:22 -08:00
Steven Allen
f9d935b984 rename import of go-ipld-format from node/format to ipld
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-01-29 11:55:34 -08:00
Steven Allen
699b2c4bb8 make code-climate happier
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-01-25 15:43:03 -08:00
Steven Allen
d154b4a990 merkledag: switch to new dag interface
Also:

* Update the blockstore/blockservice methods to match.
* Construct a new temporary offline dag instead of having a
  GetOfflineLinkService method.

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-01-25 15:13:19 -08: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
d3f5ee2240 docs for mfs system method impls
License: MIT
Signed-off-by: ForrestWeston <forrest@protocol.ai>
2018-01-22 16:25:00 -08:00
Jeromy
3e6eabba54 Fix memory clearing in adder
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2017-12-31 13:43:10 -08: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
Łukasz Magiera
6401a9191e gx: Update go-datastore to 1.4.0
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2017-12-02 14:55:26 -08:00
Steven Allen
76e1da02a8 gx: massive update
Note: This commit is technically broken. However, I need to make a bunch of
cmds changes to make this work and I'd rather not bundle both changes into a
single commit.

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-11-20 22:20:27 -08:00
Jan Winkelmann
f287524949 cmd: use go-ipfs-cmds
License: MIT
Signed-off-by: keks <keks@cryptoscope.co>
2017-11-17 15:22:41 +01:00
Kevin Atkinson
d29930c031 Eliminate Prefix field from MFS root, use MkdirOpts.
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2017-10-19 14:14:49 -04:00
Kevin Atkinson
f2fbfdf291 mfs: inherit CID prefix from from parent directory
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2017-10-19 14:14:49 -04:00
Kevin Atkinson
a3bd2c23b3 Add "--raw-leaves" option to "ipfs files"
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2017-10-19 13:00:24 -04:00
Jeromy
94ec788555 update deps for new connmgr code
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2017-10-14 05:38:52 -07:00