Commit Graph

50 Commits

Author SHA1 Message Date
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
26e7656164 dht tests: dont introduce nil multiaddr
this is the type of assumption we shouldn't violate.
2014-12-08 20:52:45 -08:00
Brian Tiger Chow
80bc9251a6 style(peer) shorter ID when printing Peer
feel free to contest/revert if this becomes a problem

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-08 16:28:31 -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
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
Brian Tiger Chow
52631c697e fix(logging) interpret peer id strings correctly
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-27 17:29:52 -08:00
Jeromy
0de12b5d36 implement ipfs id in the new commands library 2014-11-16 16:46:06 -08:00
Brian Tiger Chow
4b1607819f 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
Brian Tiger Chow
a11c59dcac feat(peer) add Type (Unspecified, Local, Remote) 2014-11-16 07:00:58 -08:00
Brian Tiger Chow
2e0371c60a doc(peer) add TODO
TODO ensure correctness at ID generation and enforce this by only exposing functions that generate IDs safely. Then any peer.ID type found in the codebase is known to be correct.
2014-11-16 03:43:23 -08:00
Brian Tiger Chow
0aff6873dd fix(peer) perform bounds check on peer Id when printing String 2014-11-16 03:43:23 -08:00
Jeromy
4f083d54d6 write a few package doc strings to improve look of godoc 2014-11-08 21:42:36 -08:00
Brian Tiger Chow
550b98b7fd doc(peer) 2014-11-05 10:15:17 -08:00
Brian Tiger Chow
074722cf8a fix(peer) update latency 2014-11-05 10:15:17 -08:00
Juan Batiz-Benet
40aea2a934 handshake: log whether new addr observed 2014-11-05 04:05:30 -08:00
Jeromy
c3d04570c0 a few more comments 2014-11-03 03:53:16 +00:00
Juan Batiz-Benet
184c25430b 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
Juan Batiz-Benet
701035d5b0 handshake3 (addrs) 2014-10-22 05:25:31 -07:00
Juan Batiz-Benet
ac62d13e42 peerstore Put -> Add
Changed lots of peer use, and changed the peerstore to ensure
there is only ever one peer in use.

Fixed #174
2014-10-20 06:37:12 -07:00
Juan Batiz-Benet
9ca87fbb93 peer.Peer is now an interface
![](http://m.memegen.com/77n7dk.jpg)
2014-10-20 03:26:46 -07:00
Juan Batiz-Benet
b1d11ccfcb peerstore constructs peers
Now, all peers should be retrieved from the Peerstore, which will
construct the peers accordingly. This ensures there's only one peer
object per peer (opposite would be bad: things get out sync)

cc @whyrusleeping
2014-10-20 00:44:44 -07:00
Juan Batiz-Benet
08af98d412 logging friendliness 2014-10-18 04:36:20 -07:00
Juan Batiz-Benet
e989d6febe move IDFromPubKey to peer pkg 2014-10-18 04:28:26 -07:00
Jeromy
77cec59083 actually put diagCmd into the super command so it can be run 2014-10-10 13:18:19 -07:00
Juan Batiz-Benet
66839fa1de changed logging, in dht and elsewhere
- use log.* instead of u.*
- use automatic type conversions to .String()
  (Peer.String() prints nicely, and avoids calling b58 encoding
  until needed)
2014-10-07 21:33:59 -07:00
Juan Batiz-Benet
77fccaa2f3 Obviated need for .ID.Pretty() all over the place. 2014-10-06 04:23:55 -07:00
Juan Batiz-Benet
910a76e220 updated multiaddr use across codebase 2014-10-06 04:13:43 -07:00
Juan Batiz-Benet
569268c676 peer.DecodePrettyID 2014-09-22 04:06:12 -07:00
Juan Batiz-Benet
c4fa995faf Peer: change locking to whole Peer object. 2014-09-22 04:05:19 -07:00
Juan Batiz-Benet
5dea384510 peer: golint 2014-09-22 04:05:19 -07:00
Juan Batiz-Benet
71e411e538 Peer: only add addresses once. 2014-09-22 04:05:19 -07:00
Siraj Ravel
02deb3cccb last golint 2014-09-11 13:00:56 -07:00
Brian Tiger Chow
7968b45e58 vendor dependencies with godep
dependencies are vendored into Godeps/_workspace and commit versions are
recorded in Godeps.json

update datastore to e89f0511
update go.crypto
2014-09-09 22:39:42 -07:00
Jeromy
4b97f1f270 create new crypto package and make rest of repo use it 2014-09-03 20:15:10 +00:00
Jeromy
48865db1ea change handshake to use pub/priv keys for verification 2014-09-01 19:04:18 -07:00
Jeromy
f09dba772c more tests and add in table filtering by peer latency 2014-08-11 20:11:23 -07:00
Jeromy
67ddab1e4e tiered put/get implemented 2014-08-09 22:28:46 -07:00
Jeromy
ae6285e5a3 address issues from code review (issue #25) 2014-08-08 18:09:21 -07:00
Jeromy
c22b6aa316 fixing some race conditions 2014-08-07 06:21:57 -07:00
Jeromy
41c124a282 worked on gathering data for diagnostic messages and some other misc cleanup 2014-08-07 06:21:50 -07:00
Jeromy
71c7c5844a providers interface is coming along nicely 2014-08-07 06:21:12 -07:00
Jeromy
35a4086e06 rough kbucket implementation, tests and cleanup to follow 2014-08-07 06:21:12 -07:00
Jeromy Johnson
2ec1701494 ledger and a util function on peerID 2014-07-24 12:53:10 -07:00
Juan Batiz-Benet
3f97e7e385 goling: PeerId -> ID 2014-07-22 02:28:25 -07:00
Juan Batiz-Benet
f718bd6a92 go lint
link errors left:
- protocol buffers output is not lint-friendly
2014-07-22 02:20:08 -07:00
Juan Batiz-Benet
8d68a72685 peer.Key 2014-07-12 01:51:45 -07:00
Juan Batiz-Benet
5eed33620f added .Key 2014-07-05 15:02:03 -07:00
Juan Batiz-Benet
50b7c888d5 PeerId type. 2014-07-04 17:35:40 -07:00
Juan Batiz-Benet
a321d8867e added peer with multihash multiaddrs 2014-07-04 12:22:00 -07:00
Juan Batiz-Benet
3b570d3f82 skeleton. 2014-06-26 01:14:26 -07:00