filecoin-project / filecoin-project/specs

Simpler faults and recovery if penalties are reduced

Open
#409 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
SCSS
Stars
363
Forks
164
PR merge metrics
No merged PRs in 30d

Description

The spec currently contains some complicated data structures for representing layers of faults and "recovered" sectors. Explanation is lacking, but I think that all exists to represent the case that a sector was unavailable for some period of time fully contained within a single proving period, but available again before it ended. This is predicated on the proof being a long running computation that samples sectors throughout the process.

- Is the proof construction highly likely to have that property? I understand there are still different constructions under consideration, but my takeaway from @nicola’s brief description of "rational post" with no VDF is that it doesn't. "beacon post" would, though.
- Is this complexity really worthwhile? If we avoid heavy penalties for faults (#407) the penalty for losing a sector becomes only the need to re-commit it (#408), any maybe pay up to deal clients
- Does this really solve the problem? In my understanding, it doesn't solve the problem in the case that the sector unavailability crosses the proving period boundary, even if the fault duration is relatively short.

If the penalties of a fault are small and a transient failure can be recovered cheaply (#408), I propose we just allow the PoSt to come with a single list of sector failed sector ids and no "recovered" set. The sectors can be re-committed (possibly even before the proving period ends!). Taken all the way, we might not even need a distinguished done set if the storage power measurement is secure without relying on heavy penalties (#403).

There might be some proof construction internals that are opaque to me that necessitate the layered faults independent of these considerations.

Originally asked [in slack](https://filecoinproject.slack.com/archives/CEGB67XJ8/p1562801887159700) cc @sternhenri @dignifiedquire @whyrusleeping

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading the fault, recovery, and proving-period discussion in this issue, then review linked issues #403, #407, and #408 and the referenced Slack context. Determine whether the proposed single failed-sector list is compatible with the proof constructions under consideration and boundary-crossing failures; done requires an agreed design and corresponding specification updates.

Written by the indexing model from the issue text.

Assessment

Domain
blockchain
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.