294 Commits

Author SHA1 Message Date
Brian Tiger Chow
9803fb8299 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
92c24c08ae dht: even more logging. 2015-01-05 04:55:02 -08:00
Juan Batiz-Benet
719cd7c51c swap net2 -> net 2015-01-02 08:46:46 -08:00
Juan Batiz-Benet
6bc26e01f3 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
2b086634b2 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
Jeromy
0408e60ef6 some better logging and cleanup 2015-01-02 07:42:08 +00:00
Jeromy
0547622e00 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
Juan Batiz-Benet
d562a9bdee dht/dht_test: bootstrap synchronously. fares better. 2014-12-24 03:46:45 -08:00
Juan Batiz-Benet
2ae32b8c43 dht: bootstrap query constants 2014-12-24 03:44:03 -08:00
Juan Batiz-Benet
b408265be0 dht bootstrap err check fix + logging 2014-12-24 02:10:52 -08:00
Juan Batiz-Benet
032ce68999 added bootstrap logging 2014-12-23 08:48:58 -08:00
Juan Batiz-Benet
a367a22bbe dht: bit nicer logging 2014-12-23 08:46:30 -08:00
Juan Batiz-Benet
3b37c43171 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
Jeromy
b1e5d058ec change Provide RPC to not wait for an ACK, improves performance of 'Add' operations 2014-12-17 23:44:41 -08:00
Juan Batiz-Benet
cc3c277479 Lots of fixes. DHT tests pass 2014-12-17 23:25:38 -08:00
Juan Batiz-Benet
fac6fe1e73 Integrated new network into ipfs 2014-12-16 14:47:29 -08:00
Jeromy
e10f49750a remove multilayered routing table from the DHT (for now) 2014-12-11 06:08:53 +00:00
Juan Batiz-Benet
3dd6ee1f86 dht: update to use net.LocalPeer 2014-12-08 20:52:45 -08:00
Juan Batiz-Benet
e1b5933641 dht/pb: changed PeersToPBPeers to set ConnectionType
Uses an inet.Dialer
2014-12-08 20:52:45 -08:00
Juan Batiz-Benet
fb367a8619 dht: changed msgs, include multiple addrs + conn type
See https://github.com/jbenet/go-ipfs/issues/153#issuecomment-63350535
2014-12-08 20:52:34 -08:00
Juan Batiz-Benet
1383f8edfc dht: linting 2014-12-08 19:28:05 -08:00
Brian Tiger Chow
2c1700b45d 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
6dc7dd5271 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
add43e52a4 fix(dht/routing) make GetProviders respect context
This commit makes GetProviders (sync) respect the request context. It
also amends all of GetProviders' callsites to pass a context in. This
meant changing the signature of the dht's handlerfunc.

I think I'll start referring to the request context as Vito Corleone.

cc @whyrusleeping @jbenet

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-05 20:56:27 -08:00
Brian Tiger Chow
40c2719146 fix(routing/dht) _always_ close chan on exit of FindProvidersAsync
the important change here is that within FindProvidersAsync, the channel
is closed using a `defer`. This ensures the channel is always closed,
regardless of the path taken to exit.

+ misc cleanup

cc @whyrusleeping @jbenet

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-05 20:56:27 -08:00
Brian Tiger Chow
914cdd8725 log(dht) Event: connect
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-25 06:16:40 -08:00
Brian Tiger Chow
b9d2b7628a log(dht) add eventlog.Update event
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-25 06:16:39 -08:00
Brian Tiger Chow
74a9c295a4 fix(misc) address PR comments
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-16 07:40:05 -08:00
Brian Tiger Chow
2f03a8e477 fix(imports) misc
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-16 07:01:00 -08:00
Brian Tiger Chow
91f8b1aad6 refactor(eventlog) elog -> eventlog
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

# TYPES
# feat
# fix
# docs
# style (formatting, missing semi colons, etc; no code change):
# refactor
# test (adding missing tests, refactoring tests; no production code change)
# chore (updating grunt tasks etc; no production code change)

Signed-off-by: Brian Tiger Chow <brian.holderchow@gmail.com>
2014-11-16 07:01:00 -08:00
Brian Tiger Chow
545bda9e11 log(dht) log a couple events to demonstrate API
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-16 07:00:58 -08:00
Jeromy
c5cf1ea156 address comments from PR 2014-11-16 02:45:20 -08:00
Jeromy
a5e5532788 verify ipns records 2014-11-16 02:45:19 -08:00
Jeromy
711144efeb fix routing resolver 2014-11-16 02:45:19 -08:00
Jeromy
79a8ea0d5c validator functions and ipns completion 2014-11-16 02:45:19 -08:00
Jeromy
cac56033a9 switch DHT entries over to be records, test currently fail 2014-11-16 02:45:19 -08:00
Jeromy
b1e34b5e90 write a few package doc strings to improve look of godoc 2014-11-08 21:42:36 -08:00
Brian Tiger Chow
077a34c247 fix(net) pass contexts to dial peer 2014-11-05 10:04:20 -08:00
Jeromy
01750dc710 comment comment comment comment 2014-11-03 03:02:56 +00:00
Jeromy
cb1443177a fix bug where terminal would randomly become garbled binary crap 2014-10-30 16:34:52 +00:00
Brian Tiger Chow
e3d7d2b50c refactor(routing) use routing.ErrNotFound 2014-10-28 02:17:46 -07:00
Juan Batiz-Benet
be52e35ed7 dht ctxcloserify 2014-10-25 21:33:59 -07:00
Jeromy
d2fba7bb62 logging, logging, and some minor logging 2014-10-25 14:50:22 -07:00
Jeromy
072e7d9555 add in dag removal 2014-10-25 12:39:36 -07:00
Brian Tiger Chow
1024504a6f refactor(dht/pb) move proto to pb package 2014-10-25 04:13:28 -07:00
Juan Batiz-Benet
2aeefaa102 go-vet friendly codebase
- distinguish log.Error and log.Errorf functions
- Initialize structs with field names
- A bit of unreachable code (defers)
2014-10-25 03:46:39 -07:00
Jeromy
d817b84a64 rewrite findpeer and other dht tweaks 2014-10-24 18:53:36 -07:00
Juan Batiz-Benet
5582e282d4 Dialer for dht
dht doesn't need the whole network interface, only needs a Dialer.
(much reduced surface of possible errors)
2014-10-22 03:24:05 -07:00
Juan Batiz-Benet
ae40568b44 this shouldn't connect quite yet. 2014-10-22 03:24:05 -07:00
Jeromy
9f4bdde9b8 working on debugging dht issues 2014-10-22 03:24:05 -07:00