Michael Bradley, Jr
5aa42541b3
[build] update nim-datastore
...
also make changes to `codex/codex.nim` and tests for SQLiteStore re: changes in
nim-datastore
closes #178
2022-08-10 13:13:07 -05:00
markspanbroek
097a4cfd67
Better command line options for Ethereum ( #181 )
...
* [contracts] ContractInteractions.new() now requires account parameter
* [cli] Only perform Ethereum interactions when --eth-account is specified
* [cli] Add --persistence option that is disabled by default
* [cli] Use Option for ethDeployment parameter
* [node] Better error reporting when Ethereum node cannot be reached
2022-08-09 06:29:06 +02:00
Michael Bradley, Jr
eebcf7e7b2
[node] custom iterator/query for SQLiteStore's `method listBlocks`
2022-08-08 17:48:37 -05:00
Michael Bradley, Jr
2ecf750959
[node] support self.cache=nil in SQLiteStore
...
also fix a discrepancy where cli option `--cache-size` is documented as
`0 disables the cache` in `codex/conf.nim`, but previously the value `0` would
result in a cache being constructed with default parameter values for
`CacheStore.new()`
Closes #180
2022-08-08 16:24:45 -05:00
Mark Spanbroek
7f5310d640
[rest api] Allow user to specify amount of hosts
2022-08-08 14:00:55 +02:00
Mark Spanbroek
fd6f8a1386
[sales] Pass along request and slot index in onProve callback
2022-08-08 14:00:55 +02:00
Mark Spanbroek
cb5427ca95
[sales] Pass along request and slot index in onStore callback
2022-08-08 14:00:55 +02:00
Mark Spanbroek
3a3d083345
[contracts] Replace size by slotSize
2022-08-08 14:00:55 +02:00
Mark Spanbroek
bf11ef5b55
[sales] Use correct slot price
2022-08-08 14:00:55 +02:00
Mark Spanbroek
057de4e928
[sales] Choose a slot index at random
2022-08-08 14:00:55 +02:00
Mark Spanbroek
b4b6fdb7c6
[contracts] subscribe to SlotFilled event
2022-08-08 14:00:55 +02:00
Mark Spanbroek
7995fd71d5
[market] remove fulfillRequest()
...
It is superseded by fillSlot()
2022-08-08 14:00:55 +02:00
Mark Spanbroek
04e0c54e95
[market] Remove old getHost() overload
...
Is superseded by the new overload that includes
a slot id parameter.
2022-08-08 14:00:55 +02:00
Mark Spanbroek
698baeef35
[purchasing] Remove Purchase.selected
...
There no longer exists a single host that
is selected for a contract.
2022-08-08 14:00:55 +02:00
Mark Spanbroek
dc95c863d2
[sales] replace fulfillRequest() by fillSlot()
2022-08-08 14:00:55 +02:00
Mark Spanbroek
156cd5ba73
[market] Replace fulfillRequest() by fillSlot()
2022-08-08 14:00:55 +02:00
Mark Spanbroek
67e4a28ed0
[contracts] Replace fulfillRequest() by fillSlot()
2022-08-08 14:00:55 +02:00
Mark Spanbroek
0494b3617b
[contracts] replace totalNodes and nodeId by slots
2022-08-08 14:00:55 +02:00
Mark Spanbroek
360c03e7c4
[contracts] Rename: maxPrice -> reward
2022-08-08 14:00:55 +02:00
Michael Bradley, Jr
75666d01bf
[node] add SQLiteStore backend
...
Closes #138
2022-08-08 02:12:43 -05:00
Dmitriy Ryajov
625facff4a
Better batching ( #170 )
...
* add cleaner batching
* pass block instead of cid
* cleanup manifest fetching
* bug: reference correct cid version
* add batch tests
* make sure batch is always <= batchSize
2022-07-29 14:04:12 -06:00
Dmitriy Ryajov
48368893c9
Add limits for inflight requests ( #169 )
...
* convert network to async
* use async network api
* test with async network
* test concurrent send limits
2022-07-29 10:19:34 -06:00
Dmitriy Ryajov
7ccde112f8
Contract store ( #161 )
...
* split out manifest and block retrieval
* adding test for `fetchManifest`
* raise exceptions in onStore
2022-07-28 11:44:59 -06:00
Bulat-Ziganshin
0bfe26440e
WIP: Harmonize BlockStore API (remaining functions) ( #123 ) ( #130 )
...
BlockStore API got new return types (rationale in https://github.com/status-im/nim-codex/issues/123#issuecomment-1163797753 ):
- getBlock: Future[?! (?Block)]
- putBlock/delBlock/listBlocks: Future[?!void]
- hasBlock: Future[?!bool]
Plus refactored readOnce(StoreStream) and check received data in its tests.
And replaced local use of AsyncHeapQueue with seq.sort.
2022-07-28 03:39:17 +03:00
Mark Spanbroek
afdb5be2d4
Add TODOs to indicate wanted architecture
...
As discussed in team:
- Retrieving of blocks that are mentioned in the
manifest should be moved into a BlockStore.
- Sales should be given an instance of BlockStore,
and an instance of StorageProofs, instead of the
onStore, onClear, and onProve callbacks
2022-07-20 13:43:20 +02:00
Mark Spanbroek
97a5237d44
[sales] Add documentation
2022-07-20 13:43:20 +02:00
Mark Spanbroek
571aa6f694
[sales] Consistent names for callbacks
2022-07-20 13:43:20 +02:00
Mark Spanbroek
592a3dce4d
[sales] Add callback for clearing storage when no longer needed
2022-07-20 13:43:20 +02:00
Mark Spanbroek
adcb91a5d5
[node] Store datasets locally when sales asks for it
2022-07-20 13:43:20 +02:00
Mark Spanbroek
7bc5280596
[node] rename PrefetchBatch -> Batch
...
Reason: in a next commit we'll use the same
constant to fetch data in batches
2022-07-20 13:43:20 +02:00
Mark Spanbroek
d4025f4a5f
[manifest] Extract logic for decoding a manifest given a cid
2022-07-20 13:43:20 +02:00
Mark Spanbroek
e06211f827
[sales] rename: negotiation -> sales agent
...
Reason: with the new design there are no offers and
selection, making this less like a negotation, and
more like an agent trying to fulfill a storage request
2022-07-20 13:43:20 +02:00
Mark Spanbroek
96ca1de768
Cleanup: remove StorageOffer everywhere
2022-07-20 13:43:20 +02:00
Mark Spanbroek
bd2fba50c7
[purchasing] Fix integration test
2022-07-20 13:43:20 +02:00
Mark Spanbroek
4a4588e2a0
[node] Set callbacks for Sales to retrieve and prove posession of data
2022-07-20 13:43:20 +02:00
Mark Spanbroek
94f6838d19
[node] Fix: ensure that retrieve works for small files
2022-07-20 13:43:20 +02:00
Mark Spanbroek
f14eeb688b
[WIP sales] Handle request expiry
2022-07-20 13:43:20 +02:00
Mark Spanbroek
9438aba5d2
[WIP sales] Handle other host fulfilling request
2022-07-20 13:43:20 +02:00
Mark Spanbroek
7f864570bd
[WIP sales] call onSale()
2022-07-20 13:43:20 +02:00
Mark Spanbroek
a2570f9380
[WIP sales] fulfill request
2022-07-20 13:43:20 +02:00
Mark Spanbroek
5abd5dd674
[WIP sales] make storage available again upon failure
2022-07-20 13:43:20 +02:00
Mark Spanbroek
dcb8f8a7f7
[WIP sales] Generate proof of storage
2022-07-20 13:43:20 +02:00
Mark Spanbroek
07dbb6ae18
[WIP sales] Retrieve data
2022-07-20 13:43:20 +02:00
Mark Spanbroek
3e6d51754d
[WIP sales] Make tests pass by commenting out code
2022-07-20 13:43:20 +02:00
Mark Spanbroek
0636c94b74
[market] Add market.getSigner()
2022-07-20 13:43:20 +02:00
Mark Spanbroek
03b92a2067
[market] Add market.getHost()
2022-07-20 13:43:20 +02:00
Mark Spanbroek
b414ecd67e
[market] Add market.getRequest()
2022-07-20 13:43:20 +02:00
Mark Spanbroek
4b5cfe8e41
[purchasing] Update to latest dagger-contracts
2022-07-20 13:43:20 +02:00
Mark Spanbroek
b7ab9481d9
[market] Update to latest dagger-contracts
2022-07-20 13:43:20 +02:00
Mark Spanbroek
e352a181e4
[contracts] Update to latest dagger-contracts
2022-07-20 13:43:20 +02:00