Commit Graph

668 Commits

Author SHA1 Message Date
Brian Tiger Chow
1edc5c0a65 refactor(core) Close in teardown
This declarative style is simpler to compose than the imperative wiring
up of objects.

+ pass context to StartOnlineServices as parameter. one by one, trying
to remove dependencies on node state so these initialization steps can
be broken down.
2015-01-18 14:41:43 -08:00
Brian Tiger Chow
ffe6f9a949 doc(core_io/Add)
@jbenet wasn't sure about the terminology here. I'm certain what I wrote
is not entirely correct. Feel free to edit.
2015-01-18 14:41:42 -08:00
Brian Tiger Chow
3dd68ba5c5 fix(core_io/Add): by default, use pinner
@whyrusleeping @jbenet does passing this argument effectively instruct
the dagbuilder to pin recursively?
2015-01-18 14:41:42 -08:00
Brian Tiger Chow
4b5ff960c9 feat(core): use repo.Repo in core constructor 2015-01-18 14:41:42 -08:00
Brian Tiger Chow
884143bf9c move generic packages to thirdparty (see thirdparty/README.md) 2015-01-18 14:04:45 -08:00
Juan Batiz-Benet
132add2ffd core/mount: make non-darwin archs see fuseversion
See the note:

// this file is only here to prevent go src tools (like godep) from
// thinking fuseversion is not a required package by non-darwin archs.
2015-01-18 12:38:18 -08:00
Juan Batiz-Benet
2963f48f62 Merge pull request #554 from jbenet/feat/reprovide
basic reprovider implementation
2015-01-17 03:03:01 -08:00
Juan Batiz-Benet
00b099c71f core/cmds: fix go-fuse-version path 2015-01-17 02:45:17 -08:00
Jeromy
acfc35212e add backoff retry to reprovider 2015-01-17 04:31:50 +00:00
Jeromy
a7650b259d add test for reprovider and slight refactor 2015-01-14 22:14:52 +00:00
Juan Batiz-Benet
01283b92f7 Merge pull request #556 from jbenet/net-diag-viewer
diag/net: visualizing in d3 and dot
2015-01-14 10:32:56 -08:00
Brian Tiger Chow
40e41d24f7 feat(fsrepo): protect with a repo lockfile
NB: daemon is one spot the repo lock is typically acquired
2015-01-14 03:02:23 -08:00
Juan Batiz-Benet
b8757d18ef diag/net: visualizing in d3 and dot
Try it out:

```
ipfs net diag --vis=d3 | diagnostics/d3/d3view
```

Notes: this is not the best way to do it, because it
breaks `--encoding=json`. Not sure what the best way is, and
right now this provides more utility than the other.
2015-01-13 23:49:35 -08:00
Juan Batiz-Benet
920ddc7fc3 Merge pull request #553 from jbenet/serial-file
Serial File Opening
2015-01-13 23:30:08 -08:00
Matt Bell
86bb8ca7a7 core/commands: Enabled stdin for various command arguments 2015-01-13 22:51:11 -08:00
Matt Bell
70adc21d08 core/commands: Enable stdin arguments for 'add' and 'cat', resolves #542 2015-01-13 22:51:10 -08:00
Matt Bell
7a579bbf79 commands: Moved files code into 'commands/files' subpackage 2015-01-13 22:50:53 -08:00
Juan Batiz-Benet
f068c89147 reprovide: move core's reprovider into online services 2015-01-13 22:12:37 -08:00
Jeromy
3269986e42 basic reprovider implementation
make vendor
2015-01-13 22:12:37 -08:00
Brian Tiger Chow
3eafb3e5ab style(repo): repo.Interface -> repo.Repo
The pkg.Interface style is modeled after heap.Interface. Generally, I
find it helpful for interfaces that have many implementations. It
provides clear distinction between the generic interface and the |n|
implementations that implement it (which may be interface types
themselves).

For clients who cannot keep the repo name, one can imagine that the most
likely rename is `ipfsrepo`. In that case, `ipfsrepo.Interface` remains
meaningful.

