-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cleanup: Lotus client: remove markets and deal-making from Lotus Client #11999
base: master
Are you sure you want to change the base?
Conversation
I guess we've been warning about this for a while, I only noticed this today on some CI output:
|
https://github.com/filecoin-project/lotus/blob/master/node/config/def.go needs adjustments i think |
Aside from #11999 (comment) superficially this looks 👌 Flagging to @rjan90 @jennijuju @magik6k @LexLuthr and others that this set of tests is now gone. If things like I do not have the context to evaluate what is and isn't valuable here, just making sure someone who has the context will ✅ this. cc @smagdali as potentially impacting |
From Boost point of view this looks Good. Boost switched to it's own client a while ago for testing. We do have a full suite of deal tests there. Lotus client has been unsupported by Boost for a while. |
@aarshkshah1992 I'll have to look at this tomorrow, but further to @ribasushi's point - would you be able to make a basic (rough) inventory of which parts of builtin actors behaviours/methods we may be leaving with less coverage here in the Lotus repo. While it's good to know that Boost and Curio will have coverage, it's important that we also maintain enough coverage so we have confidence to iterate on actors while knowing they're going to be exercised properly. We don't necessarily have to keep tests around, but it might give us a good idea of what we need to focus on build separate to the deal flow (i.e. more manually than these tests do). |
Will make the adjustments to https://github.com/filecoin-project/lotus/blob/master/node/config/def.go in a subsequent PR that I am raising for the provider side of things as it is a bit tightly coupled. |
Follow-up PR to remove Markets from Lotus Miner and Full Node is at #12005. |
@rvagg @ribasushi Yes will do a write-up on what test coverage we're lacking now. |
.circleci/config.yml
Outdated
suite: itest-deals_retry_deal_no_funds | ||
target: "./itests/deals_retry_deal_no_funds_test.go" | ||
- test: | ||
name: test-itest-deals |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yay!
// ClientCalcCommP calculates the CommP and data size of the specified CID | ||
ClientDealPieceCID(ctx context.Context, root cid.Cid) (DataCIDSize, error) //perm:read | ||
// ClientCalcCommP calculates the CommP for a specified file | ||
ClientCalcCommP(ctx context.Context, inpath string) (*CommPRet, error) //perm:write |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I end up using CalcCommP and GenCAR a lot during development and I don't think they use go-fil-markets. Could you add them to lotus-shed instead of deleting them entirely?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- I don't think they need to use go-fil-markets. But if its hard to recreate without the API call I can do it later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ZenGround0 isn't kubo much better suited for exporting a dag as a carfile...? Why would you be using the way less maintained blockstore-in-client-lotus implementations?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
idk because I'm a phillistine who just wants to play with his deal smart contracts
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Me have file me want commp
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Me have file me want commp
cat TheZenGround0_files.mp4 | stream-commp
https://github.com/filecoin-project/go-fil-commp-hashhash/tree/master/cmd/stream-commp#installation
If you reallt insist on going the long route through ipld-unixfs
- that probably fits in lotus-shed
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah, original discussion on this suggested that we may want to move some things to lotus-shed, and commp seems reasonable
boostx
has all this functionality if you want to install it
in terms of unixfs generation, just use go-car, car
is not a bad little utility to have installed, and then one of the existing commp generation utilities like stream-commp
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah I am not sure we need to keep the CommP
functionality around in lotus-shed given the plethora of other tools out there that already do it if Lotus itself does not need this functionality for anything anymore.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Worth checking the docs/tutorials - pretty sure it’s referenced in a couple places
@rvagg I went through the itests we have deleted and it dosen't look like we're losing any meaningful Actors coverage:
That Market Actor I think all we need is a test for upgrading a CC sector with real data. |
All checks have passed |
|
||
asserts(t, ctx, &miner, func() { | ||
dh := kit.NewDealHarness(t, &client, &miner, &miner) | ||
dh.RunConcurrentDeals(kit.RunConcurrentDealsOpts{N: 1}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh, this test seems like a bit of a loss all because it needs deals to exercise storage; it'd be good to get some curio ppl feedback on this one
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this should get covered by Curio tests. I am not sure if it is great ROI building a lot of testing deal onboarding infra just for this.
} | ||
|
||
t.Run("single", func(t *testing.T) { | ||
dh.RunConcurrentDeals(kit.RunConcurrentDealsOpts{N: 1}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
another test that's in the unfortunate blast radius; I wonder if we could replace this functionality with something simpler so this doesn't all have to go away
require.NoError(t, err) | ||
require.True(t, e) | ||
|
||
dh := kit.NewDealHarness(t, client, miner, miner) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ditto; would be good to not lose this one too
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I mean this should get covered by Curio tests.
This looks great to me, exciting to remove so much legacy. 2 things to resolve: removal of lib/unixfs package, and restoration of And there's the few tests in there that are not deal related but get caught up in the lack of deal infrastructure, yet they're testing important functionality that leaves a gap. I think next step might be to get an eye from @magik6k; both in terms of the general approach here but also for some feedback about those tests that I marked as a concern—should we put some work in to replacing the deal infrastructure with some data onboarding flows to keep the tests active? |
@rvagg I am not sure if it is high ROI to add and then maintain deal onboarding code just to make up for a couple of tests. Some of that should be covered by Curio tests. And we're adding tests for SnapDeals and DDO to cover the Actors interaction as part of our NI-PoRep testing work. |
lgtm! if we can get sign-off from a miner expert then this should be gtg |
Related Issues
Closes #12002
Proposed Changes
The use of legacy markets through Lotus was deprecated a long time ago. This PR completely remove the legacy markets code from the Lotus Client CLI & API. Users can continue using Boost for deal making/as a deal making client.
Specifically, this PR removes the following APIs from the Lotus Full Node:
In addition to the above, the
lotus client
CLI family of commands has also been completely removed.And also removed the following CLI commands from Lotus:
Additional Info
Checklist
Before you mark the PR ready for review, please make sure that:
<PR type>: <area>: <change being made>
fix: mempool: Introduce a cache for valid signatures
PR type
: fix, feat, build, chore, ci, docs, perf, refactor, revert, style, testarea
, e.g. api, chain, state, market, mempool, multisig, networking, paych, proving, sealing, wallet, deps