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
13bbf2b052
Fix test that was failing intermittently
...
Give test more time to complete but do not increase
sleep time more than necessary, by introducing
waiting loop for test purposes.
2022-07-20 13:43:20 +02:00
Mark Spanbroek
6df0c9ab40
[integration] set expiry always to high value
...
Reasoning: a purchase is now completed when
the first proof comes in, so the test will no
longer wait until the request has expired.
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
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
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
a7f3ead44e
[WIP sales] refactor tests
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
Michael Bradley, Jr
8f0bc54fba
test: make `proc finish` async in "nodes negotiate ..." integration test
...
`waitFor` has been moved into the main body of integration test
`nodes negotiate ...` to reduce blockage on the main thread. That change, along
with widening the expiry in `when defined(windows)` (and bumping up
`timeout-minutes` in our CI workflow) allows Windows CI builds to succeed more
consistently, i.e. without timing out.
2022-07-06 19:03:10 -05:00
Bulat-Ziganshin
15ae157e61
BlockStore: delBlock got new type ( #123 )
...
Now every store traces only its own operations and failures (currently implemented only for delBlock)
2022-06-28 19:10:05 +03:00
Dmitriy Ryajov
77733725bf
fix failing test after nim-ethers bump ( #112 )
2022-06-09 09:36:59 -06:00
Dmitriy Ryajov
6ce7e23767
Upload authenticators ( #108 )
...
* initial implementation of storage proofs upload
* make sure proof verifies with after deserializing
* add por store
* rename por store to stp store
* rename porstore to stpstore
* add support for host discovery to discovery mock
* add tags upload network tests
2022-05-25 20:29:31 -06:00
Dmitriy Ryajov
738738c3c6
Adding storage proofs store ( #109 )
...
* add por store
* rename por store to stp store
* add stp tests
2022-05-24 18:42:49 -06:00
Dmitriy Ryajov
56b80d6f6d
Por serialize ( #106 )
...
* move por into storage proofs
* use SeekableStream
* adding serialization for por
* remove leftovers
* add empty block support
* add basic por test
* rename block exchange for consistency
* add storageproofstests
* moving timing to storageproofs
* fix imports
* fix imports
* fix imports
* add top level exports
* move delete blocks helper to helpers
* more import/export fixes
* cleanup
* more import fixes
* fix unused warnings
* detect corrupt blocks tests
* add serialization tests
* move init method around
* bump asynctest
* fix CID version
* get rid of warning
* wip: fix CI
* increase CI timeout
2022-05-23 23:24:15 -06:00
Dmitriy Ryajov
d4f3ebc867
reorg engine directory structure ( #104 )
2022-05-19 16:28:53 -06:00
Michael Bradley
209343087c
Change every dagger to codex ( #102 )
2022-05-19 13:56:03 -06:00
Mark Spanbroek
15a571387f
[test] Give integration test a bit more time to complete
...
For slow windows CI runners.
2022-05-19 10:38:19 +02:00
Mark Spanbroek
49e60d6a5c
[clock] Fix test failure when sleepAsync takes a bit longer than expected
2022-05-19 10:38:19 +02:00
Mark Spanbroek
d6393de324
[test] Add integration test for sales and purchasing
2022-05-19 10:38:19 +02:00
Mark Spanbroek
8086dda3f2
[purchasing] set selected offer on purchase
2022-05-19 10:38:19 +02:00
Mark Spanbroek
cdcab43590
[proving] Use clock instead of getPeriod() and waitUntilPeriod()
2022-05-19 10:38:19 +02:00
Mark Spanbroek
09a7aa3eed
[clock] Replace Market.waitUntil() with Clock.waitUntil()
2022-05-19 10:38:19 +02:00
Mark Spanbroek
dcf3d485c4
[tests] Ensure that tests don't hang on closing process
2022-05-19 10:38:19 +02:00
Mark Spanbroek
3a8ce485e4
[sales] Use Clock instead of getTime()
2022-05-19 10:38:19 +02:00
Mark Spanbroek
1e44ed5fd3
[purchasing] Use Clock instead of getTime()
2022-05-19 10:38:19 +02:00
Mark Spanbroek
4210cca6e7
[proving] Use Clock instead of getTime()
2022-05-19 10:38:19 +02:00
Mark Spanbroek
8d19476a4c
[sales] Ensure that Sales is completely stopped
2022-05-19 10:38:19 +02:00
Mark Spanbroek
3f627790f8
[proving] Ensure that proving is completely stopped
2022-05-19 10:38:19 +02:00
Mark Spanbroek
ea72d99798
[clock] Add Clock interface that abstracts away ethereum details
2022-05-19 10:38:19 +02:00
Mark Spanbroek
fa84861d86
[contracts] Add Clock that synchronizes time with EVM
2022-05-19 10:38:19 +02:00
Mark Spanbroek
43c0a48245
[tests] move node management into separate module
...
And add a debug option that writes the output of
the node during integration tests to stdout.
2022-05-19 10:38:19 +02:00
Mark Spanbroek
7f9fa0a183
[tests] move ethertest module up one level
...
It's going to be used by both contract and integration tests.
2022-05-19 10:38:19 +02:00