This is low-pri so it doesn't matter than much. But for the record, the
repo.Interface feels appropriate in this use-case.
2015-01-13 03:09:33 -08:00
Brian Tiger Chow
86258face6 refactor(config, repo): use repo.Interface to (Get|Set)ConfigKey 2015-01-13 03:09:32 -08:00
Brian Tiger Chow
1b700864f9 refactor(repo): all config writes must go through repo 2015-01-13 03:09:31 -08:00
Brian Tiger Chow
405afd2a02 refactor(config, repo): all writes go through FSRepo. next: privatize these 2015-01-13 03:09:31 -08:00
Brian Tiger Chow
e28a235f77 it's unclear what this test case is meant to protect, but passing an empty datastore value no longer has bearing on node construction. Datastore setup now occurs in repo. 2015-01-13 03:09:31 -08:00
Brian Tiger Chow
6e730f4c73 bad datastore type won't cause failure 2015-01-13 03:09:31 -08:00
Brian Tiger Chow
20e1610075 nil will no longer be a valid argument 2015-01-13 03:09:31 -08:00
Brian Tiger Chow
5b3164de5c refactor(repo/config) move config under repo 2015-01-13 03:09:30 -08:00
Juan Batiz-Benet
7aa4a83f2e addr: proper filter + subtract 2015-01-12 20:49:06 -08:00
Juan Batiz-Benet
ceadfbe791 core: some logging for addresses 2015-01-12 19:15:02 -08:00
Juan Batiz-Benet
0cb0f27b68 bootstrap: print error when failed 2015-01-12 19:15:02 -08:00
Juan Batiz-Benet
7ec1a674e3 p2p/net/swarm: do not usre link local addrs 2015-01-12 19:15:02 -08:00
Jeromy
a768e841bc update printout for net diag 2015-01-12 02:55:15 -08:00
Juan Batiz-Benet
7867e01c90 ipfs ping wording 2015-01-11 20:52:34 -08:00
Juan Batiz-Benet
f7941e9841 ping: use context 2015-01-11 20:52:34 -08:00
Juan Batiz-Benet
374a75b612 refs: tie the contexts together 2015-01-11 20:52:33 -08:00
Juan Batiz-Benet
92e8a7bcd5 updated datastore for proper query handling
Queries now can be cancelled and the resources collected
2015-01-11 20:52:33 -08:00
Juan Batiz-Benet
708e47fcbc ipfs blocks local command
ipfs blocks local returns _all_ local refs. For now this is one
long op. future commits will make it async.
2015-01-11 16:59:22 -08:00
Brian Tiger Chow
63c0d41614 fix(core): perform sophisticated boostrap operation 2015-01-11 01:23:27 -08:00
Brian Tiger Chow
033e33dadf feat(core): expose IpfsNode.Resolve 2015-01-11 01:23:27 -08:00
Brian Tiger Chow
223ee4df1a refactor(core): move Add, Cat to core/io 2015-01-11 01:23:27 -08:00
Brian Tiger Chow
ddf14bee78 refactor(core): replace online bool with mode type 2015-01-11 01:23:27 -08:00
Brian Tiger Chow
130532c532 rm errTODO 2015-01-11 01:23:27 -08:00
Brian Tiger Chow
b0f7143250 refactor(core): distinguish repo.Repo components 2015-01-11 01:23:27 -08:00
Brian Tiger Chow
9d438843bd refactor(core): distinguish Online services 2015-01-11 01:23:27 -08:00
Brian Tiger Chow
ca8190a889 refactor(core): isolate complex DHT initialization 2015-01-11 01:23:27 -08:00
Brian Tiger Chow
eb6c40d5dd refactor(core): isolate the complex initialization of PeerHost construction 2015-01-11 01:23:27 -08:00
Brian Tiger Chow
8e42e86d87 hack(core): instantiate peerstore at the end if it hasn't already been instantiated
this is a dirty hack
2015-01-11 01:23:26 -08:00
Brian Tiger Chow
707874c3a5 refactor(core): init node.Blocks in shared NewIPFSNode constructor 2015-01-11 01:23:26 -08:00
Brian Tiger Chow
34e8f3ee26 refactor(core): init DAG and its dependents in shared constructor
fix: remove merkledag import

may need to squash this commit into the merkledag move commit
2015-01-11 01:23:26 -08:00
Brian Tiger Chow
7fa5d81093 refactor(core): rename 2015-01-11 01:23:26 -08:00
Brian Tiger Chow
efb75ee5ba refactor: move add and cat to the core 2015-01-11 01:23:25 -08:00
Brian Tiger Chow
2c3fb43350 feat: expose IpfsNode.Bootstrap() method 2015-01-11 01:23:25 -08:00
Brian Tiger Chow
4c2eda2123 refactor: remove deprecated function 2015-01-11 01:23:25 -08:00
Brian Tiger Chow
57b3ffa533 feat: new core constructor + config options (Standard, Online, Offline) 2015-01-11 01:23:25 -08:00
Juan Batiz-Benet
456719ede7 Merge pull request #523 from jbenet/feat/ping
Implement ipfs ping
2015-01-10 08:11:03 -08:00
Juan Batiz-Benet
1bd69b19ac core: make sure to call swarm.FilterAddrs
also move network setup into its own self-contained func
2015-01-10 08:07:19 -08:00
Juan Batiz-Benet
538550f8f8 fix osx mounting version checks 2015-01-10 01:07:43 -08:00
Jeromy
0f4f91c2f3 restore ability to ping by ID alone 2015-01-10 08:31:17 +00:00
Jeromy
1561291d61 improve UI of ping 2015-01-10 07:27:49 +00:00
Jeromy
9fc0f86a3a cleanup from PR 2015-01-10 07:27:49 +00:00
Jeromy
50c8561bdd add peer info after FindPeer RPC
fix ping test
2015-01-10 07:27:49 +00:00
Jeromy
566a86f5d4 Address PR comments and add in more user feedback 2015-01-10 07:27:48 +00:00
Jeromy
0794d5b46a a little cleanup 2015-01-10 07:27:48 +00:00
Brian Tiger Chow
069966d55a ping WIP
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

Conflicts:
	core/commands/root.go

begin ping command, WIP

finish initial ping implementation
2015-01-10 07:27:45 +00:00
Juan Batiz-Benet
d1bff333a5 refs: log writer error 2015-01-07 13:49:13 -08:00
Juan Batiz-Benet
180b9b32d3 refs: added --format option 2015-01-07 13:42:06 -08:00
Juan Batiz-Benet
f46120b194 refs edges + stream fix 2015-01-07 12:56:14 -08:00
Juan Batiz-Benet
8307572777 ipfs block stat bugfix: cast 2015-01-07 06:26:34 -08:00
Juan Batiz-Benet
6b2795338f ipfs object has learned stat
'ipfs object stat' is a plumbing command to print DAG
node statistics. <key> is a base58 encoded multihash.
It outputs to stdout:

  NumLinks        int number of links in link table
  BlockSize       int size of the raw, encoded data
  LinksSize       int size of the links segment
  DataSize        int size of the data segment
  CumulativeSize  int cumulative size of object and references
