- 20 Jun, 2015 4 commits
-
-
W. Trevor King authored
Discussion with Juan on IRC ([1] through [2]) lead to this adjusted JSON output. Benefits over the old output include: * deduplication (we only check the children of a given Merkle node once, even if multiple arguments resolve to that hash) * alphabetized output (like POSIX's ls). As a side-effect of this change, I'm also matching GNU Coreutils' ls output (maybe in POSIX?) by printing an alphabetized list of non-directories (one per line) first, with alphabetized directory lists afterwards. [1]: https://botbot.me/freenode/ipfs/2015-06-12/?msg=41725570&page=5 [2]: https://botbot.me/freenode/ipfs/2015-06-12/?msg=41726547&page=5 License: MIT Signed-off-by: W. Trevor King <wking@tremily.us>
-
W. Trevor King authored
Discussing this on IRC ([1] through [2]), Jeromy and I decided that we'd really like a way to configure per-command [3] and per-action timeouts, but until we have that we want to leave the minute limit here. We also decided that the use of TODO here instead of the per-command req.Context().Context was a bug, which I'm fixing with this commit. [1]: https://botbot.me/freenode/ipfs/2015-06-12/?msg=41714126&page=4 [2]: https://botbot.me/freenode/ipfs/2015-06-12/?msg=41715618&page=4 [3]: https://github.com/ipfs/go-ipfs/issues/1325 License: MIT Signed-off-by: W. Trevor King <wking@tremily.us>
-
W. Trevor King authored
This doesn't affect the text output, which was already using a stringified name. The earlier stringification does change the JSON output from an enumeration integer (e.g. 2) to the string form (e.g. "File"). If/when we transition to Merkle-object types named by their hash, we will probably want to revisit this and pass both the type hash and human-readable-but-collision-prone name on to clients. License: MIT Signed-off-by: W. Trevor King <wking@tremily.us>
-
W. Trevor King authored
Change the approach to the directory-header control so we can set the Argument value in the JSON response. Stripping the trailing newline from the JSON output is annoying, but looking over [1] I saw no easy way to add a newline to the JSON output. And with the general framework that commands/ attempts to be, it feels a bit funny to customize the JSON output for a command-line program. Perhaps a workable solution is to have the command-line client append newlines to any output that otherwise lacks them? But that seems like a change best left to a separate series. [1]: http://golang.org/pkg/encoding/json/ License: MIT Signed-off-by: W. Trevor King <wking@tremily.us>
-
- 13 Jun, 2015 3 commits
-
-
W. Trevor King authored
To be less confusing to newcomers (the IPFS filesystem isn't Unix-specific anyway, and it isn't even very POSIX-specific [1,2,3]). I'm a bit uncertain about having one name for users and another for devs, but the consensus seems to be that mainaining two names is worth the trouble [4]. We also kicked around: * 'files' (plural), * 'filesystem' (too long), and * 'fs' (redundant after 'ipfs', even though IPFS isn't just about filesystems) on IRC [5 through 6]. I wish there was a more evocative term. I'm never sure where "file" lands on the scale between "filesysytem", "everything is a file", "a single chunk of data with an associated inode". But we can't think of anything better. [1]: https://github.com/ipfs/go-ipfs/pull/1348#issuecomment-110529070 [2]: https://github.com/ipfs/go-ipfs/pull/1348#issuecomment-110529921 [3]: https://github.com/ipfs/go-ipfs/pull/1136/files#r29377283 In my response to this (no longer visibile on GitHub): On Wed, Apr 29, 2015 at 01:30:04PM -0700, Juan Batiz-Benet wrote: > > +package fsnode > > i think this package should be called `unixfs` as that's the > abstraction that this is calling to. Will do, although I don't see what's especially Unix-y about these file nodes. [4]: https://github.com/ipfs/go-ipfs/pull/1348#issuecomment-110529811 [5]: https://botbot.me/freenode/ipfs/2015-06-09/?msg=41428456&page=5 [6]: https://botbot.me/freenode/ipfs/2015-06-09/?msg=41430703&page=5 License: MIT Signed-off-by: W. Trevor King <wking@tremily.us>
-
W. Trevor King authored
Folks operating at the Unix-filesystem level shouldn't care about that level of Merkle-DAG detail. Before this commit we had: $ ipfs unixfs ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox: ... several lines of empty-string names ... And with this commit we have: $ ipfs unixfs ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox I also reworked the argument-prefixing (object.Argument) in the output marshaller to avoid redundancies like: $ ipfs unixfs ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox: /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox As a side-effect of this rework, we no longer have the trailing blank line that we used to have after the final directory listing. The new ErrImplementation is like Python's NotImplementedError, and is mostly a way to guard against external changes that would need associated updates in this code. For example, once we see something that's neither a file nor a directory, we'll have to update the switch statement to handle those objects. License: MIT Signed-off-by: W. Trevor King <wking@tremily.us>
-
W. Trevor King authored
This is similar to 'ipfs ls ...', but it: * Lists file sizes that match the content size: $ ipfs --encoding=json unixfs ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4 { "Objects": [ { "Argument": "/ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4", "Links": [ { "Name": "busybox", "Hash": "QmPbjmmci73roXf9VijpyQGgRJZthiQfnEetaMRGoGYV5a", "Size": 1947624, "Type": 2 } ] } ] } $ ipfs cat /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox | wc -c 1947624 'ipfs ls ...', on the other hand, is using the Merkle-descendant size, which also includes fanout links and the typing information unixfs objects store in their Data: $ ipfs --encoding=json ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4 { "Objects": [ { "Hash": "/ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4", "Links": [ { "Name": "busybox", "Hash": "QmPbjmmci73roXf9VijpyQGgRJZthiQfnEetaMRGoGYV5a", "Size": 1948128, "Type": 2 } ] } ] } * Has a simpler text output corresponding to POSIX ls [1]: $ ipfs unixfs ls /ipfs/QmV2FrBtvue5ve7vxbAzKz3mTdWq8wfMNPwYd8d9KHksCF/gentoo/stage3/amd64/2015-04-02 bin dev etc proc run sys $ ipfs ls /ipfs/QmV2FrBtvue5ve7vxbAzKz3mTdWq8wfMNPwYd8d9KHksCF/gentoo/stage3/amd64/2015-04-02 QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4 1948183 bin/ QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn 4 dev/ QmUz1Z5jnQEjwr78fiMk5babwjJBDmhN5sx5HvPiTGGGjM 1207 etc/ QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn 4 proc/ QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn 4 run/ QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn 4 sys/ The minimal output allows us to start off with POSIX compliance and then add options (which may or may not be POSIX compatible) to adjust the output format as we get a better feel for what we need ([2] through [3]). [1]: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ls.html [2]: https://botbot.me/freenode/ipfs/2015-06-12/?msg=41724727&page=5 [3]: https://botbot.me/freenode/ipfs/2015-06-12/?msg=41725146&page=5 License: MIT Signed-off-by: W. Trevor King <wking@tremily.us>
-
- 12 Jun, 2015 4 commits
-
-
Juan Batiz-Benet authored
select with context when sending on channels
-
Jeromy authored
License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>
-
Juan Batiz-Benet authored
prevent wantmanager from leaking goroutines (and memory)
-
Jeromy authored
License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>
-
- 11 Jun, 2015 2 commits
-
-
Jeromy authored
License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>
-
Jeromy authored
License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>
-
- 08 Jun, 2015 8 commits
-
-
Juan Batiz-Benet authored
'key' objects dont marshal to json well
-
Jeromy authored
-
Jeromy authored
-
Juan Batiz-Benet authored
httpGw: make /tcp/0 work
-
Henry authored
-
Henry authored
also splits api, gw and fuse bring up into helper functions
-
Juan Batiz-Benet authored
Better symmetric NAT avoidance.
-
Juan Batiz-Benet authored
Different mutliaddrs is not enough. Nodes may share transports. NAT port mappings will likely only work on the base IP/TCP port pair. We go one step further, and require different root (IP) addrs. Just in case some NATs group by IP. In practice, this is what we want: use addresses only if hosts that are on different parts of the network have seen this address.
-
- 07 Jun, 2015 5 commits
-
-
Juan Batiz-Benet authored
If the same peer observed the same address twice, it would be double counted as different observations. This change adds a map to make sure we're counting each observer once. This is easily extended to require more than two observations, but i have not yet encountered NATs for whom this is relevant.
-
Juan Batiz-Benet authored
Use github.com/chriscool/go-sleep
-
Christian Couder authored
License: MIT Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
-
Christian Couder authored
License: MIT Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
-
Juan Batiz-Benet authored
fix typo
-
- 06 Jun, 2015 3 commits
-
-
Juan Batiz-Benet authored
Godeps: update cheggaaa/pb to the latest version
-
Christian Couder authored
License: MIT Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
-
Harlan T Wood authored
-
- 05 Jun, 2015 1 commit
-
-
Christian Couder authored
License: MIT Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
-
- 03 Jun, 2015 10 commits
-
-
Juan Batiz-Benet authored
make the default repo for corebuilder work
-
Jeromy authored
-
Juan Batiz-Benet authored
implement patch command
-
Jeromy authored
WIP: object creator command better docs move patch command into object namespace dont ignore cancel funcs addressing comment from CR add two new subcommands to object patch and clean up main Run func cancel contexts in early returns switch to util.Key
-
Juan Batiz-Benet authored
Swap all 'crypto/rand' rng in tests with 'math/rand'
-
Juan Batiz-Benet authored
ipfs-test-lib: implement test_seq()
-
Juan Batiz-Benet authored
fix up some dependencies to avoid circular record deps
-
Christian Couder authored
License: MIT Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
-
Christian Couder authored
License: MIT Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
-
Jeromy authored
-