- 19 Jan, 2015 1 commit
-
-
Brian Tiger Chow authored
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.
-
- 18 Jan, 2015 1 commit
-
-
Brian Tiger Chow authored
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>
-
- 02 Jan, 2015 1 commit
-
-
Juan Batiz-Benet authored
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.
-
- 23 Dec, 2014 1 commit
-
-
Juan Batiz-Benet authored
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
-
- 18 Dec, 2014 10 commits
-
-
Brian Tiger Chow authored
License: MIT Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
-
Brian Tiger Chow authored
License: MIT Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
-
Brian Tiger Chow authored
License: MIT Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
-
Brian Tiger Chow authored
(merely by convention) License: MIT Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
-
Brian Tiger Chow authored
License: MIT Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
-
Brian Tiger Chow authored
performing CR in the form of a PR. Let me know what you think. License: MIT Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
-
Jeromy authored
-
Jeromy authored
-
Jeromy authored
-
Jeromy authored
make vendor
-
- 08 Dec, 2014 2 commits
-
-
Brian Tiger Chow authored
License: MIT Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
-
Brian Tiger Chow authored
for safety! use mockpeer.WithID methods to create peers in tests License: MIT Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
-
- 05 Dec, 2014 1 commit
-
-
Jeromy authored
-
- 28 Oct, 2014 2 commits
-
-
Brian Tiger Chow authored
to emphasize idempotence
-
Brian Tiger Chow authored
implementation will be patched to ensure bitswap messages cannot contain duplicate blocks or keys
-
- 20 Oct, 2014 1 commit
-
-
Juan Batiz-Benet authored
![](http://m.memegen.com/77n7dk.jpg)
-
- 07 Oct, 2014 1 commit
-
-
Jeromy authored
-
- 22 Sep, 2014 4 commits
-
-
Brian Tiger Chow authored
true -> always send to peer false -> use ledger-based strategy described in IPFS paper draft 3
-
Brian Tiger Chow authored
> Why expose num bytes sent and received? Makes it easy to test consistency of the ledgers > Got a better reason? Makes it possible to expose metrics to the people-facing API
-
Brian Tiger Chow authored
didn't run tests after the refactor. apologies.
-
Brian Tiger Chow authored
Move go-ipfs/bitswap package to go-ipfs/exchange/bitswap * Delineates the difference between the generic exchange interface and implementations (eg. BitSwap protocol) Thus, the bitswap protocol can be refined without having to overthink how future exchanges will work. Aspects common to BitSwap and other exchanges can be extracted out to the exchange package in piecemeal. Future exchange implementations can be placed in sibling packages next to exchange/bitswap. (eg. exchange/multilateral)
-