Brian Tiger Chow
42dfc50250
docs(bitswap/message) BitSwapMessage interface
2014-10-27 22:43:54 -07:00
Brian Tiger Chow
edf99f5e20
fix(bitswap) preserve ordering in bitswap message
2014-10-27 22:43:54 -07:00
Brian Tiger Chow
91a31a3e7d
test(bitswap/message) no duplicates
2014-10-27 21:58:21 -07:00
Brian Tiger Chow
cebeff43b9
style(bitswap/message) rename method -> AddBlock
...
to emphasize idempotence
2014-10-27 21:58:21 -07:00
Brian Tiger Chow
caedb64697
fix(bitswap/message) impl with map to ensure no duplicate blocks
...
comes at the cost of O(n) Blocks() method.
2014-10-27 21:58:21 -07:00
Brian Tiger Chow
2c4fefb9d6
style(bitswap/message) rename struct
...
so there's one less name to think about
2014-10-27 21:58:20 -07:00
Brian Tiger Chow
f94d6a37b6
refactor(bitswap/message) use map to prevent duplicate entries
...
A nice invariant for bitswap sessions:
Senders and receivers can trust that messages do not contain
duplicate blocks or duplicate keys. Backing the message with a
map enforces this invariant.
This comes at the cost of O(n) getters.
2014-10-27 21:58:20 -07:00
Brian Tiger Chow
842b910853
style(bitswap/message) rename AppendWanted -> AddWanted
...
implementation will be patched to ensure bitswap messages cannot contain
duplicate blocks or keys
2014-10-27 21:58:20 -07:00
Brian Tiger Chow
8193049dda
fix(bitswap) duplicate key in wantlist
...
@whyrusleeping noticed this a couple days ago
potential long-term fix: prevent duplicate entries in the wantlist by
using a map/set and iterating over this data structure on export
2014-10-27 21:58:20 -07:00
Jeromy
d92db12460
lots of logging
2014-10-26 00:45:40 +00:00
Jeromy
ab7491f809
logging, logging, and some minor logging
2014-10-25 14:50:22 -07:00
Jeromy
e1f2fe75f8
add in dag removal
2014-10-25 12:39:36 -07:00
Brian Tiger Chow
0dba976070
style(bitswap) import
2014-10-25 04:14:23 -07:00
Brian Tiger Chow
7f40a08b12
fix(bitswap) rm todo
2014-10-25 04:14:17 -07: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
Brian Tiger Chow
c848202c7d
fix(bitswap) move mutex up to strategy from ledger
...
addresses concurrent access in bitswap session
2014-10-24 16:17:15 -07:00
Brian Tiger Chow
715f5f4a19
fix(blockstore, bitswap) enforce threadsafety in blockstore
...
fixes data race detected in a testnet test
2014-10-24 16:16:41 -07:00
Brian Tiger Chow
80b573425b
refactor(bitswap) mv proto PBMessage -> Message
2014-10-22 21:49:46 -07:00
Brian Tiger Chow
d3ac9ceee3
misc(exch/bitswap) add TODOs
2014-10-22 15:54:18 -07:00
Brian Tiger Chow
8823f46248
fix(exch/bs/pb) rename proto package -> bitswap_message_pb
2014-10-22 15:54:18 -07:00
Brian Tiger Chow
15605fb18f
refactor(exchange/bitswap) move proto to internal pb package
2014-10-22 15:54:17 -07:00
Juan Batiz-Benet
f7c1ed39e0
renamed datastore.go -> go-datastore
2014-10-21 15:10:58 -07:00
Juan Batiz-Benet
9ca87fbb93
peer.Peer is now an interface
...

