Commit Graph

2937 Commits

Author SHA1 Message Date
Brian Tiger Chow
fadede41fc deduplicate blocks in queue 2015-01-21 15:17:10 -08:00
Brian Tiger Chow
bf53888152 log err 2015-01-20 23:44:09 -08:00
Brian Tiger Chow
a6a6452692 fix(blockservice/worker) replace time.Tick with a timer we can stop 2015-01-20 23:43:21 -08:00
Brian Tiger Chow
e3c9f6db50 extract context func
@jbenet

would like it to work this way
2015-01-20 23:43:21 -08:00
Brian Tiger Chow
326e6f2a42 use rate-limiter
@jbenet
2015-01-20 23:43:21 -08:00
Brian Tiger Chow
ed019e2f7d one worker 2015-01-20 23:43:21 -08:00
Brian Tiger Chow
721ff57263 fix(blockservice) fully async exchange.HasBlock 2015-01-20 23:43:21 -08:00
Brian Tiger Chow
2149f8f446 cleanup 2015-01-20 23:43:21 -08:00
Brian Tiger Chow
494ed8fb0d demote dht logs 2015-01-20 23:43:21 -08:00
Brian Tiger Chow
ac64c2c9e7 extra args to benchmark Makefile 2015-01-20 23:43:20 -08:00
Juan Batiz-Benet
99872f61c0 Merge pull request #610 from jbenet/reuseport-fix
p2p/net/conn: only reuseport if avail
2015-01-20 20:04:55 -08:00
Juan Batiz-Benet
223a97f3f8 p2p/net/conn: only reuseport if avail 2015-01-20 19:46:44 -08:00
Juan Batiz-Benet
ee4c727c83 update reuseport for the check 2015-01-20 19:34:49 -08:00
Brian Tiger Chow
94ef48ef91 Merge pull request #605 from jbenet/bench/offline-add
benchmark CLI `ipfs add`
2015-01-20 17:01:34 -08:00
Brian Tiger Chow
a58515ffb2 add benchmark for ipfs add CLI 2015-01-20 17:01:09 -08:00
Brian Tiger Chow
6b8d3e3c69 use extracted unit package 2015-01-20 17:01:09 -08:00
Brian Tiger Chow
de2cb5d8c7 refactor: extract thirdparty/unit 2015-01-20 17:01:09 -08:00
Juan Batiz-Benet
121061b645 Merge pull request #607 from jbenet/races
races: fix race conditions
2015-01-20 14:58:50 -08:00
Juan Batiz-Benet
908ff837fd updated peerstream (race) 2015-01-20 11:26:55 -08:00
Juan Batiz-Benet
239e82390f p2p/test/reconnect: fixed race condition 2015-01-20 10:57:45 -08:00
Juan Batiz-Benet
0b9bef1ea9 blockstore: fixed data race 2015-01-20 09:28:14 -08:00
Brian Tiger Chow
5c4be75146 fix: init datastore in datastore/ subdirectory
@whyrusleeping @jbenet newly initialized datastores were being dumped
into ./go-ipfs. Eeek. An oversight during the FSRepo refactor. Not sure
how this bug survived this long.
2015-01-20 06:23:51 -08:00
Juan Batiz-Benet
97333ae219 Merge pull request #602 from jbenet/reuseport
p2p/net/conn: reuse listen tcp port to dial
2015-01-19 23:38:03 -08:00
Juan Batiz-Benet
6de542b1eb p2p/net/conn: cleaner reuse port setup
This commit cleans up the reuse port setup, and fixes a problem:
make sure to filter addrs out that we simply cannot dial with
(e.g. loopback -> non-loopback, or linklocal -> nonlinklocal)
2015-01-19 23:18:52 -08:00
Juan Batiz-Benet
60cecefc60 p2p/net/conn: log when reuse fails 2015-01-19 23:18:52 -08:00
Juan Batiz-Benet
9062b9fe6c connect timing fixes to reuseport 2015-01-19 23:18:52 -08:00
Juan Batiz-Benet
7a3e0cdc75 CR updates to go-reuseport + go-sockaddr 2015-01-19 23:18:52 -08:00
Juan Batiz-Benet
e59b88dace p2p/proto/identify: use observed listen addrs
This commit finally makes use of the sent observed addrs.
If the connection's local address is from one of our
listen addrs, then the remote's observed addr is its
natted mapping, which is useful to us. For now, we add
it directly to our address book. (a future commit should
make addressbook addresses expire)
2015-01-19 23:18:51 -08:00
Juan Batiz-Benet
289f24207e p2p/test/reconnects: faster tests 2015-01-19 23:18:51 -08:00
Juan Batiz-Benet
334f9d2102 p2p/net/conn: use reuseport 2015-01-19 23:18:51 -08:00
Juan Batiz-Benet
911a3c90bc added go-reuseport + go-sockaddr 2015-01-19 23:18:51 -08:00
Juan Batiz-Benet
eb50900fff updated multiaddr-net for WrapNetListener 2015-01-19 23:18:51 -08:00
Brian Tiger Chow
7a322c9538 Merge pull request #601 from jbenet/fix/bitswap-decision-engine-freshness
fix(bitswap.decision.Engine) send only the freshest messages
2015-01-19 20:45:36 -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
Juan Batiz-Benet
1cf2bd2936 Merge pull request #584 from jbenet/fix/ipns
fix fuse mounting issues
2015-01-19 00:55:27 -08:00
Juan Batiz-Benet
56ae2fd0a8 routing: record validation into record/
This commit moves the record validation/verification
from dht/ into the new record/ packaage. Validator object
-- which is merely a map of ValidatorFuncs -- with a
VerifyRecord

cc @whyrusleeping
2015-01-19 08:10:37 +00:00
Jeromy
c01452e5ea move dht record code into new package 2015-01-19 08:07:58 +00:00
Jeromy
a5233faeae some comments 2015-01-19 08:06:51 +00:00
Jeromy
feeada0d90 fix fuse mounting issues
this time, without loading the private key on every startup
2015-01-19 08:05:52 +00:00
Brian Tiger Chow
d0e4cdf327 Merge pull request #568 from jbenet/feat/bitswap-decision-pq
feat(bitswap.decision.Engine) use PriorityQueue for Engine.Outbox
2015-01-18 15:15:19 -08:00
Brian Tiger Chow
76bea9be0a move PQ to thirdparty 2015-01-18 15:09:54 -08:00
Brian Tiger Chow
043b57f075 update random 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
c89b5ce824 wip Loggable func 2015-01-18 15:09:38 -08:00
Brian Tiger Chow
c70e717c7f Merge pull request #578 from jbenet/feat/core+repo
feat(core) replace config.Config with repo.Repo
2015-01-18 15:08:57 -08:00