Steven Allen
3846170302
refactor events system
2021-08-30 16:43:21 -07:00
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
ZenGround0
6da26dcefc
Remove network version panic
2021-08-10 13:07:30 -04:00
Jakub Sztandera
a5bcf8b5b2
Add nolint
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2021-07-27 09:10:41 -07:00
Jakub Sztandera
ab71bc0e78
Don't test extra as we don't support it
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2021-07-27 09:10:41 -07:00
Jakub Sztandera
26da526379
Verify Voucher locks in VoucherValidUnlocked
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2021-07-27 09:10:41 -07:00
Raúl Kripalani
63f929541f
itests: fix gateway tests parameters.
2021-05-21 17:20:56 +01:00
Łukasz Magiera
e8f28d7b9f
Fix tests
2021-04-06 12:24:58 +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
f4e46c9003
implement v1 api with api modules
2021-04-03 13:20:50 +02:00
Łukasz Magiera
53f915d155
Import secp sigs in paych tests
2021-03-25 12:28:53 +01:00
whyrusleeping
cbc7f1c244
fix paychmgr constructor to take an easier to implement interface
2021-03-12 00:39:20 -08:00
whyrusleeping
bf42a3be5e
move DI stuff for paychmgr into modules
2021-03-11 17:35:31 -08:00
Łukasz Magiera
26399dba70
Update markets, cbor-gen with soft map decoding
2021-02-19 20:11:43 +01:00
Łukasz Magiera
0c6aef221d
Fix error logging format strings
2021-02-11 12:00:26 +01:00
Łukasz Magiera
c59e2fea5b
Use correct contexts in storageadapter
2021-02-02 18:43:49 +01:00
Dirk McCormick
dc8ff27b36
fix: when waiting for deal commit messages, ignore unsuccessful messages
2020-12-14 12:30:52 +01:00
Dirk McCormick
9745f676ed
fix: race in paych manager when req context is cancelled
2020-11-11 14:40:48 +01:00
Dirk McCormick
79a8ff04fd
refactor: simplify chain event Called API
2020-10-30 14:00:32 +01:00
Dirk McCormick
5ed57d34f0
fix: race in paych manager add funds
2020-10-26 11:09:56 +01:00
Dirk McCormick
92942d44d1
feat: lite-mode - market storage and retrieval clients
2020-10-23 15:02:26 +02:00
Steven Allen
bcabe7b3b5
migrate methods to abstracted methods
...
Method numbers never change anyways. At worst, we'll deprecate old methods and
have to explicitly import them from the correct actors version to use them.
2020-10-21 12:18:37 -07:00
Steven Allen
4e730b5ec8
port to v2 imports
2020-10-21 12:16:23 -07:00
Łukasz Magiera
2f70a91665
Merge remote-tracking branch 'origin/master' into next
2020-10-06 23:54:59 +02:00
Aayush Rajasekaran
b5907c665b
Fix test
2020-10-06 03:43:20 -04:00
Steven Allen
9621dbb4f1
fix tests to use v2 types
2020-10-05 13:27:34 -07:00
Steven Allen
8292d60196
Merge branch 'master' into asr/spec-v1
2020-10-02 18:03:03 -07:00
Dirk McCormick
594ec8855c
fix: read lane state from chain as well as datastore
2020-10-01 12:08:11 +02:00
Dirk McCormick
e2ecc35dff
test: add test for voucher after add-funds
2020-10-01 11:35:41 +02:00
Dirk McCormick
9dc75a7bc4
fix: verify voucher amount check
2020-10-01 11:35:41 +02:00
Steven Allen
2e9915ac28
move common from message param into message builder constructor
2020-09-30 10:58:34 -07:00
Steven Allen
4c60d7b5ce
abstract over paych messages
2020-09-30 10:04:10 -07:00
Steven Allen
23b729a056
remove proof parameter from payment channels
...
It never worked properly, and will be removed in actors v2.
2020-09-30 09:35:42 -07:00
Steven Allen
233d8a9b72
update even more imports
2020-09-28 14:25:58 -07:00
Aayush Rajasekaran
a876a0ba44
Use actor state addresses
2020-09-23 02:32:40 -04:00
Aayush Rajasekaran
476e7992e8
Add an error return to all actor state interface methods
2020-09-23 01:51:38 -04:00
Steven Allen
d33dd4f7bc
more renames
2020-09-21 16:01:29 -07:00
Steven Allen
63f026f7c3
migrate some more imports
2020-09-21 15:24:45 -07:00
Steven Allen
1bf3b4989d
rename imports to match actors code
...
`sed -i 's/\bv0\(\w\)\(\w*\)/\L\1\E\20/g' **/*.go`
2020-09-18 14:59:27 -07:00
hannahhoward
05c11531b1
feat(paych): convert paych actor
...
build abstraction for paych actor and switch to using it in payment channel manager and state
predicates
2020-09-15 21:06:04 -07:00
Aayush Rajasekaran
39755a294a
Update to specs v0.9.6
2020-09-07 15:48:41 -04:00
Dirk McCormick
51ef39592f
feat: paych - get available funds by address or by from/to
2020-09-04 13:44:09 +02:00
Dirk McCormick
8423325a6e
refactor: paych - use channel accessor from/to instead of passing them around as params
2020-09-03 15:31:49 +02:00
Dirk McCormick
1d3a21f6c8
docs: paych - correct comments on store fields
2020-09-03 08:22:40 +02:00
Dirk McCormick
3daa0b5e63
fix: paych - clarify behaviour of current available funds for non-existent channel
2020-09-03 08:20:08 +02:00
Dirk McCormick
2c98bf0cc7
feat: PaychAvailableFunds API method
2020-09-02 14:31:32 +02:00
Dirk McCormick
340d11be38
fix: check voucher spendable should take into account submitted vouchers
2020-08-25 12:51:29 +02:00
Łukasz Magiera
fda038cd89
Merge pull request #3168 from filecoin-project/fix/paych-chk-vchr
...
Payment channel check voucher should get inbound channel from state
2020-08-24 23:04:34 +02:00
Łukasz Magiera
2f6f978cd5
Merge pull request #3111 from filecoin-project/fix/paych-addvchr-chk
...
paych: check To address is owned by wallet for inbound channels
2020-08-24 23:02:10 +02:00
Łukasz Magiera
ae19b8ebfd
Merge pull request #3146 from filecoin-project/feat/paych-cli-voucher-tests
...
paych: modify `lotus paych voucher best-spendable` to output _all_ best vouchers
2020-08-24 22:59:20 +02:00
anorth
4ce71bce2d
Change Message.Version to be a uint64
2020-08-20 14:37:21 +10:00
Dirk McCormick
4a3c273072
fix: paych - check wallet for key for channel To address
2020-08-19 18:56:51 -04:00
Dirk McCormick
d317835535
fix: paych check voucher should get inbound channel from state
2020-08-19 09:17:08 -04:00
Dirk McCormick
d1592b01c3
feat: paych cli voucher tests
2020-08-18 11:33:04 -04:00
Dirk McCormick
b25215e31b
fix: paych add voucher - for inbound voucher check channel To address is owned by wallet
2020-08-17 11:13:13 -04:00
Dirk McCormick
536b2ad9d7
fix: paych - bug with allocating lane
2020-08-13 10:14:11 -04:00
Steven Allen
cac3d07abb
Fix payment channel for actor changes
...
Also, allocate the next available lane, instead of max+1. That way, we fill
holes.
Finally, check some error cases.
2020-08-12 17:29:00 -07:00
Dirk McCormick
335d165db6
refactor: use spec-actors paych with AMT for lane states
2020-08-12 17:06:18 -07:00
Łukasz Magiera
12f7e2d9bf
Use a struct for send metadata in MpoolPushMessage
2020-08-12 22:17:29 +02:00
Łukasz Magiera
e1a1b325bc
Merge remote-tracking branch 'origin/next' into feat/max-msg-fee-config
2020-08-12 21:55:03 +02:00
Łukasz Magiera
6fe743f3a9
Fix tests
2020-08-12 20:03:07 +02:00
Steven Allen
9248e5a572
Update specs-actors, cbor-gen, and go-address
2020-08-12 10:32:39 -07:00
Łukasz Magiera
d0147aa50f
Add maxFee param to MpoolPushMessage
2020-08-12 19:06:16 +02:00
Dirk McCormick
f857ee159e
refactor: unify manager interfaces for easier mocks
2020-08-11 13:15:39 -04:00
Łukasz Magiera
51cf4a5749
Merge pull request #2962 from filecoin-project/refactor/rip-paych-pubsub
...
Paych refactor: replace custom pubsub impl with lib
2020-08-11 18:32:05 +02:00
Łukasz Magiera
957d83f069
Merge pull request #2955 from filecoin-project/refactor/paych-collect
...
Refactor: move paych collect inside manager
2020-08-11 01:42:10 +02:00
Dirk McCormick
51444c7f18
refactor: replace custom paych pubsub with existing impl
2020-08-10 17:53:10 -04:00
Dirk McCormick
a6100b7e46
refactor: move collect inside paych manager
2020-08-10 13:21:25 -04:00
Dirk McCormick
0edf65855a
feat: paychmgr - merge queued add funds
2020-08-10 11:26:13 -04:00
Dirk McCormick
d3aa5e638d
refactor: remove unused method
2020-08-07 12:53:40 -04:00
Dirk McCormick
e488996fd0
fix: remove unused onComplete callback
2020-08-07 12:53:40 -04:00
Łukasz Magiera
07bf155295
Merge remote-tracking branch 'origin/next' into feat/dyn-base-fee
2020-08-06 23:41:54 +02:00
Jakub Sztandera
ab08858b45
Delete GasPrice from this world
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-06 23:08:42 +02:00
Dirk McCormick
42e1906d9c
fix: paychmgr - bail out if there's an error writing to store
2020-08-06 14:01:38 -04:00
Dirk McCormick
0a3e51a74c
refactor: remove sleeps from paych tests
2020-08-06 13:39:13 -04:00
Dirk McCormick
1ef9113ff0
fix: track payment channel by ID instead of from/to
2020-08-06 12:07:13 -04:00
Dirk McCormick
63bb09553a
fix: race in paych manager test
2020-08-06 12:07:13 -04:00
Dirk McCormick
28985c8bcf
fix: tighten up testing and add a couple of missing locks
2020-08-06 12:07:13 -04:00
Dirk McCormick
45d9ddc79f
fix: paych manager dependency injection
2020-08-06 12:04:10 -04:00
Dirk McCormick
c897cc0cc9
docs: fix comments
2020-08-06 12:04:10 -04:00
Dirk McCormick
fdfccf0466
WIP: fix payment channel locking
2020-08-06 12:04:10 -04:00
Lucas Molas
f1f9ce5351
make gen
2020-07-30 17:25:18 -03:00
Dirk McCormick
46b7546d51
fix: zero out gas limit
2020-07-22 13:55:31 -04:00
hannahhoward
f27bd1dacb
feat(settler): address pr comments
...
clean up imports, improve api import, fix text, support waiting on messages
2020-07-22 13:34:35 -04:00
hannahhoward
98535d5e06
feat(settler): monitor settled channels
...
Add a routine to monitor the chain for payment channels settling, and if it's a channel that we are
the recipient of payments on, submit any outstanding vouchers to the
chain
2020-07-22 13:34:35 -04:00
Jakub Sztandera
7da629d03b
Update gas prices
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-20 21:31:05 +02:00
Łukasz Magiera
cb6767a02b
Merge remote-tracking branch 'origin/next' into feat/actors-miner-refactor
2020-07-17 15:18:11 +02:00
Łukasz Magiera
9f4fb428c9
gofmt
2020-07-16 17:24:55 +02:00
Jakub Sztandera
7b14d445b4
Update message gas limits
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-15 20:01:57 +02:00
Łukasz Magiera
d41a07161d
paychmgr: handle voucher.ChannelAddr
2020-07-15 11:12:03 +02:00
Łukasz Magiera
faebc4c948
WIP Integrating specs-actors with refactored miner state
2020-07-14 13:45:45 +02:00
Dirk McCormick
a12e5884ab
fix: add TODO about lane merging
2020-07-10 15:24:13 -04:00
Dirk McCormick
f07c7377b6
feat: account for other vouchers when calculating voucher validity
2020-07-10 14:06:52 -04:00
Dirk McCormick
b888385ba1
refactor: lint fixes
2020-07-09 18:49:43 -04:00
Dirk McCormick
6c70ef7c7d
refactor: simplify state management
2020-07-09 18:27:39 -04:00
Dirk McCormick
1cdb008bd5
fix: lane allocation
2020-07-09 17:20:17 -04:00
Dirk McCormick
770ee8b54d
test: payment channel manager voucher and channel info tests
2020-07-09 16:35:43 -04:00
Dirk McCormick
9a45ffd459
test: add basic paychmgr store test
2020-07-08 17:34:44 -04:00
Alexey
eafb04004e
Fix to addresses in paychmgr channel creation
2020-06-26 09:06:01 +03:00