Commit Graph

181 Commits

Author SHA1 Message Date
Juan Batiz-Benet
58f39687cf logs: removed all log.Errors unhelpful to users
Let's save log.Error for things the user can take action on.
Moved all our diagnostics to log.Debug. We can ideally reduce them
even further.
2015-02-03 01:06:07 -08:00
Brian Tiger Chow
195c2f3e28 log(bitswap) add message when message received 2015-02-01 22:08:49 -08:00
Brian Tiger Chow
800a3eb940 refactor(bitswap) move workers to bottom of file 2015-02-01 22:08:49 -08:00
Brian Tiger Chow
d9a8cfbd72 feat(bitswap) add deliverBlocks Event 2015-02-01 22:08:49 -08:00
Brian Tiger Chow
4ae02bc022 fix(bitswap) rename PeerToQuery to send wantlist
log(bitswap) remove ambiguous event
2015-02-01 22:08:49 -08:00
Brian Tiger Chow
d78b76ddb4 log(bitswap) add bitswap loggable 2015-02-01 22:08:49 -08:00
Brian Tiger Chow
c114b04ae1 feat(bitswap): synchronous close 2015-02-01 21:54:19 -08:00
Brian Tiger Chow
0ec0a6ab87 fix inflection 2015-01-30 06:57:41 -08:00
Brian Tiger Chow
6c2d799cb9 periodically print the number of keys in the wantlist (if any) 2015-01-30 06:57:41 -08:00
Brian Tiger Chow
351631a580 pass as param 2015-01-30 06:57:41 -08:00
Brian Tiger Chow
7e90fa95c9 log(bitswap): clean up 2015-01-30 06:57:41 -08:00
Brian Tiger Chow
faded10870 fix(bitswap): handling of network notification 2015-01-24 11:34:30 -08:00
Brian Tiger Chow
bbc54516bf revert bitswap network notification
@jbenet @whyrusleeping
2015-01-24 11:47:28 -08:00
Juan Batiz-Benet
1054487690 bitswap: respond to peers connecting + disconnecting
With these notifications, bitswap can reclaim all resources
for any outstanding work for a peer.

cc @briantigerchow @whyrusleeping
2015-01-24 09:13:44 -08:00
Brian Tiger Chow
6fedf259eb remove prefix logger 2015-01-24 00:30:56 -08:00
Brian Tiger Chow
bb89e0d8d7 misc(bitswap): shorten comment and rename var 2015-01-21 17:09:40 -08:00
Brian Tiger Chow
2f247f3355 rm logging statements and inline send 2015-01-21 17:09:40 -08:00
Brian Tiger Chow
129d413f0e chore(bitswap): rm todo 2015-01-21 17:09:40 -08:00
Brian Tiger Chow
3d3ac08fcf chore(bitswap): rm debug log (covered by eventlog) 2015-01-21 17:09:39 -08:00
Brian Tiger Chow
5985854099 fix: return pointer
@whyrusleeping
2015-01-19 03:08:05 -08:00
Brian Tiger Chow
60e288ed4b fix(bitswap.decision.Engine) enqueue only the freshest messages
Before, the engine worker would pop a task and block on send to the
bitswap worker even if the bitswap worker wasn't to receive. Since the
task could have been invalidated during this blocking send, a small
number of stale (already acquired) blocks would be send to partners.

