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
Steven Allen
3235dbfaee
fix genesis for actors v2
2021-08-11 13:30:15 -07:00
Aayush Rajasekaran
a52352b13a
PreCommitPolicy: Don't try to align expirations on proving period boundaries
2021-08-11 12:44:12 -04:00
ZenGround0
b914e95f34
revert pricelist by version to pricelist by epoch
2021-08-11 09:49:23 -04:00
Steven Allen
65e3540d03
Merge pull request #7007 from filecoin-project/fix/panic-less
...
Dont panic if input is bad
2021-08-10 16:22:56 -07:00
ZenGround0
234030218c
Fix actor policy codegen
2021-08-10 13:32:00 -04:00
ZenGround0
6da26dcefc
Remove network version panic
2021-08-10 13:07:30 -04:00
whyrusleeping
bfd69f5381
WIP: dont panic if input is bad
2021-08-09 12:17:54 +02:00
Steven Allen
5a321f970e
fix: vet actors shims
...
1. Check error in EraseAllUnproven
2. Avoid dead code.
2021-08-06 14:56:29 -07:00
Steven Allen
fe74311209
Merge branch 'master' into feat/print-runtime-send-update
2021-07-28 18:55:38 -07:00
frrist
256d12773b
polish(errors): better state tree errors
2021-07-28 17:50:22 -07:00
ZenGround0
e09a25ca68
Remove unnecessary ret log
2021-07-28 18:26:29 -04:00
ZenGround0
a968784908
fix new panics in invoker_test.go
2021-07-28 18:26:29 -04:00
ZenGround0
0202192fc0
Log more call context during errors
2021-07-28 18:26:29 -04:00
Łukasz Magiera
389f71251c
Remove townhall
2021-07-28 17:58:46 +02:00
Łukasz Magiera
c57c20c6e4
fix lint
2021-07-27 15:58:18 +02:00
Łukasz Magiera
05a3710288
chainstore: Fix test build
2021-07-27 15:53:47 +02:00
Łukasz Magiera
ae63a4b33b
fix lotus-sim build
2021-07-27 15:49:01 +02:00
Łukasz Magiera
ce82f2827b
stmgr: Put actor state accessors in actors.go
2021-07-27 15:43:11 +02:00
Łukasz Magiera
e7d73cbe56
vm: Remove unused ActorBalance
2021-07-27 15:34:39 +02:00
Łukasz Magiera
9bd312881d
VMSys doesn't belong in chainstore
2021-07-27 15:30:23 +02:00
Łukasz Magiera
ca1cd741c3
stmgr: Split stmgr.go into smaller subfiles
2021-07-27 15:15:50 +02:00
Łukasz Magiera
50b217817e
stmgr: Split upgrade code from upgrade runtime
2021-07-27 14:48:30 +02:00
Łukasz Magiera
6ba42e3e6b
chainstore: refactor store.go into more subfiles
2021-07-27 14:41:36 +02:00
Peter Rabbitson
ed387b43cc
Bump go-multihash, adjust test for supported version
2021-07-26 17:50:19 +02:00
Aayush Rajasekaran
104626acb7
ValidateBlock: Assert that block header height's are greater than their parents
2021-07-26 11:09:23 -04:00
Łukasz Magiera
f9752d8a0a
Merge branch 'master' into feat/compact-sectors-numbers-cmd
2021-07-22 19:00:33 +02:00
Łukasz Magiera
0656b62176
Merge remote-tracking branch 'origin/master' into feat/compact-sectors-numbers-cmd
2021-07-22 16:04:25 +02:00
ZenGround0
d6a8a7aeb8
Remove validation because of sync TestDrandNull test
2021-07-22 09:49:47 -04:00
ZenGround0
4cd05fa39c
Lint
2021-07-22 09:49:47 -04:00
ZenGround0
ed844c5283
Use current ntwk version in mpool message check
2021-07-22 09:49:47 -04:00
ZenGround0
9fc4a25bd1
Fix tests with bad network version refs
2021-07-22 09:49:47 -04:00
ZenGround0
cbc07cb939
Add 6.5 to VersionForNetwork commit updated docs
2021-07-22 09:49:47 -04:00
ZenGround0
545cc723e0
Fix test
2021-07-22 09:49:47 -04:00
ZenGround0
47b5afa84b
Add version six and a half
2021-07-22 09:49:47 -04:00
ZenGround0
f49a8248f0
PriceListByVersion
2021-07-22 09:49:47 -04:00
Łukasz Magiera
3006dda786
Merge pull request #6760 from ipfs-force-community/feat/cache_blkmsg_events
...
cache loaded block messages
2021-07-22 13:54:51 +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
hunjixin
eef3fd5d7a
cache loaded block messages
2021-07-19 15:13:53 +08:00
Steven Allen
cf81c897df
test: handle null blocks in TestForkRefuseCall
...
Otherwise, this fails on rare occasions.
2021-07-14 17:41:24 -07:00
Anton Evangelatov
d89ddb9315
resolve conflicts
2021-07-12 11:34:37 +02:00
Łukasz Magiera
79b0bfb272
policy: Add a docstring to SetProviderCollateralSupplyTarget
2021-07-08 18:56:03 +02:00
Łukasz Magiera
2dc27d6ab4
itests: Fix deal provider collateral flakiness
2021-07-07 19:41:46 +02:00
Anton Evangelatov
6b014f57e5
pass Subsystems to StorageMiner option; add enableLibp2p bool in Settings
2021-07-07 13:56:37 +02:00
Anton Evangelatov
ff2772a58c
resolved conflicts
2021-07-06 16:00:41 +02:00
Łukasz Magiera
97207df705
Merge pull request #6639 from filecoin-project/frrist/context-in-statetree-diff
...
polish(statetree): accept a context in statetree diff for timeouts
2021-07-05 17:30:31 +02:00
Anton Evangelatov
4be0a7a215
resolve conflicts with master
2021-07-05 13:13:32 +02:00
Łukasz Magiera
c094aa82ec
commit batch: AggregateAboveBaseFee config
2021-07-01 13:33:54 +02:00
frrist
d02a2a2cfa
polish(statetree): accept a context in statetree diff for timeouts
...
- this operation can take a while, this changes gives users the option
to abort if it takes "too long".
2021-06-30 16:40:43 -07: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
c10d99e3fd
multiwallet: Don't fail if key is found in any wallet
2021-06-25 12:17:53 +02:00
Łukasz Magiera
ebd746cdec
Merge pull request #6406 from filecoin-project/feat/lotus-sim
2021-06-24 18:20:43 +02:00
Steven Allen
d6abcff63c
fix(lotus-sim): apply code review from magik6k
...
Co-authored-by: Łukasz Magiera <magik6k@users.noreply.github.com>
2021-06-21 09:05:48 -07:00
Łukasz Magiera
b37a66c7c9
Merge remote-tracking branch 'origin/release/v1.10.0' into chore/merge-1.10
2021-06-21 17:03:03 +02:00
Steven Allen
eb0a15faf0
fix(genesis): set initial balances to 0
2021-06-18 15:44:37 -07:00
Steven Allen
b30b5dd629
fix: move actors changes to template files
2021-06-18 15:44:37 -07:00
Steven Allen
eb2b706156
chore: fix lint errors in simulation
2021-06-18 15:44:37 -07:00
Steven Allen
22267eb45d
feat(lotus-sim): split info command file
2021-06-18 15:44:36 -07:00
Steven Allen
8a215df46b
fix(statetree): make StateTree.ForEach take layers into account
...
This likely isn't used anywhere, but this _should_ take layers into
account (and I kind of just assumed it did).
2021-06-18 15:44:36 -07:00
Steven Allen
e7b1e09ade
feat(multisig): expose ApproveReturn
2021-06-18 15:44:35 -07:00
Steven Allen
0075abea5e
fix(vm): always specify an ActorErr when ApplyMessage fails.
...
This case shouldn't actually happen, but we might as well be consistent.
2021-06-18 15:44:35 -07:00
Steven Allen
e2f5c494b0
feat: implement lotus-sim
2021-06-18 15:44:34 -07:00
Łukasz Magiera
2c2c37a138
chainstore: Don't take heaviestLk with backlogged reorgCh
2021-06-18 19:18:51 +02:00
Steven Allen
526674cefa
fix: pick the correct partitions-per-post limit
2021-06-16 16:56:30 -07:00
Steven Allen
653b1d8231
fix: pick the correct partitions-per-post limit
2021-06-16 16:53:52 -07:00
Aayush Rajasekaran
35f76f58df
Merge pull request #6309 from filecoin-project/feat/better_mining_projection_and_accuracy
...
Adjust various CLI display ratios to arbitrary precision
2021-06-16 17:48:23 -04:00
Aayush Rajasekaran
b9f864ba9e
Expand on Drand change testing
2021-06-16 14:17:55 -04:00
Peter Rabbitson
429419f210
Forgotten deadcode
2021-06-16 13:38:39 -04:00
Peter Rabbitson
3acd846dcd
Fix logging around mineOne
...
- A nil MiningBaseInfo is *NOT* unexpected: it happens when one is in penalty
https://github.com/filecoin-project/lotus/blob/v1.9.0/chain/stmgr/utils.go#L500-L502
- Remove the log from IsRoundWinner(): all we care about is the randbase epoch
2021-06-16 13:38:35 -04: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
Łukasz Magiera
534badad2a
mpool: Add more metrics
2021-06-11 13:19:26 +02:00
wangchao
626d482990
correct the change of message size limit
2021-06-09 18:05:16 -04:00
Jakub Sztandera
18043810c0
Create MaxMessageSize constant
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2021-06-09 14:24:42 -04:00
Jakub Sztandera
0cd0faa6fb
Increase message size limit
...
Add test
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2021-06-09 14:24:38 -04:00
Aayush Rajasekaran
dede1b4758
Merge branch 'release/v1.10.0' into asr/merge-release
2021-06-09 14:05:41 -04:00
Aayush Rajasekaran
b0c9dd49f0
Fund miners with the aggregate fee when ProveCommitting
2021-06-09 13:08:54 -04:00
wangchao
4c87818de1
correct the change of message size limit
2021-06-09 15:19:35 +08:00
Jakub Sztandera
39bab148b8
Create MaxMessageSize constant
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2021-06-08 16:07:43 +02:00
Jakub Sztandera
4c605c349f
Increase message size limit
...
Add test
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2021-06-08 15:20:10 +02:00
Łukasz Magiera
c98b6f6408
Merge pull request #6389 from filecoin-project/frrist/execmonitor-interface
...
polish(stmgr): define ExecMonitor for message application callback
2021-06-08 12:30:52 +02:00
Peter Rabbitson
29d7561dd1
Fix logging of stringified CIDs double-encoded in hex
2021-06-08 00:05:48 +02:00
frrist
0519c77c24
polish(stmgr): define ExecMonitor for message applicaiton callback
2021-06-07 11:03:18 -07:00
Aayush Rajasekaran
c66d66dfcb
Fix state manager::Call()
2021-06-03 17:09:42 -04:00
Aayush Rajasekaran
a41a1cbd93
Gate runtime's GetRandomnessFromBeacon on HyperdriveHeight, not network version
2021-06-03 15:47:49 -04:00
Łukasz Magiera
c5797482b2
Revert CallWithGas hack
2021-06-03 18:51:01 +02:00
Łukasz Magiera
78c128f6a3
chain: Better logging in sync tests
2021-06-03 10:42:26 +02:00
Łukasz Magiera
ee21351aa0
statetree: Add missing version defs
2021-06-01 21:16:01 +02:00
Łukasz Magiera
a676da8a7e
Merge remote-tracking branch 'origin/master' into feat/nv13-1.11
2021-06-01 21:07:04 +02:00
Łukasz Magiera
dc642d0b7b
Merge remote-tracking branch 'origin/feat/nv13' into feat/nv13-1.11
2021-06-01 21:06:58 +02:00
Łukasz Magiera
fa8beeac2b
Merge pull request #6371 from filecoin-project/fix/robustify-commit-batcher
...
Fix tests
2021-06-01 21:01:03 +02:00
Aayush Rajasekaran
39f2246ae6
Use build.UpgradeHyperDriveHeight directly when sourcing randomness in VM
2021-06-01 14:43:46 -04:00
Aayush Rajasekaran
c8cef1cb7e
Fix chain/gen randomness getting (test only)
2021-06-01 13:44:08 -04:00
Łukasz Magiera
66c1554670
vm syscalls: fix typo
2021-06-01 19:23:12 +02:00
Aayush Rajasekaran
49fce48c3e
Tweak CallVM to use current epoch, not future epoch
2021-06-01 12:43:16 -04:00
Łukasz Magiera
5a9e6c8142
Merge pull request #6364 from filecoin-project/asr/resolve-messages
...
Improve address resolution for messages
2021-06-01 14:38:31 +02:00
Aayush Rajasekaran
2ab24b358d
Fix supported proof type manipulations for v5 actors
2021-05-31 18:50:29 -04:00
Mimir
ee508120d9
Typo fix in error message: "pubusb" -> "pubsub"
2021-05-31 15:30:10 -07:00