- 08 Jul, 2020 1 commit
-
-
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
-
- 27 May, 2020 2 commits
-
-
Hannah Howard authored
Provides full implementation of do-no-send-cids on responder side
-
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
-
- 21 Apr, 2020 3 commits
-
-
Hannah Howard authored
-
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
-
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
-
- 02 Apr, 2020 1 commit
-
-
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
-
- 27 Mar, 2020 1 commit
-
-
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
-
- 23 Mar, 2020 1 commit
-
-
hannahhoward authored
-
- 20 Mar, 2020 1 commit
-
-
hannahhoward authored
Remove the encode and decode on ipldbridge as part of ramp up to removing entirely Also move selector encode/decode to within protobuf encoding
-
- 02 Dec, 2019 1 commit
-
-
hannahhoward authored
When the request manager receives extensions in a request, it processes them and returns their response
-
- 11 Nov, 2019 1 commit
-
-
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.
-
- 03 Sep, 2019 1 commit
-
-
hannahhoward authored
limit the size of blocks sent in a response to 512k a.l.a. bitswap
-
- 23 Jul, 2019 1 commit
-
-
hannahhoward authored
Adds callbacks to manage connections, also removes network receiver methods from public graphsync interface, and updates libp2p to handle go-libp2p-core refactor
-
- 19 Apr, 2019 5 commits
-
-
hannahhoward authored
move link tracker out of response manager so it can be used for requests
-
hannahhoward authored
Complete functionality to initialize response manager and process incoming requests fix #7, fix #8
-
hannahhoward authored
Creates the Response Manager that processes incoming requests, initiates selector traversal, and generates responses
-
hannahhoward authored
Refactor peer manager to handle abstract processes, then use the base class for the peer message manager and the peer response manager
-
hannahhoward authored
Create a response manager for a single peer to handle assembling and managing responses for a given peer
-