1. 08 Jul, 2020 1 commit
    • Hannah Howard's avatar
      All changes to date including pause requests & start paused, along with new... · caa872f6
      Hannah Howard authored
      All changes to date including pause requests & start paused, along with new adds for cleanups and checking of execution (#75)
      
      * WIP
      
      * feat(graphsync): pause/unpause requests
      
      Allow graphsync requests to be paused and unpaused via request cancelling and DoNotSendCIDs
      extension
      
      * fix(requestmanager): refactor executor
      
      remove extraneous allocation of closure functions
      
      * feat(graphsync): support external request pauses
      
      allow pausing requests imperatively via PauseRequest function
      
      * fix(lint): fix lint errors
      
      * feat(responsemanager): start requests paused
      
      add the ability for a hook to pause a response right when it's first received
      
      * feat(responsemanager): improve cancellation UX
      
      provide a mechanism for responders to learn a requestor cancelled a request and for requestors to
      learn a request was cancelled
      
      * feat(requestmanager): process request cancelled status
      
      process the responder returning a request cancelled error code and also support sentinel errors
      
      * feat(executor): refactor to remove loader
      
      remove loader, also only fire restart request as needed
      
      * fix(asyncloader): load requests synchronously when possible
      
      * fix(responsemanager): fix external pause
      
      Fix external pauses missing a block
      
      * fix(responsemanager): do not delay complete listener
      
      Run complete listener in same thread as response processing, making it less susceptable to
      interruption via cancel
      
      * fix(responsemanager): fix context check
      
      fix checking for context cancellation errors based off of the way ipld-prime does not wrap errors
      
      * fix(responsemanager): more precise cancel
      
      make cancels only get recorded if actual blocks are not sent -- otherwise the request is considered
      complete -- and the complete hook always runs
      
      * fix(requestmanager): handle non processed pauses
      
      Handler the case where a pause is requested but never actually takes place
      
      * refactor(responsemanager): handle cancels, correctly this time
      
      Properly handle cancels for both paused and unpaused states
      
      * fix(errors): remove regex cause it appears to be very slow
      
      * fix(traverser): fix race condition for shutdown
      
      make sure that the traverser is finished in the request executor
      
      * fix(deps): mod tidy
      
      * fix(executor): add back network error
      caa872f6
  2. 27 May, 2020 2 commits
    • Hannah Howard's avatar
      feat(graphsync): implement do-no-send-cids extension (#69) · ea953565
      Hannah Howard authored
      Provides full implementation of do-no-send-cids on responder side
      ea953565
    • Hannah Howard's avatar
      Incoming Block Hooks (#68) · 430b4dc6
      Hannah Howard authored
      * feat(graphsync): add incoming block hook types
      
      add types (not implemented) for incoming block hook
      
      * feat(asyncloader): identify local loads
      
      add a boolean value to AsyncLoadResult to determine if a request load was local
      
      * fixup! feat(graphsync): add incoming block hook types
      
      * feat(hooks): add block hooks plumbing
      
      * feat(requestmanager): process block hooks
      
      Process block hooks on each block, and connect last response to blocks
      
      * feat(peerresponsemanager): add transactions
      
      add the ability to do multple response operations with a gaurantee they will end up in a single
      response
      
      * refactor(lint): fix lint errors
      430b4dc6
  3. 21 Apr, 2020 3 commits
    • Hannah Howard's avatar
    • Hannah Howard's avatar
      Update Requests (#63) · 9ada784d
      Hannah Howard authored
      * feat(graphsync): add update to message
      
      add update to message protobuf. also fix deserialization error with cancel requests
      
      * feat(requestmanager): support updates for response hooks
      
      Support sending request updates in incoming response hooks. Also factor hooks out of request manager
      
      * refactor(hooks): make hooks approach consistent
      
      for ease of use and learning in library, make hooks structure consistent across requestor and
      responder
      
      * feat(responsemanager): update request processing
      
      Add the ability to processing update requests as needed
      
      * test(responsemanager): add more tests for update behavior
      
      * test(integration):add update integration test
      
      Add test to verify the whole update flow
      
      * fix(lint): fix lint error
      9ada784d
    • Hannah Howard's avatar
      Add pausing and unpausing of requests (#62) · 79c195c8
      Hannah Howard authored
      * feat(deps): upgrade IPLD prime to last before refactor
      
      * refactor(responsemanager): refactor traversal
      
      switch to iterative traversal that is more amenable to interruption
      
      * feat(peerresponsemanager): add bytes sent to peer response sender
      
      Add a return value to SendResponse in peer response sender to return the number of block bytes
      transmitted. Note: does not count unsent blocks. Also convert block size measurements to uint64
      
      * feat(responsemanager): add response pausing
      
      add first implementation of response pausing in response manager
      
      * refactor(responsemanager): extract classes to simplify response manager
      
      extract hooks as independant functionality
      
      * test(responsemanager): add tests for block hooks and request hooks
      
      * test(graphsync): add pause/resume integration test
      
      * fix(responsemanager): fix directory misname
      
      requesthooks.go directory -> requesthooks
      
      * fix(tests): cleanup races & lint
      
      * test(graphsync): fix flaky test
      79c195c8
  4. 02 Apr, 2020 1 commit
    • Hannah Howard's avatar
      Testify refactor (#56) · b3cc648d
      Hannah Howard authored
      * refactor(tests): introduce testify
      
      Introduce testify, cleanup lots of tests, add channel assertions to simplify channel tests, make
      more readable
      
      * refactor(tests): clean up error messages
      
      * fix(deps): remove bitswap
      
      remove accidentally added bitswap
      
      * refactor(tests): put expected in correct position
      
      Make sure for require.equal that the expected value is the first value
      b3cc648d
  5. 27 Mar, 2020 1 commit
    • Hannah Howard's avatar
      Switch To Circle CI (#57) · bd3f4b47
      Hannah Howard authored
      * ci(circle): switch to circle
      
      Use configs from bitswap
      
      * fix(deps): update and standardize
      
      * fix(lint): fix lint errors
      
      * fix(tests): relax timings for context cancels
      
      Since we are not relying on context cancellation as anything but a test failsafe, relax timings
      significantly for slower machines
      
      * fix(test): fix minor test error
      
      * fix(tests): minor timing fix
      
      * fix(lint): fix lint errors
      
      * fix(tests): relax timings for context cancels
      
      Since we are not relying on context cancellation as anything but a test failsafe, relax timings
      bd3f4b47
  6. 23 Mar, 2020 1 commit
  7. 20 Mar, 2020 1 commit
  8. 02 Dec, 2019 1 commit
  9. 11 Nov, 2019 1 commit
    • hannahhoward's avatar
      refactor(graphsync): refactor file organization · 170951f1
      hannahhoward authored
      To reduce future import cycles, and expose more types properly, move the root package to an
      interface/types file and move the main implementation into /impl. This also exposes an interface
      other implementers can replace.
      170951f1
  10. 03 Sep, 2019 1 commit
  11. 23 Jul, 2019 1 commit
  12. 19 Apr, 2019 5 commits