🔍 Problem Definition:
The core functionality of the Filecoin Storage Market is the "storage deal": an agreement made between a client and Storage Provider (SP) which specifies the file stored, the duration of the storage and the total cost for the service.
When making a storage deal, the client must decide on the total duration and pay the total cost of storage upfront. A client interested in storing a file for a year can make a single 1-year long deal or several shorter deals.
A client that wants to store a file for 100 years finds themselves making this difficult decision: be around to pay for storage monthly or pay upfront 100 years worth of deals.
💫 Solution [high level]:
A smart contract where:
- The client decides the “policy”, in particular:
- at what price deals should be made (and possibly a strategy for increasing the deal bid)
- what is the replication parameter (ie, how many deal should be active at the same time)
- for how long individual deals should be made, when each deal starts
- how the governance of this should change through time (e.g. allow a set of keys, a DAO or no one to change these parameters).
- Anyone can add tokens to the perpetual storage contract.
- The contract unlocks some tokens in a Bounty contract (for example we can use the ) to create deals as specified in the policy. Moreover, if one of the deals made is expiring, the contract call the Bounty contract again as long as there are tokens available.Web3.storage Bounty
Why is this important? Any DAO, community, artist can create a perpetual storage contract for a specific CID or set of CIDs. As long as there are funds in the perpetual storage contract and the filecoin miners are willing to accept the price, the NFT file will be continuosly being stored.