1. 12 Oct, 2016 1 commit
    • Jeromy's avatar
      merkledag: change 'Node' to be an interface · abfdac9a
      Jeromy authored
      Also change existing 'Node' type to 'ProtoNode' and use that most
      everywhere for now. As we move forward with the integration we will try
      and use the Node interface in more places that we're currently using
      ProtoNode.
      
      License: MIT
      Signed-off-by: default avatarJeromy <why@ipfs.io>
      abfdac9a
  2. 10 Oct, 2016 1 commit
    • Jeromy's avatar
      bitswap: protocol extension to handle cids · 591491b1
      Jeromy authored
      This change adds the /ipfs/bitswap/1.1.0 protocol. The new protocol
      adds a 'payload' field to the protobuf message and deprecates the
      existing 'blocks' field. The 'payload' field is an array of pairs of cid
      prefixes and block data. The cid prefixes are used to ensure the correct
      codecs and hash functions are used to handle the block on the receiving
      end.
      
      License: MIT
      Signed-off-by: default avatarJeromy <why@ipfs.io>
      591491b1
  3. 08 Oct, 2016 1 commit
  4. 06 Oct, 2016 1 commit
  5. 29 Sep, 2016 1 commit
  6. 26 Sep, 2016 1 commit
  7. 10 Sep, 2016 1 commit
  8. 09 Sep, 2016 1 commit
  9. 06 Sep, 2016 1 commit
  10. 04 Sep, 2016 1 commit
  11. 03 Sep, 2016 1 commit
  12. 02 Sep, 2016 1 commit
  13. 26 Aug, 2016 1 commit
  14. 24 Aug, 2016 1 commit
  15. 04 Aug, 2016 1 commit
    • Jeromy's avatar
      bitswap: fix a minor data race · 3fbf157a
      Jeromy authored
      race detector picked up a minor race condition, Since loop iteration
      reuses the same local variable, its not safe to take its address and use
      it concurrently. The fix is to rebind the variable into a controlled
      scope (creating a new variable) and taking the address of that to pass
      outwards.
      
      License: MIT
      Signed-off-by: default avatarJeromy <why@ipfs.io>
      3fbf157a
  16. 24 Jun, 2016 1 commit
  17. 09 Jun, 2016 1 commit
  18. 01 Jun, 2016 1 commit
  19. 17 May, 2016 1 commit
  20. 10 May, 2016 1 commit
  21. 05 May, 2016 1 commit
  22. 04 May, 2016 1 commit
  23. 27 Apr, 2016 1 commit
  24. 13 Feb, 2016 1 commit
  25. 30 Jan, 2016 2 commits
  26. 12 Jan, 2016 3 commits
  27. 05 Nov, 2015 1 commit
  28. 27 Oct, 2015 1 commit
  29. 18 Oct, 2015 1 commit
  30. 03 Oct, 2015 1 commit
  31. 15 Sep, 2015 1 commit
  32. 09 Sep, 2015 1 commit
  33. 04 Aug, 2015 1 commit
    • Juan Batiz-Benet's avatar
      bitswap/provide: improved rate limiting · 06b49918
      Juan Batiz-Benet authored
      this PR greatly speeds up providing and add.
      
      (1) Instead of idling workers, we move to a ratelimiter-based worker.
      We put this max at 512, so that means _up to_ 512 goroutines. This
      is very small load on the node, as each worker is providing to the
      dht, which means mostly waiting. It DOES put a large load on the DHT.
      but i want to try this out for a while and see if it's a problem.
      We can decide later if it is a problem for the network (nothing
      stops anyone from re-compiling, but the defaults of course matter).
      
      (2) We add a buffer size for provideKeys, which means that we block
      the add process much less. this is a very cheap buffer, as it only
      stores keys (it may be even cheaper with a lock + ring buffer
      instead of a channel...). This makes add blazing fast-- it was being
      rate limited by providing. Add should not be ratelimited by providing
      (much, if any) as the user wants to just store the stuff in the local
      node's repo. This buffer is initially set to 4096, which means:
      
        4096 * keysize (~258 bytes + go overhead) ~ 1-1.5MB
      
      this buffer only last a few sec to mins, and is an ok thing to do
      for the sake of very fast adds. (this could be a configurable
      paramter, certainly for low-mem footprint use cases). At the moment
      this is not much, compared to block sizes.
      
      (3) We make the providing EventBegin() + Done(), so that we can
      track how long a provide takes, and we can remove workers as they
      finish in bsdash and similar tools.
      
      License: MIT
      Signed-off-by: default avatarJuan Batiz-Benet <juan@benet.ai>
      06b49918
  34. 07 Jul, 2015 1 commit
  35. 01 Jun, 2015 1 commit
  36. 30 May, 2015 2 commits
    • Jeromy's avatar
      adjust naming · 5056a837
      Jeromy authored
      5056a837
    • Jeromy's avatar
      Move findproviders out of main block request path · e5aa2acc
      Jeromy authored
      This PR moves the addition of new blocks to our wantlist (and their
      subsequent broadcast to the network) outside of the clientWorker loop.
      This allows blocks to more quickly propogate to peers we are already
      connected to, where before we had to wait for the previous findProviders
      call in clientworker to complete before we could notify our partners of
      the next blocks that we want. I then changed the naming of the
      clientWorker and related variables to be a bit more appropriate to the
      model. Although the clientWorker (now named providerConnector) feels a
      bit awkward and should probably be changed.
      
      fix test assumption
      e5aa2acc