Commit Graph

64 Commits

Author SHA1 Message Date
hannahhoward
da4528932a feat(storagemarket): initial extraction
Types for storage market

Modify deals.Provider to implement storagemarket.StorageProvider

Inject storagemarket.StorageProvider

Storage Provider interfaces

Storage Client interfaces

Add ValidatePublishedDeal to ClientNodeAdapter

Remove FundManager from client

Remove Wallet from client

Remove StateManager, Events, Wallet from client

Rebasing

- Copy types.BigInt, use TokenAmount/BigInt for token amounts
- Remove auto-imported log package
- Move `checkAskSignature` to a client file.
- Plumb contexts through

fix(storagemarket): use publish cids

Switch back to publish message cids to reduce the dependency surface area
2020-01-10 03:29:46 +01:00
hannahhoward
5b74a71dd3 feat(retrievalmarket): extract skeleton interfaces
Define all types to spec, modify interfaces, wrap old code

fix(builder): use client blockstore for retrieval

feat(retrieval): add node implementations

add node adapters for client & provider so that retrieval can be extracted
2020-01-08 12:45:43 -08:00
Jakub Sztandera
1ed62628a7
Update go-log to v2
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-01-08 20:22:31 +01:00
hannahhoward
61e2568b8d feat(datatransfer): implement and extract
feat(datatransfer): setup implementation path

Sets up a path to implementation, offering both the dagservice implementation and a future graphsync
implement, establishes message interfaces and network layer, and isolates the datatransfer module
from the app

WIP using CBOR encoding for dataxfermsg

* Bring cbor-gen stuff into datatransfer package
* make transferRequest private struct
* add transferResponse + funcs
* Rename VoucherID to VoucherType
* more tests passing

WIP trying out some stuff
* Embed request/response in message so all the interfaces work AND the CBOR unmarshaling works: this is more like the spec anyway
* get rid of pb stuff

all message tests passing, some others in datatransfer

Some cleanup for PR

Cleanup for PR, clarifying and additional comments

mod tidy

Respond to PR comments:
* Make DataTransferRequest/Response be returned in from Net
* Regenerate cbor_gen and fix the generator caller so it works better
* Please the linters

Fix tests

