1. 02 Mar, 2020 1 commit
    • dirkmc's avatar
      Ensure broadcast when remaining peer becomes unavailable (#272) · 0ba089b4
      dirkmc authored
      * fix: ensure broadcast when peer becomes unavailable and all other peers sent DONT_HAVE for CID
      
      * fix: lint warnings
      
      * refactor: simplify session want sender DONT_HAVE list
      
      * fix: flaky test
      
      * test: add session exhausted wants test
      
      * docs: improve sessionWantSender processAvailability docs
      0ba089b4
  2. 12 Feb, 2020 1 commit
  3. 30 Jan, 2020 2 commits
    • Steven Allen's avatar
      feat: move internals to an internal package · bbf65296
      Steven Allen authored
      This makes reading the docs much easier as it's clear what's "private" and
      what's not.
      
      fixes #238
      bbf65296
    • dirkmc's avatar
      feat: bitswap protocol extensions · b3a47bcf
      dirkmc authored
      This commit extends the bitswap protocol with two additional wantlist properties:
      
      * WANT_HAVE/HAVE: Instead of asking for a block, a node can specify that they
        want to know if any peers "have" the block.
      * WANT_HAVE_NOT/HAVE_NOT: Instead of waiting for a timeout, a node can explicitly
        request to be told immediately if their peers don't currently have the given
        block.
      
      Additionally, nodes now tell their peers how much data they have queued to send
      them when sending messages. This allows peers to better distribute requests,
      keeping all peers busy but not overloaded.
      
      Changes in this PR are described in: https://github.com/ipfs/go-bitswap/issues/186
      b3a47bcf
  4. 28 Aug, 2019 1 commit
    • Steven Allen's avatar
      session: buffer some request channels · 8454ba00
      Steven Allen authored
      We're not using these synchronously so we can buffer them a bit to avoid
      blocking quite as much.
      
      This also combines all incoming channels into a single one to ensure all
      operations are processed in-order. This might be overkill bit it makes reasoning
      about this a bit simpler.
      8454ba00
  5. 22 Aug, 2019 1 commit
  6. 20 Aug, 2019 1 commit
  7. 15 Aug, 2019 4 commits
  8. 13 Aug, 2019 1 commit
  9. 04 Jul, 2019 2 commits
  10. 03 Jul, 2019 1 commit
    • hannahhoward's avatar
      feat(sessions): pass optimization rating · 8e59a716
      hannahhoward authored
      When fetching optimized peers from the peer manager, return an optimization rating, and pass on to
      request splitter
      
      BREAKING CHANGE: interface change to GetOptimizedPeers and SplitRequests public package methods
      8e59a716
  11. 14 Jun, 2019 1 commit
  12. 12 Jun, 2019 3 commits
  13. 04 Jun, 2019 1 commit
  14. 03 Jun, 2019 4 commits
  15. 31 May, 2019 1 commit
  16. 11 Jan, 2019 1 commit
  17. 10 Jan, 2019 1 commit
  18. 22 Dec, 2018 1 commit
  19. 20 Dec, 2018 3 commits
  20. 13 Dec, 2018 4 commits
  21. 11 Dec, 2018 2 commits
  22. 04 Dec, 2018 1 commit
  23. 29 Oct, 2018 1 commit
  24. 04 Oct, 2018 1 commit
    • Steven Allen's avatar
      use CIDs directly as map keys · 77ea854e
      Steven Allen authored
      1. Use a `taskEntryKey` *type* instead of a string (now that both peer IDs and
      CIDs are hashable).
      2. Get rid of all uses of `cid.KeyString` (mostly just for type safety). This
      also means we don't need to parse the CID and allocate to convert it *back* from
      a string.
      77ea854e