This note sketches out a refactor of the interfaces and calls between the miner, market and FIL+ registry actors in order to support alternative storage markets.
This draft is replaced by Architecture for programmable storage markets – v2
<aside>
💡 The canonical version is now in FIPs 👇
</aside>
An architecture for programmable storage markets · Discussion #298 · filecoin-project/FIPs
Goals
- Break any dependency of the miner actor on the market
- Break coupling between the market and FIL+ actors
- Don’t trust the market actor for anything except maintaining its own internal deal state
- Thus allow an alternative storage market to compete with the built-in one, including for FIL+ deals
- Retain the current economic structure, incentives, pledge etc
- Be compatible with future change to ‣
Supporting alternative markets also requires Miner market registrations for market fault processing. See also Market/deal contract interfaces notes for other programmability enhancements.
Questions to check if this is a good architecture
- Could this work with an L2 market? How?
- Could we even further remove knowledge of deals from the miner actor, so they don’t even pass through?
- Would like to notify market of sector content async, after PoRep.
- Challenge is associating piece CIDs with CommD when the CommD is proven to be correct, i.e. only at PoRep time
- Could we get features of deal extension after this re-architecture, even while FIL+ remains? (Maybe with FIL+ Forever)
- Deals decoupled from FIL+, so non-verified deals are easy
- Need extension of data cap
- Could we add feature of upgrading a deal to FIL+ after it starts?
- 2/3 of the way there, need a new method on miner to claim data cap after PoRep
- And the challenge of proving piece inclusion in CommR again :-(