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
76bea9be0a
move PQ to thirdparty
2015-01-18 15:09:54 -08:00
Brian Tiger Chow
61e4300d59
feat(PQ)
...
refactor: peerRequestQueue
it's a mistake to make one queue to fit all. Go's lack of algebraic
types turns a generalized queue into a monstrosity of type
checking/casting. Better to have individual queues for individual
purposes.
Conflicts:
exchange/bitswap/decision/bench_test.go
exchange/bitswap/decision/tasks/task_queue.go
fix(bitswap.decision.PRQ): if peers match, always return result of pri comparison
fix(bitswap.decision.Engine): push to the queue before notifying
TOCTOU bug
1. client notifies
2. worker checks (finds nil)
3. worker sleeps
3. client pushes (worker missed the update)
test(PQ): improve documentation and add test
test(bitswap.decision.Engine): handling received messages
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2015-01-18 15:09:54 -08:00
Brian Tiger Chow
0239379303
tests: add bench
...
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2015-01-18 15:09:54 -08:00
Brian Tiger Chow
cb1ef6e1e2
feat: add time to taskQueue
...
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
Conflicts:
exchange/bitswap/decision/taskqueue.go
2015-01-18 15:09:54 -08:00
Brian Tiger Chow
d61ce41516
fix(bitswap/engine): get priority from wantlist
2015-01-18 15:09:54 -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
Juan Batiz-Benet
2963f48f62
Merge pull request #554 from jbenet/feat/reprovide
...
basic reprovider implementation
2015-01-17 03:03:01 -08:00
Jeromy
acfc35212e
add backoff retry to reprovider
2015-01-17 04:31:50 +00:00
Juan Batiz-Benet
c057cea649
addr-explosion mitigated adding
...
mitigated adding our own addresses where received
from peers
see #573
2015-01-16 11:38:46 -08:00
Jeromy
a6ec12a17d
selected changes from CR
2015-01-16 06:17:18 +00: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
a7650b259d
add test for reprovider and slight refactor
2015-01-14 22:14:52 +00:00
Jeromy
3269986e42
basic reprovider implementation
...
make vendor
2015-01-13 22:12:37 -08:00
Jeromy
a09854db97
early out if no entries in wantlist
2015-01-11 08:09:37 +00:00
Juan Batiz-Benet
1ab9588cba
p2p/test: bogus key pair for faster tests
2015-01-05 05:48:15 -08:00
Juan Batiz-Benet
10072c149d
bitswap: log superfluous messages
2015-01-05 04:55:02 -08: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
Brian Tiger Chow
05d8c80c39
fix(bitswap/network): return when context is done
...
@jbenet @whyrusleeping
This bug (missing return) could tie up the client worker and cause
operations to come to a halt.
2015-01-05 00:16:53 -08:00
Juan Batiz-Benet
9c6228d18f
bitswap and dht: lots of debugging logs
2015-01-05 00:16:53 -08:00
Juan Batiz-Benet
71ada4696f
bitswap net: always close
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
c100390a49
bitswap engine: signal in own func
2015-01-05 00:16:52 -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
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
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
0172e4f2bb
style(testutil) rename testutil.Peer -> testutil.Identity
...
cc @jbenet
2014-12-24 09:59:24 -05:00
Brian Tiger Chow
237e594a8f
don't link when creating network client. rely on caller
2014-12-24 09:31:19 -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
6da57c6764
feat(bitswap/testnet) impl a version of bitswap testnet that uses mockpeernet under the hood
...
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-24 09:31:18 -05:00
Brian Tiger Chow
85ce94c510
refactor(bitswap/testnet) rename to virtual
...
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-24 09:31:18 -05:00
Brian Tiger Chow
d390e31c11
refactor(bitswap/testnet) extract interface in prep for mockpeernet version
...
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-24 09:31:18 -05:00
Brian Tiger Chow
6cdb4c23b4
pass peer into testnet adapter method
2014-12-24 09:31:18 -05:00
Brian Tiger Chow
e017d6edc6
refactor(bitswap/testnet) slim down interface
...
so it'll be easier to create another implementation using the new
mocknet
2014-12-24 09:31:17 -05:00
Brian Tiger Chow
b551e45ae9
use testutil peer in sess
2014-12-24 09:31:17 -05:00
Brian Tiger Chow
81a67338f1
fix(bitswap) remove peerstore
2014-12-24 09:31:17 -05:00
Brian Tiger Chow
c933d439b7
misc docs and fmting
2014-12-24 09:31:17 -05:00
Brian Tiger Chow
bd45adfb89
chore(bitswap) remove Peerstore() methods from bitswap.Network interface
2014-12-23 09:22:17 -08: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
60f3a874c2
feat(bitswap/network) expose peerstore
2014-12-23 09:14:54 -08:00
Brian Tiger Chow
a225568ff6
style(bitswap) public methods at top
2014-12-23 09:13:17 -08:00
Brian Tiger Chow
4ab4da7e2b
style(bitswap) rename
2014-12-23 09:10:44 -08:00