2015-01-07 02:31:29 -08:00
Juan Batiz-Benet
07b923d7a4 ipfs block stat cmd 2015-01-07 00:55:27 -08:00
Matt Bell
6236ef7fdb core/commands: Made add command output a channel
core/commands: Don't use pointers for Type field
2015-01-06 15:55:16 -08:00
Matt Bell
abd390b892 core/commands: Made add command show streamed output 2015-01-06 15:53:48 -08:00
Matt Bell
fd40702f73 commands: Changed Marshaler to return a io.Reader instead of a []byte
core/commands: Refactored command marshalers
2015-01-06 15:53:42 -08:00
Juan Batiz-Benet
0395a7af1e ipfs add output not sorted, cmds files sorted
I made the commands lib dir listing sort the contents
so we get the same sequence of files from it repeatably.
2015-01-06 14:02:49 -08:00
Christian Couder
d490a85706 Make sure ipfs add output is sorted by name
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-01-06 13:12:22 -08:00
Juan Batiz-Benet
64bf493b54 swarm peers print pid.Pretty 2015-01-06 10:13:49 -08:00
Juan Batiz-Benet
fbba7c8f39 bootstrap: only dht bootstrap with live conns 2015-01-06 10:10:20 -08:00
Juan Batiz-Benet
9e67acf51a bootstrap add --default option 2015-01-06 04:30:06 -08:00
Juan Batiz-Benet
517d3e99b8 bootstrap addrs: moved parsing around
this commit:
* moves parsing of bootstrap peers into config
* moves location of bootstrap addrs into core/commands
* refactor `*BootstrapPeer -> BootstrapPeer
2015-01-06 00:25:17 -08:00
Juan Batiz-Benet
6eb32aef35 bootstrap err: info 2015-01-05 09:00:58 -08:00
Juan Batiz-Benet
730793e2f7 cmds/bootstrap: rm --all 2015-01-05 07:59:53 -08:00
Juan Batiz-Benet
dfcea4c6f1 bootstrap: not error to not have enough bootstrap peers
use dht bootstrap. there is an edge case where the dht
is tiny (1?) and we have 0 bootstrap peers. we should
probably _inform_ the user, but this may be more a
webui or command thing.
2015-01-05 07:13:51 -08:00
Brian Tiger Chow
30eb8f213f adjust const
to test jenkins

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2015-01-05 06:25:56 -08:00
Brian Tiger Chow
9e4b9714ce feat(core) dht.Bootstrap
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2015-01-05 06:25:25 -08:00
Juan Batiz-Benet
b599e28b88 core/mock: use mock routing
this fixes a failing ipns test which didnt have
a "working" routing system
2015-01-05 00:16:53 -08:00
Juan Batiz-Benet
e21b1f662b fuse mount lifecycle fixes
This commit cleans up how mounting was being done.
It now successfully signals when it is properly mounted
and listen to close signals correctly.
2015-01-04 00:47:27 -08:00
Juan Batiz-Benet
1fa14335b9 core: rearranged initialization a bit 2015-01-04 00:47:27 -08:00
Juan Batiz-Benet
8fb5cf9578 swap net2 -> net 2015-01-02 08:46:46 -08:00
Juan Batiz-Benet
e2698a8733 net -> p2p/net
The net package is the next to move. It will be massaged
a bit still to fix the Network / "NetworkBackend" conflict.
2015-01-02 08:46:45 -08:00
Juan Batiz-Benet
cc0d7c9b57 crypto -> p2p/crypto
The crypto package moves into p2p. Nothing in it so far is ipfs
specific; everything is p2p-general.
2015-01-02 08:46:45 -08:00
Juan Batiz-Benet
89f5cd4c94 introducing p2p pkg
I think it's time to move a lot of the peer-to-peer networking
but-not-ipfs-specific things into its own package: p2p.
This could in the future be split off into its own library.
The first thing to go is the peer.
2015-01-02 08:46:45 -08:00
Juan Batiz-Benet
49cb135ca2 ipfsnet -> swarmnet
swarmnet is a better name for the package, because
it's just a Network implemented with a Swarm.
(ipfsnet will be something slightly different).
2015-01-02 08:46:44 -08:00
Juan Batiz-Benet
4807127def net: move Network implementation to own pkg
I needed the network implementation in its own
package, because I'll be writing several services that
will plug into _it_ that shouldn't be part of the core net
package. and then there were dependency conflicts. yay.
mux + identify are good examples of what i mean.
2015-01-02 08:46:43 -08:00
Jeromy
14fc4188be address comments from PR 2015-01-02 07:42:08 +00:00
Jeromy
07b064010e rewrite of provides to better select peers to send RPCs to
refactor test peer creation to be deterministic and reliable

a bit of cleanup trying to figure out TestGetFailure

add test to verify deterministic peer creation

switch put RPC over to use getClosestPeers

rm 0xDEADC0DE

fix queries not searching peer if its not actually closer
2015-01-02 07:42:07 +00:00
Brian Tiger Chow
07fa9eecbd hotfix(core/mock) set Network field 2014-12-25 15:20:54 -05:00
Brian Tiger Chow
ca32a83394 wip with DHT
@whyrusleeping @jbenet this is a WIP with the DHT.

wip

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

Conflicts:
	epictest/addcat_test.go
	exchange/bitswap/testnet/peernet.go
	exchange/bitswap/testutils.go
	routing/mock/centralized_server.go
	routing/mock/centralized_test.go
	routing/mock/interface.go

fix(routing/mock) fill in function definition
2014-12-24 09:31:19 -05:00
Brian Tiger Chow
27dc9594ba refactor(bitswap) bitswap.Network now abstracts ipfs.Network + ipfs.Routing
@jbenet @whyrusleeping

the next commit will change bitswap.Network.FindProviders to only deal
with IDs
2014-12-23 09:19:21 -08:00
Juan Batiz-Benet
64a4abcd6c listen addresses: add Interface addresses
network.ListenAddresses() are general.
Interface addresses are specific.
2014-12-23 09:01:54 -08:00
Juan Batiz-Benet
7952d95bbf added bootstrap logging 2014-12-23 08:48:58 -08:00
Juan Batiz-Benet
a10fb7aa4b core: set local listening addresses 2014-12-23 08:44:59 -08:00
Juan Batiz-Benet
c84a714b16 peer change: peer.Peer -> peer.ID
this is a major refactor of the entire codebase
it changes the monolithic peer.Peer into using
a peer.ID and a peer.Peerstore.

Other changes:
- removed handshake3.
-	testutil vastly simplified peer
-	secio bugfix + debugging logs
-	testutil: RandKeyPair
-	backpressure bugfix: w.o.w.
-	peer: added hex enc/dec
-	peer: added a PeerInfo struct
  PeerInfo is a small struct used to pass around a peer with
 	a set of addresses and keys. This is not meant to be a
 	complete view of the system, but rather to model updates to
 	the peerstore. It is used by things like the routing system.
-	updated peer/queue + peerset
-	latency metrics
-	testutil: use crand for PeerID gen
 	RandPeerID generates random "valid" peer IDs. it does not
 	NEED to generate keys because it is as if we lost the key
 	right away. fine to read some randomness and hash it. to
 	generate proper keys and an ID, use:
 	  sk, pk, _ := testutil.RandKeyPair()
 	  id, _ := peer.IDFromPublicKey(pk)
 	Also added RandPeerIDFatal helper
- removed old spipe
- updated seccat
- core: cleanup initIdentity
- removed old getFromPeerList
2014-12-23 08:33:32 -08:00
Juan Batiz-Benet
41751b4938 Integrated new network into ipfs 2014-12-16 14:47:29 -08:00
Juan Batiz-Benet
b039ebceb6 core: arrangement change in struct 2014-12-16 14:47:29 -08:00
Markus Amalthea Magnuson
dbefedbb2e Fix typo.
”configurationx” -> ”configuration”
2014-12-14 20:55:29 +01:00
Brian Tiger Chow
3ecdec985f refactor(mockrouting) misc
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-13 05:30:33 -08:00
Brian Tiger Chow
8e0c8a7a7e refactor(mdag, bserv, bs) mocks, etc.
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-13 05:17:16 -08:00
Brian Tiger Chow
c2c95d1105 start threading context through the system
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-09 07:11:48 -08:00
Juan Batiz-Benet
94f04c7fcc net: add Connectedness var. 2014-12-08 20:52:45 -08:00
Brian Tiger Chow
f8a449953b fix(core) bootstrap panic
@jbenet @mappum

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-08 18:04:41 -08:00
Brian Tiger Chow
db700839d4 rm logging statement that isn't that useful
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-08 16:29:33 -08:00
Brian Tiger Chow
df4b54524c refactor(bootstrap) reduce interface
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-08 16:29:29 -08:00
Brian Tiger Chow
7b5eff5cef feat(bootstrap) consider active cxns and connect to subset
* only bootstrap if the number of active connections falls below a given threshold
* when bootstrapping, connect to a subset of peers

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-08 16:29:25 -08:00
Brian Tiger Chow
175da4f584 feat(core) supervise bootstrap connections
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-08 16:29:20 -08:00
Brian Tiger Chow
b799ddef58 refactor(dht) remove extraneous return value
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-08 16:28:22 -08:00
Brian Tiger Chow
6c419e6af4 style(core) signature
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-08 15:07:33 -08:00
Brian Tiger Chow
74eb03231d fix(core, peer) helpers to testutil, err handling
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-08 14:32:52 -08:00
Brian Tiger Chow
d77c4bb5e0 refactor(peer): create peer through peerstore
for safety!

use mockpeer.WithID methods to create peers in tests

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-08 02:10:42 -08:00
Brian Tiger Chow
73a89e161d refactor(peerstore) s/Get/FindOrCreate
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-08 02:10:42 -08:00
Brian Tiger Chow
3f63e50c54 fix(peer): use error-checking multiaddr method
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-08 01:10:25 -08:00
Juan Batiz-Benet
59c1ab2fc3 Merge pull request #406 from jbenet/new-msgio
updated msgio
2014-12-06 16:20:51 -08:00
Juan Batiz-Benet
5c64ee90e0 cmds: remove info logging 2014-12-06 10:27:12 -05:00
Brian Tiger Chow
9895af2dff feat(core) using WriteCached, cache Puts for exchange and blockservice
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-05 23:31:01 -08:00
Brian Tiger Chow
670d0244b4 feat(bitswap) make offline exchange query datastore
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-05 23:31:01 -08:00
Brian Tiger Chow
697453dfc2 fix(cmd/bootstrap) s/remove/rm
@jbenet

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-05 20:56:28 -08:00
Matt Bell
c91805d7bd core/commands: Fixed build on Windows 2014-12-05 20:56:26 -08:00
Brian Tiger Chow
4882904c3e fix: s/bootstrap rm/boostrap remove
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-05 20:56:26 -08:00
Brian Tiger Chow
3bdb36614e fix(cmd/id) determine offline-ness with !node.OnlineMode()
It's better to have one mechanism for determining whether we're offline
and to improve the SnR of this mechanism over time. We presently have
too many arbitrary heuristics for determining whether we're running in
offline mode. TRTTD is to use polymorphism to eliminate these
conditional checks. (instantiate the node with offline versions of
routing, network, etc.) It'll clean up the core constructor, make it
easier to create ephemeral nodes, and eliminate a class of errors.

@whyrusleeping @jbenet

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-05 20:56:26 -08:00
Brian Tiger Chow
65c6bd07bf feat(core/commands): expose commands to allow for the development of high-level interface
+ style: sort command list

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-05 20:56:26 -08:00
Jeromy
f0a4fdad59 some bitswap cleanup 2014-12-05 20:53:32 +00:00
Jeromy
4cc1780705 fix issues in merkledag 2014-12-05 20:53:31 +00:00
Brian Tiger Chow
d0304def6b refactor(blockstore, blockservice) use Blockstore and offline.Exchange
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-05 20:53:24 +00:00
Brian Tiger Chow
918c8e274e refactor(blockstore) mv under blocks/
@jbenet @whyrusleeping

the pyramids were built one brick at a time

addresses: https://github.com/jbenet/go-ipfs/issues/370

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-05 20:53:23 +00:00
Brian Tiger Chow
81a3ba0677 tests(bitswap) share constructor between tests
@whyrusleeping i hope this makes it a bit easier to work with tests

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-05 20:53:22 +00:00
Juan Batiz-Benet
11508f8f19 Merge pull request #372 from chriscool/add_quiet_flag
Implement the -q or --quiet flag to add with minimal output
2014-12-05 15:45:49 -05:00
Jeromy
b0e915be47 cleanup useless debug statement 2014-12-01 17:08:35 +00:00
Jeromy
28a32915b7 fix for #381 2014-12-01 08:34:07 +00:00
Christian Couder
5bfdc2e2b7 Add --quiet option to ipfs add
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2014-11-30 14:23:08 +01:00
Brian Tiger Chow
f3b71cfbfd log(core) Event: bootstrap
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-25 06:16:40 -08:00
Brian Tiger Chow
2497c93897 log(core) bootstrapping error -> critical
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-25 06:12:35 -08:00
Juan Batiz-Benet
1a5cb300cb config: swarm is list of addrs 2014-11-20 09:14:48 -08:00
Matt Bell
ab16237bc7 core/commands: Added no-op Mount implementation for Windows 2014-11-19 05:29:48 -08:00
Matt Bell
5461d76957 core/commands: Better syntax for 'pin ls' option value handling 2014-11-19 03:23:21 -08:00
Matt Bell
928f20b4bd core/commands: pin ls: Default type to 'direct' 2014-11-19 01:44:51 -08:00
Matt Bell
9de01007d0 core/commands: pin ls: Accept 'type' option to specify type of pinned keys to list 2014-11-19 00:53:57 -08:00
Matt Bell
4c1a5f6816 core/commands: Restored 'pin'/'refs' option names 2014-11-19 00:36:30 -08:00
Matt Bell
87853f2bde core/commands: Made 'add' use OptionRecursivePath 2014-11-19 00:36:03 -08:00
Matt Bell
49dc13e5dd core/commands: Added plaintext marshaler for 'pin ls' 2014-11-18 23:20:38 -08:00
Matt Bell
db53de806c core/commands: Made 'refs' output u.Keys instead of strings 2014-11-18 23:20:20 -08:00
Matt Bell
477c246c6c core/commands: Fixed 'refs' option name collision 2014-11-18 23:09:53 -08:00
Matt Bell
edb8eeaecf core/commands: Created a general key list output type and plaintext marshaler 2014-11-18 23:08:56 -08:00
Matt Bell
961e4504f1 core/commands: Fixed pin flag name (conflicted with global -r/--recursive flag) 2014-11-18 23:03:41 -08:00
Matt Bell
afc7b6f48d core/commands: Added a 'pin ls' command 2014-11-18 23:02:33 -08:00
Juan Batiz-Benet
5aaa45db9a transitioned ipfs2 -> ipfs 2014-11-18 06:15:00 -08:00
Juan Batiz-Benet
ad3f3e003f removed old commands files
https://www.youtube.com/watch?v=kyFyAqLtHq8
2014-11-18 06:15:00 -08:00
Matt Bell
7a4491ada3 Added --mount flag to mount when running 'ipfs daemon' 2014-11-18 03:31:32 -08:00
Matt Bell
a0bd29d5be core/commands2: Fixed swarm command for new arguments API 2014-11-18 02:16:30 -08:00
Matt Bell
0709621a2c core/commands2: Updated id command for new argument API 2014-11-18 02:13:57 -08:00
Matt Bell
bde015616f core/commands2: add: Handle 'addDagnode' errors 2014-11-18 02:13:56 -08:00
Matt Bell
bfdf7951b3 core/commands2: Use path.Split for path parsing in 'add' 2014-11-18 02:13:56 -08:00
Matt Bell
d1f1d2f5bf core/commands2: Fixed commands to use string arguments 2014-11-18 02:13:55 -08:00
Matt Bell
032e9c292f core/commands2: Updated 'add' command for new file API 2014-11-18 02:13:54 -08:00
Matt Bell
fe6ac42c0e core/commands2: Updated 'add' command for request file API 2014-11-18 02:13:54 -08:00
Matt Bell
052d387ae5 core/commands2: Fixed 'block' command for req.Files() API 2014-11-18 02:13:53 -08:00
Juan Batiz-Benet
81135f3dc2 added ipfs swarm connect 2014-11-18 01:47:01 -08:00
Juan Batiz-Benet
4d78c2d7ff cmds: swarm peer 2014-11-18 00:48:03 -08:00
Juan Batiz-Benet
21d2838d4f cmds/id: fixed args + err checks 2014-11-17 23:46:46 -08:00
Juan Batiz-Benet
f47b4f1799 Merge pull request #255 from jbenet/id-cmd
basic ID cmd
2014-11-17 23:23:06 -08:00
Juan Batiz-Benet
6107612fd0 Merge pull request #355 from jbenet/feat/daemon-init
feat(daemon) `ipfs daemon --initialized`
2014-11-17 23:22:01 -08:00
Juan Batiz-Benet
d93e49e06e fix node context (tests pass) 2014-11-17 22:50:01 -08:00
Brian Tiger Chow
24f0fa0fde delegate teardown
this is silly but whatever

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-17 22:36:19 -08:00
Brian Tiger Chow
ef65bb1ce3 revert to debug error
@jbenet

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-17 22:36:18 -08:00
Brian Tiger Chow
2bbfe4d56f debug(core, datastore, daemon) wrap errors
@jbenet @whyrusleeping @mappum

very helpful for tracking down errors. the stack traces are only
shown when debug mode is visible. They function best when caught at the
source.

I propose we use this errors package as a drop-in replacement for
fmt.Errorf and errors.New in all of our code, and use errors.Wrap for
external errors as they emerge from others' libraries.

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

Signed-off-by: Brian Tiger Chow <brian.holderchow@gmail.com>
2014-11-17 22:36:18 -08:00
Brian Tiger Chow
bacf3ecc6a feat(util) add datastore Closer Wrapper
@jbenet

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-17 22:36:17 -08:00
Jeromy
7d2f3d810c fix tabbing 2014-11-17 11:57:57 -08:00
Jeromy
4588732af3 address comments from PR 2014-11-17 10:27:41 -08:00
Brian Tiger Chow
f26388e0e5 fix(core) tear-down leveldb
@jbenet @whyrusleeping @mappum

If we permit initialization in `ipfs daemon`, then we must ensure that
the node instantiated in `ipfs init` (to create the welcome file) shuts
down and releases resources.

Kept running into "resource temporarily unavailable". Discovered that it
was our cousins Jeff and Sanjay over at LevelDB Ave.

go-datastore doesn't expose Close() so I extended the TsDs interface and
submitted a patch.

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

Signed-off-by: Brian Tiger Chow <brian.holderchow@gmail.com>
2014-11-17 00:44:18 -08:00
Jeromy
9f4127aefa fix variable naming 2014-11-16 17:12:35 -08:00
Jeromy
0de12b5d36 implement ipfs id in the new commands library 2014-11-16 16:46:06 -08:00
Christian Couder
46d8acf60f Add missing 'mount' in mount synopsis
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2014-11-16 21:04:53 +01:00
Christian Couder
5098e39203 Suggest use of ipfs daemon in mount help message
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2014-11-16 18:14:27 +01:00
Brian Tiger Chow
a11c59dcac feat(peer) add Type (Unspecified, Local, Remote) 2014-11-16 07:00:58 -08:00
Brian Tiger Chow
ac84515441 style(core_test) move test variable 2014-11-16 07:00:28 -08:00
Brian Tiger Chow
05346dd927 misc(core/identity) more specific function argument
to aid in testing
2014-11-16 07:00:28 -08:00
Brian Tiger Chow
1ed0850ce2 style(core) peer -> self 2014-11-16 07:00:28 -08:00
Jeromy
f45d575a96 address comments from PR 2014-11-16 02:45:20 -08:00
Jeromy
f21ec1923a verify ipns records 2014-11-16 02:45:19 -08:00
Juan Batiz-Benet
93ad2bd057 mount: if already mounted, unmount before new attempt
This is because if the user specifies that they want
to mount multiple times, something must be wrong. try
unmounting to reset things and then proceed.
2014-11-16 02:22:53 -08:00
Juan Batiz-Benet
99f2378bac mount: fixed mount init + teardown
This commit adds a Mount abstraction (which is really just
a wrapped context closer). It makes sure to bind the mount
to the fate of the Node (i.e. close it if the node ends).
This fixes #350
2014-11-16 01:42:42 -08:00
Juan Batiz-Benet
a4488cab4c cmds: root help inc synopsis 2014-11-15 09:04:49 -08:00
Juan Batiz-Benet
7d448d9dab cmds mount synopsis 2014-11-15 09:04:49 -08:00
Juan Batiz-Benet
1871d37f12 Merge pull request #333 from zignig/mount_fix
windows mount  fix
2014-11-15 06:51:55 -08:00
Juan Batiz-Benet
8a284c9848 cmds: fix block output. 2014-11-15 06:43:02 -08:00
Brian Tiger Chow
0b42d77e13 refactor(core, bitswap) split bitswap init into two steps
@jbenet
2014-11-15 02:10:53 -08:00
Simon Kirkby
43fb5d5d72 windows fix 2014-11-14 21:03:30 +08:00
Brian Tiger Chow
a0dab3a29a docs(2/pin)
ipfs1 docs read:

```
btc λ. ipfs pin
ipfs pin -

Commands:

        add         pin an ipfs object to local storage.
        rm          unpin an ipfs object from local storage.

        Use "pin help <command>" for more information about a command.
```

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:24:43 -08:00
Juan Batiz-Benet
f30161b063 cmds: nicer error on no mountpoint 2014-11-14 03:20:46 -08:00
Matt Bell
e4b630289a block put: Support stdin input on 'block put' 2014-11-14 03:20:11 -08:00
Juan Batiz-Benet
97d2f48b7c cmds2: change add arg name 2014-11-14 03:20:11 -08:00
Matt Bell
d05661548c object links: Fixed description 2014-11-14 03:20:11 -08:00