Initiate push and pull requests (#536)

* add issue link for data TransferID generation
* comment out failing but not relevant tests
* finish voucher rename from Identifier --> Type

tests passing

cleanup for PR

remove unused fmt import in graphsync_test

a better reflection

send data transfer response

other tests passing

feat(datatransfer): milestone 2 infrastructure

Setup test path for all tickets for milestone 2

responses alert subscribers when request is not accepted (#607)

Graphsync response is scheduled when a valid push request is received (#625)

fix(datatransfer): fix tests

fix an error with read buffers in tests

fix(deps): fix go.sum

Feat/dt graphsync pullreqs (#627)

* graphsync responses to pull requests

Feat/dt initiator cleanup (#645)

* ChannelID.To --> ChannelID.Initiator
* We now store our peer ID (from host.ID()) so it can be used when creating ChannelIDs.
* InProgressChannels returns all of impl.channels, currently just for testing
* Implements go-data-transfer issue
* Some assertions were changed based on the above.
* Renamed some variables and added some assertions based on the new understanding
* Updated SHA for graphsync module
* Updated fakeGraphSync test structs to use new interfaces from new SHA above

Techdebt/dt split graphsync impl receiver (#651)

* Split up graphsyncImpl and graphsyncReceiver
* rename graphsync to utils

DTM sends data over graphsync for validated push requests (#665)

* create channels when a request is received. register push request hook with graphsync. fix tests.
* better NewReaders
* use mutex lock around impl.channels access
* fix(datatransfer): fix test uncertainty
* fix a data race and also don't use random bytes in basic block which can fail
* privatize 3 funcs

with @hannahhoward

Feat/dt gs pullrequests (#693)

* Implements DTM Sends Data Over Graphsync For Validated Pull Requests
* rename a field in a test struct
* refactor a couple of private functions (one was refactored out of existence)

Feat/dt subscribe, file Xfer round trip (#720)

Implements the rest of Subscriber Is Notified When Request Completed #24:
* send a graphsync message within a go func and consume responses until error or transfer is complete.
* notify subscribers of results.
* Rename datatransfer.Event to EventCode.
* datatransfer.Event is now a struct that includes a message and a timestamp as well as the Event.Code int, formerly Event, update all uses
* Add extension data to graphsync request hook, gsReq
* rename sendRequest to sendDtRequest, to distinguish it from sendGsRequest, where Dt = datatransfer, Gs = graphsync
* use a mutex lock for last transfer ID
* obey the linter

Don't respond with error in gsReqRcdHook when we can't find the datatransfer extension. (#754)

* update to correct graphsync version, update tests & code to call the new graphsync hooks
* getExtensionData returns an empty struct + nil if we can't find our extension
* Don't respond with error when we can't find the extension.
* Test for same
* mod tidy

minor fix to go.sum

feat(datatransfer): switch to graphsync implementation

Move over to real graphsync implementation of data transfer, add constructors for graphsync
instances on client and miner side

fix(datatransfer): Fix validators

Validators were checking payload cid against commP -- which are not the same any more. Added a
payloadCid to client deal to maintain the record, fixed validator logic

Feat/dt extraction use go-fil-components/datatransfer (#770)

* Initial commit after changing to go-fil-components/datatransfer
* blow away the datatransfer dir
* use go-fil-components master after its PR #1 was merged
* go mod tidy

use a package

updates after rebase with master
2020-01-08 14:19:28 +01:00
laser
20321bb476 handle rebase 2020-01-07 08:18:35 -08:00
Łukasz Magiera
1e7f10e387 gofmt 2020-01-07 15:00:10 +01:00
hannahhoward
718acb0a86 refactor(cborutil): extract cborutil library
Use extracted cborutil library
2020-01-07 14:59:35 +01:00
hannahhoward
8418464d91 refactor(address): use extracted address library
Switch to using extracted address library
2020-01-07 14:53:27 +01:00
whyrusleeping
99eae286c2 clean up some log spam 2019-12-16 09:14:21 -08:00
whyrusleeping
eba3f4af86 address PR review 2019-12-08 23:39:08 +01:00
whyrusleeping
f0653decf3 Clean up storage deal structures 2019-12-07 21:29:37 +01:00
whyrusleeping
b7a89b56b3 more statticcheck! 2019-12-04 21:14:19 -08:00
Łukasz Magiera
0a6a0e5e39 Address review 2019-11-20 18:00:05 +01:00
Łukasz Magiera
ddf2e05dd0 post: More correct 'wait' logic 2019-11-20 18:00:05 +01:00
hannahhoward
4b3bab371b refactor(deals): move type instantiation to modules
Move all type instantiation to dtypes & modules for any type unique to provider/client
2019-11-11 12:51:28 -08:00
hannahhoward
1532533712 style(formatting): run go fmt 2019-11-11 11:55:25 -08:00
hannahhoward
d0b705705f refactor(datatransfer): add comments, renames
minor name changes and additional comments to clarify how data transfer works
2019-11-11 11:07:15 -08:00
hannahhoward
905259e192 feat(datatransfer): integration w/ simple merkledag
Integrates the data transfer module with a mock version of the module that just calls the dag
service
2019-11-11 11:07:15 -08:00
Łukasz Magiera
be2e58a2fb Simple market fund manager 2019-11-08 18:15:56 +01:00
Łukasz Magiera
3fbe0abb75 cborrpc -> cborutil 2019-11-07 15:11:39 +01:00
Łukasz Magiera
58472afa3a deals: Verify network message signatures 2019-11-07 15:09:11 +01:00
Łukasz Magiera
8ec37e8728 deals: cleanup client state machine 2019-11-07 14:29:43 +01:00
Łukasz Magiera
12161fc607 deals: Finish client sealing state handler 2019-11-07 10:13:42 +01:00
whyrusleeping
54722a0d38 WIP: fixing the tests by waiting for chain activity 2019-11-06 23:57:10 -08:00
whyrusleeping
597dbe369c Add method to query latest deal state 2019-11-07 00:39:34 +01:00
whyrusleeping
9863942fe2 WIP: trying to write a test to reproduce the storage deal error 2019-11-07 00:39:34 +01:00
Łukasz Magiera
68c2d4f58a deals: Set correct Refs 2019-11-06 18:38:42 +01:00
Łukasz Magiera
2343ebc5b8 statestore: Use reflect for mutators 2019-11-01 12:07:05 +01:00
Łukasz Magiera
3cde267a2a Move statestore to lib 2019-10-31 22:01:44 +01:00
Łukasz Magiera
72af55d067 deals: Price per epoch 2019-10-29 11:01:18 +01:00
Łukasz Magiera
cdd91914b9 on chain deals: Actually set DataSize 2019-10-23 20:04:07 +02:00
Łukasz Magiera
fabd074165 on chain deals: Deals make it to the chain 2019-10-23 19:39:14 +02:00
Łukasz Magiera
61e14d0f4c on chain deals: Fix some serialization bugs 2019-10-23 14:59:57 +02:00
Łukasz Magiera
bd77bba676 on chain deals: Improve some errors 2019-10-23 12:44:00 +02:00
Łukasz Magiera
213ac77d08 on chain deals: Expose more chain state in pond 2019-10-23 12:44:00 +02:00
Łukasz Magiera
47d92d4a11 wip 2019-10-23 12:44:00 +02:00
Łukasz Magiera
bafb7e8cfa on chain deals: deal types cbor-gen 2019-10-23 12:44:00 +02:00
Łukasz Magiera
99ef51a642 on chain deals: Fix build 2019-10-23 12:44:00 +02:00
Łukasz Magiera
46a0333c9c on chain deals: Wip porting deal systems to storagemarket 2019-10-23 12:44:00 +02:00
Jakub Sztandera
1bf713cb0a
Cleanup imports after rename
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2019-10-18 13:47:41 +09:00
Łukasz Magiera
9fe198dc6f retrieval: payment validation 2019-09-16 23:25:23 +02:00
whyrusleeping
1075c9a5e0 implement ask query protocol 2019-09-13 16:49:27 -07:00
Łukasz Magiera
1ba1df3cac deals: don't throw away failed deals 2019-09-13 21:43:33 +02:00
Łukasz Magiera
9c276e5331 deals: Split state store 2019-09-13 21:19:13 +02:00
Łukasz Magiera
08ea758216 deals: 'fix' struct serialization 2019-09-13 20:19:49 +02:00
Łukasz Magiera
1fc7a48759 deals: API to list client deals 2019-09-13 19:59:10 +02:00
Łukasz Magiera
72a406ec7e deals: Better client deal tracking 2019-09-13 19:59:10 +02:00
Łukasz Magiera
fe6d5ff3a8 retrieval: resolve some TODOs 2019-08-29 17:51:52 +02:00
Łukasz Magiera
28d3eb38eb basic retrieval content discovery 2019-08-29 17:48:19 +02:00
Łukasz Magiera
9691211df1 Sealed blockstore 2019-08-29 17:48:19 +02:00