Commit Graph
100 Commits
Author SHA1 Message Date
Aarsh Shah d0af0eff9f thread safe piecereader 2022-03-29 19:41:06 +05:30
Aarsh Shah f0f2b3e1f4 changes as per review 2022-02-22 14:22:51 +04:00
Aarsh Shah 8e62fec1d3 address review 2022-02-22 13:48:39 +04:00
Aarsh Shah 56926b349a changes as per review 2022-02-21 18:27:51 +04:00
Aarsh Shah 3fd83e9345 dagstore size bloating fix 2022-02-21 13:57:29 +04:00
Aarsh Shah c2522e8ca9 idempotent add piece 2022-02-21 13:51:43 +04:00
Aarsh Shah 1245871004 guard with ctx 2022-02-21 11:56:49 +04:00
Aarsh Shah 26707a5e03 make add piece idempotent 2022-02-21 11:51:25 +04:00
Aarsh Shah e3f5b7c59f update dagstore top level index db 2022-02-18 14:00:01 +04:00
Aarsh Shah 399a1afd94 Merge remote-tracking branch 'origin/master' into feat/cid-to-piece-idx 2022-02-08 12:37:57 +04:00
Aarsh Shah eb8296120b changes to mesh creation code 2022-02-04 13:58:47 +04:00
Aarsh Shah daac7f2988 fix lint 2022-02-04 13:55:26 +04:00
Aarsh Shah ca46a79144 protect full node connection 2022-02-04 13:04:07 +04:00
Aarsh Shah e155eb9fa3 Merge pull request #8016 from filecoin-project/nonsense/add-fullnode-api
add indexProvider host to markets
2022-02-04 12:56:36 +04:00
Aarsh Shah 4691b2b809 changes to the indexer message relay PR 2022-02-04 12:15:01 +04:00
Aarsh Shah 3ecf478ff0 Merge pull request #8026 from gammazero/feat/cid-to-piece-idx
Lotus chain nodes relay indexer pubsub messages
2022-02-04 12:05:46 +04:00
Aarsh Shah 211ad166af update markets deps 2022-01-26 15:53:27 +04:00
Aarsh Shah 4dd93e5bbb update deps 2022-01-26 10:58:44 +04:00
Aarsh Shah 8d062bc880 update index provider 2022-01-24 14:26:17 +04:00
Aarsh Shah 9e2d46b33f Merge remote-tracking branch 'origin/master' into feat/cid-to-piece-idx 2022-01-23 10:32:54 +04:00
Aarsh Shah 7508d96327 fix lint 2022-01-20 16:47:15 +04:00
Aarsh Shah b8bf2af3e3 upgrade on master 2022-01-20 16:34:13 +04:00
Aarsh Shah 9ee940098d Merge remote-tracking branch 'origin/master' into feat/cid-to-piece-idx 2022-01-20 16:21:48 +04:00
Aarsh Shah 9e40e246ec deps update 2022-01-19 11:36:07 +04:00
Aarsh Shah 8459d75597 update index provider config 2022-01-13 16:15:43 +04:00
Aarsh Shah b780a64ed9 send markets multiaddrs to the engine 2022-01-13 15:31:15 +04:00
Aarsh Shah 8c8652e7bb add a new cli 2022-01-12 18:06:48 +04:00
Aarsh Shah 051d993d62 update markets 2022-01-12 17:48:12 +04:00
Aarsh Shah 07c842d6e0 lotus soup green 2022-01-12 17:43:56 +04:00
Aarsh Shah b9d3585f4c get tests working 2022-01-12 16:55:45 +04:00
Aarsh Shah 05afaf6094 make gen 2022-01-12 16:03:39 +04:00
Aarsh Shah 3a52f05692 green ci 2022-01-12 15:53:15 +04:00
Aarsh Shah 64bf3fccd2 update index provider dep 2022-01-12 15:05:27 +04:00
Aarsh Shah dec79c70a1 fix compilation 2022-01-12 15:03:46 +04:00
Aarsh Shah 21a8f71859 compiles 2022-01-12 14:59:09 +04:00
Aarsh Shah edfc2c215c Merge remote-tracking branch 'origin/main' into feat/cid-to-piece-idx 2022-01-12 12:48:54 +04:00
Aarsh Shah 7655e660f3 integrate store-the-hash 2021-11-18 12:07:12 +04:00
Aarsh Shah 60fe55cdc0 fix lint and gen 2021-11-17 15:25:25 +04:00
Aarsh Shah 21e27b8034 Merge pull request #7622 from filecoin-project/feat/indexer-provider
Integrate indexer provider
2021-11-17 15:11:51 +04:00
Aarsh Shah 8d3017febb make gen should work 2021-11-17 15:02:11 +04:00
Aarsh Shah d196c236b8 fix lint 2021-11-17 14:55:09 +04:00
Aarsh Shah f8c675bc5e green tests 2021-11-17 14:48:28 +04:00
Aarsh Shah caf3cfa7d8 Merge branch 'feat/cid-to-piece-idx' into feat/indexer-provider 2021-11-17 11:43:49 +04:00
Aarsh Shah bfee6699d2 update go mod and inject store the hash index in dagstore 2021-11-17 11:42:14 +04:00
Aarsh Shah 189f5f8aae fix deals test 2021-11-12 09:43:42 +01:00
Aarsh Shah 4d87f16e95 better comparision in test 2021-11-12 09:43:42 +01:00
Aarsh Shah 053317e334 test for retrieval by any cid 2021-11-12 09:43:42 +01:00
Aarsh Shah 7694f895c2 update lotus soup dep 2021-09-23 09:15:47 +04:00
Aarsh Shah 9a07c2fd38 revert go car update 2021-09-22 12:55:22 +04:00
Aarsh Shah 44ed3dc46b update go mod 2021-09-22 10:44:42 +04:00
Aarsh Shah 7863a269ad fix lotus-soup 2021-09-21 15:31:16 +04:00
Aarsh Shah a80bc34d59 fix build 2021-09-21 15:23:01 +04:00
Aarsh Shah 89ac8b09b5 update libp2p 2021-09-21 15:10:04 +04:00
Aarsh Shah 7739051725 Merge pull request #7177 from filecoin-project/feat/fix-send-nil-throttle
Fix throttling bug
2021-08-25 16:44:25 +05:30
Aarsh Shah 928ac2191b fix throttling bug 2021-08-25 16:19:02 +05:30
Aarsh Shah 5993257eb1 Merge pull request #7169 from filecoin-project/feat/dagstore-zero-concurrency
Ignore nil throttler
2021-08-24 13:20:49 +05:30
Aarsh Shah e1a056db46 ignore nil throttler 2021-08-24 10:42:00 +05:30
Aarsh Shah 68269b23fb Merge pull request #7160 from filecoin-project/feat/update-markets
Update markets, dt and graphsync
2021-08-23 15:10:24 +05:30
Aarsh Shah b096887b16 update deps 2021-08-23 14:45:17 +05:30
Aarsh Shah b3e73e4dad update markets, dt and graphsync 2021-08-23 11:23:11 +05:30
Aarsh Shah 88f5bcdb63 Remove replace directive for multihash dep (#7113) 2021-08-18 11:00:29 +01:00
d7076778e2 integrate DAG store and CARv2 in deal-making (#6671)
This commit removes badger from the deal-making processes, and
moves to a new architecture with the dagstore as the cental
component on the miner-side, and CARv2s on the client-side.

Every deal that has been handed off to the sealing subsystem becomes
a shard in the dagstore. Shards are mounted via the LotusMount, which
teaches the dagstore how to load the related piece when serving
retrievals.

When the miner starts the Lotus for the first time with this patch,
we will perform a one-time migration of all active deals into the
dagstore. This is a lightweight process, and it consists simply
of registering the shards in the dagstore.

Shards are backed by the unsealed copy of the piece. This is currently
a CARv1. However, the dagstore keeps CARv2 indices for all pieces, so
when it's time to acquire a shard to serve a retrieval, the unsealed
CARv1 is joined with its index (safeguarded by the dagstore), to form
a read-only blockstore, thus taking the place of the monolithic
badger.

Data transfers have been adjusted to interface directly with CARv2 files.
On inbound transfers (client retrievals, miner storage deals), we stream
the received data into a CARv2 ReadWrite blockstore. On outbound transfers
(client storage deals, miner retrievals), we serve the data off a CARv2
ReadOnly blockstore.

Client-side imports are managed by the refactored *imports.Manager
component (when not using IPFS integration). Just like it before, we use
the go-filestore library to avoid duplicating the data from the original
file in the resulting UnixFS DAG (concretely the leaves). However, the
target of those imports are what we call "ref-CARv2s": CARv2 files placed
under the `$LOTUS_PATH/imports` directory, containing the intermediate
nodes in full, and the leaves as positional references to the original file
on disk.

Client-side retrievals are placed into CARv2 files in the location:
`$LOTUS_PATH/retrievals`.

A new set of `Dagstore*` JSON-RPC operations and `lotus-miner dagstore`
subcommands have been introduced on the miner-side to inspect and manage
the dagstore.

Despite moving to a CARv2-backed system, the IPFS integration has been
respected, and it continues to be possible to make storage deals with data
held in an IPFS node, and to perform retrievals directly into an IPFS node.

NOTE: because the "staging" and "client" Badger blockstores are no longer
used, existing imports on the client will be rendered useless. On startup,
Lotus will enumerate all imports and print WARN statements on the log for
each import that needs to be reimported. These log lines contain these
messages:

- import lacks carv2 path; import will not work; please reimport
- import has missing/broken carv2; please reimport

At the end, we will print a "sanity check completed" message indicating
the count of imports found, and how many were deemed broken.

Co-authored-by: Aarsh Shah <aarshkshah1992@gmail.com>
Co-authored-by: Dirk McCormick <dirkmdev@gmail.com>

Co-authored-by: Raúl Kripalani <raul@protocol.ai>
Co-authored-by: Dirk McCormick <dirkmdev@gmail.com>
2021-08-16 23:34:32 +01:00
Aarsh Shah 7b1a82a3cc update deps for logging 2021-08-12 22:25:33 -04:00
aarshkshah1992 0d06527507 more logging in data transfer and markets 2021-08-12 22:25:07 -04:00
Aarsh Shah 029ba39fd9 update deps for logging 2021-07-29 12:19:37 -04:00
aarshkshah1992 0daee83735 more logging in data transfer and markets 2021-07-29 12:08:41 -04:00
Aarsh Shah 83a4d7dc1c Merge pull request #6941 from filecoin-project/feat/update-sm-logging
Update state machine deps for logging
2021-07-29 20:46:41 +05:30
Aarsh Shah 9549087ba9 update deps for logging 2021-07-29 20:04:50 +05:30
aarshkshah1992 973476930e more logging in data transfer and markets 2021-07-29 15:28:08 +05:30
aarshkshah1992 add113f585 use multierror 2021-07-05 16:08:51 +05:30
aarshkshah1992 44985722d2 changes as per review 2021-07-05 15:53:41 +05:30
aarshkshah1992 8ecdc929b4 get retrieval pricing input should not error out on a deal state fetch 2021-07-05 09:34:56 +05:30
aarshkshah1992 9002fcbe47 local unsealed file wont have the unsealed piece 2021-06-17 09:46:29 +05:30
aarshkshah1992 4419205b0e fix compilation 2021-06-14 10:10:29 +05:30
Aarsh Shahandraulk bed2bc73a3 Update node/config/def.go
Co-authored-by: raulk <raul@protocol.ai>
2021-06-14 09:42:22 +05:30
aarshkshah1992 3d086dfb43 changes as per review 2021-06-14 09:40:34 +05:30
aarshkshah1992 ea9bed2746 undo ffi change 2021-06-11 16:22:09 +05:30
aarshkshah1992 fed5afa704 merge master 2021-06-11 09:35:20 +05:30
aarshkshah1992 4e9bb16532 changes as per review 2021-06-08 10:09:27 +05:30
aarshkshah1992 212d0fc264 fix remote store diff 2021-06-08 09:54:45 +05:30
aarshkshah1992 e4e60d7af4 fix mock 2021-06-08 09:37:12 +05:30
aarshkshah1992 16166504f4 merged master 2021-06-08 09:17:40 +05:30
aarshkshah1992 7124cd5149 fix lotus soup build 2021-06-07 19:33:16 +05:30
aarshkshah1992 ddd9bf610e fix CI 2021-06-07 16:45:52 +05:30
aarshkshah1992 1a90d3bbb5 update ffi 2021-06-07 16:12:39 +05:30
aarshkshah1992 21e6b50294 finished rebasing PR 2021-06-07 16:02:15 +05:30
aarshkshah1992 8d9cef17af changes as per review 2021-06-07 15:03:09 +05:30
aarshkshah1992 2a134887c3 logs to debug read & unseal 2021-06-07 15:03:09 +05:30
aarshkshah1992 ec6a49693f logs to debug read and unseal 2021-06-07 15:03:09 +05:30
aarshkshah1992 207f0d901a integration test should remove unsealed files 2021-06-07 15:03:09 +05:30
aarshkshah1992 73f7825fbb clean up logging 2021-06-07 15:03:09 +05:30
aarshkshah1992 3b792a32c3 better logging 2021-06-07 15:03:09 +05:30
aarshkshah1992 22f36483cb more logging 2021-06-07 15:03:09 +05:30
aarshkshah1992 acfa3d7370 finish integration tests 2021-06-07 15:03:09 +05:30
aarshkshah1992 ad4b182bfe remove read task type and run gen and docsgen 2021-06-07 15:03:06 +05:30
aarshkshah1992 35a0dbfa8c fix go mod 2021-06-07 15:02:52 +05:30
aarshkshah1992 4efaa8d688 unit tests for the remote store Reader 2021-06-07 15:02:52 +05:30
aarshkshah1992 0d88800eb9 use mockgen 2021-06-07 15:02:52 +05:30
aarshkshah1992 77b5e8d045 use an actual worker in the integration tests 2021-06-07 15:02:52 +05:30
aarshkshah1992 74372d3e81 fix linting problems 2021-06-07 15:02:52 +05:30