Filecoin Network v17 Shark 🦈 Upgrade
The upcoming Filecoin upgrade to network version 17, “Shark 🦈”, will bring a range of improvements and simplifications that set the stage for programmable storage: smart contracts that interact with storage deals and providers. This is currently expected to be the last upgrade before the February launch of the FEVM (EVM runtime on FVM) slated for network version 18. We’ve been designing and developing these programmability improvements since March 2022 and are excited to be landing this step forward. The upgrade for network version 17 is scheduled for 30 November 2022 (around 14:00 UTC at epoch 2383680) and has already been deployed on the calibration network, for more details see here.
The full list of FIPs activating in version 17 is at the end of this post. You can hear more about these from PL EngRes All Hands deep dive from July, and the Lotus nv17 Overview from October, embedded below.
Here are a few highlights.
FIP-0029 provides for a storage provider beneficiary address distinct from its owner. This beneficiary has sole right to withdraw funds from the on-chain miner actor, up to some specified amount and time limit. This beneficiary is fixed until the term or limit are reached, or the beneficiary agrees to a change. This is a key enabler of mechanisms for lending and borrowing of funds for a storage provider’s pledge collateral, both off-chain and, soon, on-chain lending markets. A lender can take financial control of a provider’s on-chain actor, while leaving operational control with the operator.
FIP-0044 specifies a standardised authentication method for actors. This expands the set of entities that can attest to some piece of data from those with cryptographic keys (who attest by signing) to any on-chain actor or smart contract. One immediate benefit is that actors and smart contracts will be able to make storage deals 🎉. Storage deal proposals are usually signed by the deal client. But smart contracts can’t have private keys so they can’t sign things. With FIP-0044, the built-in storage market actor will consult the deal’s client on-chain, and no longer requires it to be an account with a cryptographic key. Data DAOs, here we come.
FIP-0045 is the largest change, which decouples the Filecoin Plus verified registry actor from the built-in storage market. As a result of decoupling, storage providers will be able to immediately enjoy:
- no more diluted QA-power – get the full 10x boost for the life of a sector commitment;
- 90 days of extra QA-power than deal duration by default;
- up to 5 years of full QA-power per deal, when serving a client willing to coordinate a term extension—it’s not quite deal renewal, but nearly as good.
At the protocol level, we get:
- a simplified calculation for quality-adjusted power, allowing much more flexible storage;
- removal of barriers to re-use of storage capacity, i.e. repeated ReplicaUpdate to the same sectors—expect re-”Snap” of sectors early next year;
- decoupling (and thus de-risking) our singleton actors, eventually removing the market actor from the consensus-critical set entirely.
For a deeper understanding, check out this explainer video from the Lotus team’s Zenground0.
FIP-0045 is one of two big changes needed to enable alternative storage markets: smart contracts that broker deals between clients and providers. The built-in storage market actor currently has a monopoly on brokering deals, but we want to open the field to user-programmed actors and smart contracts to improve and expand on deal capabilities and policies. The built-in market is simple, limited and (frustratingly for us all) can only be improved through infrequent network-wide upgrades. Support for alternative markets will open the path to features like deal extension, multi-sector deals, replication, re-negotiation, deals for future capacity, bounties and auctions, insurance, and more! This field of innovation should and will be open to developers, not limited to network consensus.
Here are all the FIPs included in nv17.
- FIP-0029: Beneficiary address for storage providers
- FIP-0034: Set pre-commit deposit independent of sector content
- FIP-0041: Forward Compatibility for PreCommit and ReplicaUpdate
- FIP-0044: Standard Authentication Method for Actors
- FIP-0045: De-couple verified registry from markets
If you’d like to learn more or contribute to future protocol improvements, join the discussion in the FIP Discussion Forum on GitHub, or #fil-fips in Filecoin Slack.