Sealing data without a deal #3044
The deal protocol is more or less independent of proving storage, and a miner logically can commit and prove storage without deals. Go-filecoin doesn't provide any interface to do that, so miners have to go through unnecessary self-dealing in order to prove storage.
We should add a CLI command that directly stages a piece of data for sealing, bypassing the deal flow.
Risks + pitfalls
Where to begin
As filecoin is to provide a decentralized storage market, and encourage people to make deals, that is the most important value of filecoin network, this feature is not strictly necessary.
However, since it is feasible based on the current implementation, this feature would be widely used by miners, especially in the early stage of filecoin network.
Based on the understanding, we could consider spending some time to contribute this by providing a save-data command while we have already done some study.
#3231 supports manual trigger of sealing, creating a sector with a piece of dummy data if none exist. It doesn't support the operator choosing their own data, so I'm re-opening this to request that the sealing and piece-staging be exposed separately.
Not urgent, and would really welcome any contribution from the community.
@anorth Could you motivate the additional functionality?
We could add a
It would probably be better if this command not automatically trigger sealing so that the miner could add more than one piece to try and fill the staged sector.
Is this what you're looking for?
My primary motivation is a general goal of providing orthogonal operations that a miner/operator can compose into their desired behaviour. To reduce the scope for go-filecoin, we are not attempting to implement every possible use case, but expect operators to write some code (either in go-filecoin or invoking go-filecoin) for all but the most basic. We have to implement the primitives for this to be feasible. This should result in less total work for go-filecoin. In this case, staging a piece and triggering sealing are orthogonal.
As a somewhat strained example,
I am not suggesting direct support for all use cases we can imagine: on the contrary I'm suggesting atomic primitive operations which others can compose into their use cases.