2014-10-20 03:26:46 -07:00
Juan Batiz-Benet
c894b1d295
iiii -> peerToQuery
...
(that wasn't mine :p)
2014-10-18 04:28:24 -07:00
Juan Batiz-Benet
4b5906e466
logging + tweaks
2014-10-18 04:28:24 -07:00
Juan Batiz-Benet
a5a7d99860
meant to call net.DialPeer
2014-10-18 04:28:24 -07:00
Juan Batiz-Benet
1555ce7c48
bitswap dials peers
...
Important bugfix. Otherwise bitswap cannot message peers
the node has not connected to yet :(
2014-10-18 04:28:23 -07:00
Juan Batiz-Benet
338b037238
clean up and add inet.Network to bitswap
...
new Service interface
2014-10-10 20:43:04 -07:00
Juan Batiz-Benet
972c0f7b4b
u.DOut -> log.Debug
...
and other logging switches. I kept the u.PErr and u.POut in cli
commands, as those do need to write raw output directly.
2014-10-09 04:50:22 -07:00
Juan Batiz-Benet
7c5679536c
bugfix: use consistent interface
...
We'll want a `type blocks.Block interface {}` later, but
for now, make sure Blockstore uses ptrs for both Get and Put.
+ fix NewBlock output compile error
2014-10-07 21:32:17 -07:00
Jeromy
6e0cfb3273
removed error from return type of blocks.NewBlock()
2014-10-07 20:46:01 +00:00
Juan Batiz-Benet
77fccaa2f3
Obviated need for .ID.Pretty() all over the place.
2014-10-06 04:23:55 -07:00
Brian Tiger Chow
e2a9c5de00
feat(net:service, routing) remove error return value
2014-09-24 23:35:36 -04:00
Brian Tiger Chow
0e494690b3
feat(bitswap:network) propagate errors up the stack
...
Rather than pushing errors back down to lower layers, propagate the
errors upward.
This commit adds a `ReceiveError` method to BitSwap's network receiver.
Still TODO: rm the error return value from:
net.service.handler.HandleMessage
This is inspired by delegation patterns in found in the wild.
2014-09-24 23:35:36 -04:00
Jeromy
c044d9c32e
move mock routing tests to proper directory
2014-09-23 18:23:46 -04:00
Jeromy
414ff34194
change back to using Client method
2014-09-23 18:23:46 -04:00
Jeromy
c45cc8c448
implement a mock dht for use in testing
2014-09-23 18:23:46 -04:00
Brian Tiger Chow
b85d1554cc
doc(bitswap:strat) add note to remove blocks from peer's wantlist after
...
sending
2014-09-22 04:06:19 -07:00
Brian Tiger Chow
9d7ae40003
feat(bitswap) expose ability to toggle "niceness"
...
true -> always send to peer
false -> use ledger-based strategy described in IPFS paper draft 3
2014-09-22 04:06:19 -07:00
Brian Tiger Chow
767d6ca633
refac(bitswap, util) extract KeySet
2014-09-22 04:06:19 -07:00
Brian Tiger Chow
faee10effe
test(bitswap) send entire wantlist to peers
...
fix(bitswap) pass go vet
fixes #97
https://github.com/jbenet/go-ipfs/issues/97
2014-09-22 04:06:19 -07:00
Brian Tiger Chow
39ad222da9
fix(bitswap) keep interface the same
...
changing the bitswap interace breaks tests and makes things a bit
difficult going forward. I think I have a temporary solution to replace
the async method.
this commit partially reverts changes from:
ec50703395098f75946f0bad01816cc54ab18a58
ec50703395
2014-09-22 04:06:18 -07:00
Brian Tiger Chow
2179b5d77b
fix(bitswap:testnet) Provide takes ctx
2014-09-22 04:06:18 -07:00
Brian Tiger Chow
b806270e5d
test(bitswap) test sending wantlist to peers
2014-09-22 04:06:18 -07:00
Brian Tiger Chow
b4ef99bc81
fix(exch) name the error
2014-09-22 04:06:18 -07:00
Brian Tiger Chow
b5ea124a76
style(bitswap) swap argument order
2014-09-22 04:06:18 -07:00
Brian Tiger Chow
7d62be76ad
chore(bitswap) cleanup
2014-09-22 04:06:18 -07:00
Brian Tiger Chow
60798b800a
style(bitswap) make signature more readable
2014-09-22 04:06:18 -07:00
Juan Batiz-Benet
8112fae7b3
get bitswap working with dht
...
@perfmode using non-async version as apparently there's
a bug in async. will look into it.
2014-09-22 04:06:18 -07:00
Juan Batiz-Benet
52cefb16cd
Routing uses context now
...
@perfmode boom
2014-09-22 04:06:18 -07:00