Now, tasks are only popped off of the queue when bitswap is ready to
send them over the wire. This is accomplished by removing the
outboxChanBuffer and implementing a two-phase communication sequence.
2015-01-19 03:07:21 -08:00
Brian Tiger Chow
6a580e50d3 doc 2015-01-18 15:09:53 -08:00
Brian Tiger Chow
884143bf9c move generic packages to thirdparty (see thirdparty/README.md) 2015-01-18 14:04:45 -08:00
Jeromy
3c55902811 rewrite as single line defer logs 2015-01-15 04:45:34 +00:00
Jeromy
bae8b9f4c0 starting to move important events over to EventBegin/Done 2015-01-15 04:17:17 +00:00
Jeromy
a09854db97 early out if no entries in wantlist 2015-01-11 08:09:37 +00:00
Juan Batiz-Benet
aeb2e07198 bitswap: remove DialPeer from interface
Bitswap doesn't usually care about dialing. the underlying
network adapter can make sure of that.
2015-01-05 04:55:02 -08:00
Juan Batiz-Benet
9c6228d18f bitswap and dht: lots of debugging logs 2015-01-05 00:16:53 -08:00
Juan Batiz-Benet
d357b0ac00 bitswap debug logging 2015-01-05 00:16:53 -08:00
Juan Batiz-Benet
5639042df5 bitswap: send wantlist code reuse + debug logs 2015-01-05 00:16:52 -08:00
Juan Batiz-Benet
7629ad7ec7 bitswap: add self peer.ID 2015-01-05 00:16:52 -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
Brian Tiger Chow
c933d439b7 misc docs and fmting 2014-12-24 09:31:17 -05:00
Brian Tiger Chow
c34132e080 refactor(bitswap) change PeerInfo to ID in bitswap package
@jbenet @whyrusleeping

This commit replaces peer.PeerInfo with peer.ID in the bitswap package
2014-12-23 09:21:08 -08: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
Brian Tiger Chow
c6294646e9 fix(bitswap) always add addresses 2014-12-23 09:17:40 -08:00
Brian Tiger Chow
070b633df8 style(bitswap) rename to network 2014-12-23 09:16:00 -08:00
Brian Tiger Chow
4ab4da7e2b style(bitswap) rename 2014-12-23 09:10:44 -08:00
Brian Tiger Chow
fb75184c35 fix(bitswap) always use prvivate send method to send
cc @whyrusleeping
2014-12-23 09:09:34 -08:00
Brian Tiger Chow
d0d220f9de fix(bitswap) always dial 2014-12-23 09:08:11 -08:00
Brian Tiger Chow
55c8f8f505 Revert "bitswap: network interface changed"
This reverts commit bf88f1aec5.
2014-12-23 09:06:44 -08:00
Juan Batiz-Benet
d970f538e5 bitswap: network interface changed
Had to change the network interface from DialPeer(peer.ID) to
DialPeer(peer.PeerInfo), so that addresses of a provider are
handed to the network.

@maybebtc and I are discussing whether this should go all the
way down to the network, or whether the network _should always
work_ with just an ID (which means the network needs to be
able to resolve ID -> Addresses, using the routing system.
This latter point might mean that "routing" might need to
break down into subcomponents. It's a bit sketchy that
the Network would become smarter than just dial/listen and
I/O, but maybe there's a distinction between net.Network,
and something like a peernet.Network that has routing
built in...)
2014-12-23 09:05:15 -08:00
Brian Tiger Chow
3f9c1263ec fix: data race in test
https://build.protocol-dev.com/job/race/9352/console

@jbenet @whyrusleeping

pinging you guys to spread awareness about the delay.D type for
configurable delays

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-23 08:59:40 -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
Jeromy
9328fbaf81 clean peerset constructor names 2014-12-17 23:44:46 -08:00
Brian Tiger Chow
8100582e38 fix: batches of blocks have equal priority
addresses...

https://github.com/jbenet/go-ipfs/pull/438/files#r21878994

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-17 23:44:46 -08:00
Brian Tiger Chow
4bcfe094a1 extract constants
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-17 23:44:46 -08:00
Brian Tiger Chow
5bd0b95462 rename to strategy.LedgerManager to decision.Engine
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-17 23:44:44 -08:00
Brian Tiger Chow
bef622222d refactor: wantlist splits into WL and ThreadSafe WL
bitswap keeps the threadsafe version. observing the ledger shows that it
doesn't need it anymore (ledgermanager is protected and safe).

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-17 23:44:44 -08:00
Brian Tiger Chow
fedcebf67a refactor: re-use wantlist.Entry type wherever it makes sense
it seems to make sense since, in each place, the Key and Priority
represent the same information

b/c you know the saying...

"It is better to have 100 functions operate on one data structure than
10 functions on 10 data structures."

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-17 23:44:44 -08:00