-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
BasicDealFilter
upper bound on StartEpoch
#3929
Comments
@hannahhoward I think this is a good suggestion? Also..is |
If the deal can be retrieved, we should serve the retrieval (which is paid for seperately), so that part is not a bug. This is definitely a feature we should have -- though the intent of the basic deal filter is to be ... basic. So it's an interesting question if this falls under the responsibilities or if we should leave it to miners to customize. I think though the potential for abuse makes it worth putting in the basic deal filter. |
second part is sort of related to #3958 |
Getting the same error using the recommended miner settings and causing "PreCommitFailed" on new sectors
|
Please help me |
Follow-up: There may be a more complext cryptoeconomic solution, but as a first pass we will set the basic deal filter to reject anything more than 90 days in the future |
Describe the bug
The
BasicDealFilter
is an implementation of custom logic for validating deals. This is designed to automatically reject deals which do not meet the requirements of a miner but are technically valid deals (can be published on-chain).Currently there is no upper bound on the
StartEpoch
of aDealProposal
. As a result a client may set theStartEpoch
excessively far into the future.Fees received by a miner are the
(EndEpoch - StartEpoch) * price + UnsealFee
. Hence, ifStartEpoch
is set into the future the miner will receive less fees.The miner will be storing the data from when the deal is first accepted by
go-fil-markets
. Therefore, the time between the deal being accepted and theStartEpoch
the miner will be storing the data for free.To Reproduce
Steps to reproduce the behavior:
lotus client deal --start-epoch 1000000 <CID> <MINER> <PRICE> minDuration
BasicDealFilter
Expected behavior
Deals excessively far into the future should be rejected.
Version (run
lotus version
):lotus version 0.5.7+git.f31dc791
Additional context
There is currently a lower bound for the
StartEpoch
to give the miner sufficient time to deal the data.There should also be an upper bound for the
StartEpoch
relative to the current epoch. The upper bound is a trade-off between allowing enough time to fill the sector with other deals vs storing the data without pay.Clients may successfully call
lotus client retrieve ...
during the period after the deal has been accepted but beforeStartEpoch
.Note also
EndEpoch - StartEpoch
must be greater thanminDuration
.File:
lotus/node/modules/storageminer.go
Function:
BasicDealFilter()
The text was updated successfully, but these errors were encountered: