-
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
proposal: reject deals with an expiration date beyond 540d from now #6959
Comments
Related: the "time from now" should possibly be checked against 538 as per filecoin-project/filecoin-docs#879 (comment) |
That comment is outdated since #6803 is introducted. |
Got an precommit batch error on a sector that holds a single 32GiB dealbot 180 day deal.. I have not seen this before. This is from lotus-miner logs:
And some background info on whats in the sector:
|
In the meantime while we're working on a fix for this, should we recommend clients set a reasonably safe deal duration (i.e. around 500 days or so for those that are looking for ~1.5 years of storage)? |
I'd like to posit that the real issue here is that the max duration of a deal and of a sector is the same (540 days). It's virtually impossible for a storage provider to land such a deal. |
Some miners have begun to see this error:
This is caused by a client setting a deal expiry that's too far out into the future. Concretely, if the expiry epoch is later than 540d away from the time the sector is being precommitted, the precommit will fail with that message.
In the exhibit case, Estuary was setting:
If a client wants to make a deal with the longest lifetime possible, the only safe option is to make it with an expiry 540d from now (i.e. from the time the deal is proposed), not from the start date. The reason is that the client doesn't know when the miner will pack the deal into a sector and will precommit that sector. For all it knows it could be instantaneous (technically, e.g. if the miner already has the piece and doesn't need to transfer it?).
The simple solution to protect miners from this failure by default is to reject deals with an expiration date higher than 540d from the time the deal is proposed.
The harder (but more correct) solution is to accept the deal if the slack left by
expiration - start
is deemed enough to precommit and seal the sector in time. This might be useful if I want to schedule a deals into the future (e.g. start date 80 days from now, with an expiration of 500 days from then [this would be 580d from now], which gives me 40 days to precommit and seal the deal: days 40-80). However, in practice this is worthless because miners will reject deals with a start date too late into the future.The text was updated successfully, but these errors were encountered: