Aarsh Shah
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
frrist
ca697c9aa2
feat(miner deals): create subdir to miner repo for staged deals
2021-07-29 21:08:38 -07:00
Raúl Kripalani
d8c90b91be
address nits.
2021-07-29 04:41:27 -04:00
Raúl Kripalani
c119ab6ed9
fix docs and nits.
2021-07-29 04:39:28 -04:00
Anton Evangelatov
9b7a7713a7
add RuntimeSubsystems API method; use it in lotus-miner info
2021-07-29 04:38:19 -04:00
Raúl Kripalani
d3742048f9
address nits.
2021-07-28 23:56:18 +01:00
Raúl Kripalani
07f40b9488
fix docs and nits.
2021-07-28 20:03:25 +01:00
Anton Evangelatov
de4a847078
add RuntimeSubsystems API method; use it in lotus-miner info
2021-07-28 16:02:05 +03:00
Jiaying Wang
d45b4a7a1f
Merge branch 'master' into chore/cleanup-chain
2021-07-27 17:11:36 -04:00
Łukasz Magiera
9bd312881d
VMSys doesn't belong in chainstore
2021-07-27 15:30:23 +02:00
vyzo
9d25464703
use functional options for hotstore gc, rename MovingGC to FullGC
2021-07-27 09:53:22 +03:00
vyzo
aa0bd51b2c
thread GCFrequency option into the splitstore config
2021-07-26 15:05:57 +03:00
Łukasz Magiera
da5aeda197
Merge branch 'master' into feat/splitstore-hot-messages
2021-07-22 12:58:06 +02:00
vyzo
839b00ab40
rename messagepool ProtectMessages to ForEachPendingMessage
2021-07-20 09:23:36 +03:00
vyzo
ebbaf23af8
support out-of-chain reference protection
2021-07-20 09:02:40 +03:00
vyzo
1b77361301
add option for hotstore message retention
2021-07-17 08:35:35 +03:00
vyzo
e003203bea
implement exposed splitstore
2021-07-15 13:12:10 +03:00
Łukasz Magiera
583a8a13d9
Merge pull request #6629 from filecoin-project/feat/pledge-from-miner-balance
...
Config for collateral from miner available balance
2021-07-13 17:22:00 +02:00
Łukasz Magiera
837322ea59
Merge pull request #6356 from filecoin-project/nonsense/split-market-miner-processes
...
Support standalone miner-market process
2021-07-13 17:16:07 +02:00
Łukasz Magiera
7526a074d9
sealing: collateral buffer / falback config
2021-07-13 17:04:58 +02:00
Łukasz Magiera
c37401a1a3
Merge pull request #6474 from filecoin-project/feat/splitstore-redux
...
Splitstore Enhanchements
2021-07-13 12:43:57 +02:00
Łukasz Magiera
83f2368507
Add CollateralFromMinerBalance config
2021-07-12 14:11:58 +02:00
Anton Evangelatov
056136ef5a
rename argument from url to apiInfo
2021-07-12 11:36:22 +02:00
Anton Evangelatov
d89ddb9315
resolve conflicts
2021-07-12 11:34:37 +02:00
Anton Evangelatov
16784aa2cc
remove pieceProvider from DI; small refactors
2021-07-12 11:30:26 +02:00
vyzo
c0a1cfffa1
rename noopstore to discardstore
2021-07-09 19:19:37 +03:00
Łukasz Magiera
8f5c0c60f5
Config for deal publishing control addresses
2021-07-07 18:00:54 +02:00
Anton Evangelatov
82efe01c70
fixup
2021-07-07 18:00:28 +02:00
Anton Evangelatov
7a78527fde
remove not used sa; cleanup
2021-07-06 17:46:21 +02:00
Anton Evangelatov
10dc90f7fe
addressing comments
2021-07-06 17:33:47 +02:00
Anton Evangelatov
898687ea2e
Update node/modules/storageminer.go
...
Co-authored-by: Łukasz Magiera <magik6k@users.noreply.github.com>
2021-07-06 17:28:52 +02:00
Anton Evangelatov
4be0a7a215
resolve conflicts with master
2021-07-05 13:13:32 +02:00
vyzo
190cb18ab0
housekeeping
...
- remove defunct tracking store implementations
- update splitstore node config
- use mark set type config option (defaulting to mapts); a memory constrained node
may want to use an on-disk one
2021-07-04 18:38:28 +03:00
vyzo
5f7ae1f489
update splistore DI constructor
2021-07-04 18:38:28 +03:00
vyzo
68bc5d2291
skip moving cold blocks when running with a noop coldstore
...
it is a noop but it still takes (a lot of) time because it has to read all the cold blocks.
2021-07-04 18:38:28 +03:00
vyzo
649b7dd162
add config option for hot headers
2021-07-04 18:38:28 +03:00
vyzo
997f2c098b
keep headers hot when running with a noop splitstore
2021-07-04 18:38:28 +03:00
vyzo
04f2e102a1
kill full splitstore compaction, simplify splitstore configuration
2021-07-04 18:38:28 +03:00
vyzo
5cca29d1db
hook noop blockstore for splitstore in DI
2021-07-04 18:38:28 +03:00
Łukasz Magiera
8a94ab676e
storage: Fix FinalizeSector with sectors in stoage paths
2021-07-02 19:54:45 +02:00
Anton Evangelatov
9e85492b85
fix test
2021-07-02 12:24:07 +02:00
Raúl Kripalani
1869de7662
unwire host from storage.Miner.
2021-07-01 13:53:20 +01:00
Łukasz Magiera
c094aa82ec
commit batch: AggregateAboveBaseFee config
2021-07-01 13:33:54 +02:00
Anton Evangelatov
4f0a96c9c7
resolved conflicts
2021-06-30 13:16:52 +02:00
Anton Evangelatov
9ec7cd7239
enable libp2p options
2021-06-30 12:55:43 +02:00
Łukasz Magiera
37c5dd5afc
Miner SimultaneousTransfers config
2021-06-28 14:24:14 +02:00
Łukasz Magiera
c3480dc0e8
Merge remote-tracking branch 'origin/releases' into chore/merge-release
2021-06-24 09:39:11 +02:00
Łukasz Magiera
9521c0b773
Add miner-side MaxDealStartDelay config
2021-06-23 19:45:13 +02:00
Aayush Rajasekaran
616e5688fc
Remove MinPreCommitBatch
2021-06-23 12:30:32 -04:00
Anton Evangelatov
21b51328f9
adding TestDealWithMarketAndMinerNode
2021-06-23 12:44:52 +02:00
Anton Evangelatov
6720463799
resolve merge conflicts
2021-06-22 11:28:23 +02:00
Łukasz Magiera
44de67cf7d
Merge pull request #6175 from filecoin-project/feat/dynamic-retreival-pricing
...
Dynamic Retrieval pricing
2021-06-17 10:25:48 +02:00
Anton Evangelatov
d45bb14015
Merge branch 'master' into nonsense/split-market-miner-processes
2021-06-16 18:49:15 +02:00
Aayush Rajasekaran
520a0091f5
Merge branch 'releases' into release/v1.10.0
2021-06-15 17:40:36 -04:00
Łukasz Magiera
0514f38dc4
Merge remote-tracking branch 'origin/master' into chore/merge-1.10
2021-06-14 13:27:53 +02:00
aarshkshah1992
4419205b0e
fix compilation
2021-06-14 10:10:29 +05:30
Łukasz Magiera
ec06f086ef
sealing: Early finalization option
2021-06-11 11:41:28 +02:00
Anton Evangelatov
beb5bffaf6
fix log.Error; rename RemoteStore
2021-06-09 13:05:54 +02:00
Anton Evangelatov
9f3ec82cc1
initial resolution of conflicts
2021-06-08 13:01:22 +02:00
aarshkshah1992
16166504f4
merged master
2021-06-08 09:17:40 +05:30
Łukasz Magiera
fadc79a487
Merge pull request #6280 from filecoin-project/feat/pieceread-outside-scheduler
...
Bypass task scheduler for reading unsealed pieces
2021-06-07 18:11:44 +02:00
aarshkshah1992
4efaa8d688
unit tests for the remote store Reader
2021-06-07 15:02:52 +05:30
aarshkshah1992
65eb610ec3
docs, logs and green ci
2021-06-07 15:02:49 +05:30
aarshkshah1992
670835fca0
bypass task scheduler for reading unsealed pieces
2021-06-07 15:02:04 +05:30
Lion
e4588aed5c
Fix the doc errors of the sealing config funcs
2021-06-07 12:35:43 +08:00
Anton Evangelatov
8bd09e39ca
resolve merge conflicts
2021-06-04 16:17:00 +02:00
Łukasz Magiera
6d9779ecae
Merge remote-tracking branch 'origin/master' into feat/nv13-1.11
2021-06-02 15:07:13 +02:00
Dirk McCormick
8997ed508b
feat: update to markets-v1.4.0
2021-06-01 10:16:12 -06:00
Anton Evangelatov
e4136b0d42
add modules.StorageAuthWithURL to set correct token
2021-06-01 11:42:28 +02:00
Aayush Rajasekaran
9ceee6028b
More tweaking of context handling in the messagepool
2021-05-31 18:13:23 -04:00
Aayush Rajasekaran
1f03a618f9
Plumb contexts through
2021-05-31 18:13:23 -04:00
Anton Evangelatov
d195a12565
Merge branch 'master' into nonsense/split-market-miner-processes
2021-05-31 11:26:11 +02:00
Łukasz Magiera
1e4456138e
Merge master into feat/nv13
2021-05-27 12:28:20 +02:00
Anton Evangelatov
9979de24db
logs and defaults
2021-05-26 12:47:21 +02:00
aarshkshah1992
dc6dbc9a11
dpr changes and test based on new unsealing PR
2021-05-22 22:40:21 +05:30
aarshkshah1992
bd9959070e
unit tests for the remote store Reader
2021-05-20 15:25:46 -06:00
aarshkshah1992
73613ee883
docs, logs and green ci
2021-05-20 15:25:46 -06:00
aarshkshah1992
2a40c802ea
bypass task scheduler for reading unsealed pieces
2021-05-20 15:25:46 -06:00
Anton Evangelatov
4693c61305
re-arrange NodeBuilder and add storageminer_svc
2021-05-20 13:10:14 +02:00
Anton Evangelatov
cb603c62d9
update retrievaladapter ; add piece_provider
2021-05-20 12:49:53 +02:00
Anton Evangelatov
2aad7b6979
update sectorstorage.New (Manager) interface
2021-05-20 12:32:29 +02:00
Dirk McCormick
706fdcbb80
feat: increase data transfer timeouts
2021-05-19 12:56:07 -06:00
Łukasz Magiera
3a99f95f8e
Merge pull request #6149 from filecoin-project/feat/markets-1.3
...
Update to markets 1.3
2021-05-19 20:51:33 +02:00
Łukasz Magiera
a5677d1b7a
ffiwrapper: Separate Prover interface
2021-05-19 15:20:23 +02:00
Łukasz Magiera
81b5d8c671
Make things build with both batchers
2021-05-18 16:53:49 +02:00
Łukasz Magiera
c7ba083fa4
Import precommit batcher
2021-05-18 16:51:06 +02:00
vyzo
7512748b56
wire in sealing config values
2021-05-18 15:31:52 +03:00
Łukasz Magiera
506f39b294
WIP: Integrate FIP0013
2021-05-11 22:10:29 -04:00
Jakub Sztandera
18cbdcfc81
Disable checks API on Lotus Lite
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2021-05-07 17:19:17 +02:00
Jakub Sztandera
d777680449
Fix mpool.GetActor for lite node
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2021-05-07 15:30:06 +02:00
vyzo
ed61642b3a
implement NodeStatus API
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2021-05-07 15:30:04 +02:00
Dirk McCormick
5b1fab8ffa
feat: markets v1.3
2021-05-06 09:49:44 +02:00
Jakub Sztandera
77d004ec06
Fix nonce getting on Lotus lite
...
Resolves #5593 #5995
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2021-04-15 19:57:09 +02:00
Łukasz Magiera
e76935147f
Merge remote-tracking branch 'origin/master' into feat/v1-api
2021-04-13 14:24:22 +02:00
Łukasz Magiera
88bdb591d5
Merge pull request #6003 from filecoin-project/fix/fbs-di
...
Fix fallback chainstore
2021-04-10 01:58:38 +02:00
Łukasz Magiera
7e4cb9da84
Fix fallback chainstore
2021-04-09 16:11:02 +02:00
Dirk McCormick
4a3261a986
feat: go-fil-markets-v1.2.5-rc1
2021-04-08 14:34:35 +02:00
Łukasz Magiera
81bd27911f
Propagate StateMsg api changes
2021-04-05 19:56:53 +02:00
Łukasz Magiera
deb2b90b6a
Fix lotus/miner build
2021-04-05 13:23:46 +02:00
Łukasz Magiera
1a5c4d70f4
Merge remote-tracking branch 'origin/master' into feat/v1-api
2021-04-01 15:33:37 +02:00