The Filecoin Improvement Protocol contains the set of fundamental governing principles for the Filecoin Network. It outlines the vision for Filecoin and the principles, processes, and parties involved in making decisions that affect the future of the network. It also describes how improvements to these rules can be proposed and ratified.
Filecoin is a peer-to-peer network that stores files, with built-in economic incentives to ensure that files are stored reliably over time. Its mission is to create a decentralized, efficient and robust foundation for humanity’s information. To advance that mission, Filecoin has created a decentralized storage network that lets anyone in the world store or retrieve files.
In Filecoin, users pay to store their files on storage miners. Storage miners are computers responsible for storing files and proving they have stored the files correctly over time. Anyone who wants to store their files or get paid for storing other users’ files can join Filecoin. Available storage and pricing are not controlled by any single entity. Instead, Filecoin facilitates open markets for storing and retrieving files that anyone can participate in, thereby providing storage to billions of people who are currently locked out of the web.
The design of Filecoin is intended to follow a set of principles. The community will help define these principles in the coming months.
When making decisions about how to improve Filecoin, we will follow a set of principles. The community will help define these principles in the coming months.
Filecoin Improvement Proposals (FIPs) are the primary mechanism by which the Filecoin community can submit, discuss, and approve changes relevant to the Filecoin network. These discussions and decisions should be guided by the governance and design principles above.
FIPs are classified into three categories:
Technical FIPs, or Filecoin Technical Proposals (FTPs) are designed to gather community feedback on technical Filecoin issues. These include changes to the Filecoin protocol, a change in block or transaction validity rules, and proposed application standards or conventions. They are then reviewed by the Filecoin community and the technical steering committee. They are normally followed by a PR to the Filecoin Specification repository to update the protocol's spec.
Organizational FIPs, or Filecoin Organization Proposals (FOPs) allow the Filecoin community to propose, discuss, and achieve consensus on Filecoin governance. This includes procedures, guidelines, decision-making processes, and changes to FIP processes.
Recovery FIPs, or Filecoin Recovery Proposals (FRPs) are intended to provide the Filecoin community with a forum to raise, discuss, and achieve consensus on fault recovery and chain rewrites, under a very limited, clearly-defined set of criteria (ex, in the case of protocol bugs destroying network value). The community will help define this process as needed in the coming months.
Filecoin is still in its infancy, but it has the potential to play a central role in the storage and distribution of humanity’s information. To help the network grow and evolve, it is critical for the community to collectively be engaged in proposing, discussing, and implementing changes that improve the network and its operations.
This improvement protocol helps achieve that objective for all members of the Filecoin community (developers, miners, clients, token holders, ecosystem partners, and more).
FIP # | Title | Type | Author | Status |
---|---|---|---|---|
0001 | FIP Purpose and Guidelines | FIP | @Whyrusleeping | Active |
0002 | Free Faults on Newly Faulted Sectors of a Missed WindowPoSt | FIP | @anorth, @davidad, @miyazono, @irenegia, @lucaniz, @nicola, @zixuanzh | Final |
0003 | Filecoin Plus Principles | FIP | @feerst, @jbenet, @jnthnvctr, @tim-murmuration, @mzargham, @zixuanzh | Active |
0004 | Liquidity Improvement for Storage Miners | FIP | @davidad, @jbenet, @zenground0, @zixuanzh, @danlessa | Final |
0005 | Remove ineffective reward vesting | FIP | @anorth, @Zenground | Final |
0006 | No repay debt requirement for DeclareFaultsRecovered | FIP | @nicola, @irenegia | Deferred |
0007 | h/amt-v3 | FIP | @rvagg, @Stebalien, @anorth, @Zenground0 | Final |
0008 | Add miner batched sector pre-commit method | FIP | @anorth, @ZenGround0, @nicola | Final |
0009 | Exempt Window PoSts from BaseFee burn | FIP | @Stebalien, @momack2, @magik6k, @zixuanzh | Final |
0010 | Off-Chain Window PoSt Verification | FIP | @Stebalien, @anorth | Final |
0011 | Remove reward auction from reporting consensus faults | FIP | @Kubuxu | Final |
0012 | DataCap Top up for FIL+ Client Addresses | FIP | @dshoy, @jnthnvctr, @zx | Final |
0013 | Add ProveCommitSectorAggregated method to reduce on-chain congestion | FIP | @ninitrava @nicola | Final |
0014 | Allow V1 proof sectors to be extended up to a maximum of 540 days | FIP | @deltazxm, @neogeweb3 | Final |
0015 | Revert FIP-0009(Exempt Window PoSts from BaseFee burn) | FIP | @jennijuju, @arajasek | Final |
0016 | Pack arbitrary data in CC sectors | FIP | donghengzhao (@1475) | Deferred |
0017 | Three-messages lightweight sector updates | FIP | @nicole, @lucaniz, @irenegia | Deferred |
0018 | New miner terminology proposal | FIP | @Stefaan-V | Final |
0019 | Snap Deals | FIP | @Kubuxu, @lucaniz, @nicola, @rosariogennaro, @irenegia | Final |
0020 | Add return value to WithdrawBalance | FIP | @Stefaan-V | Final |
0021 | Correct quality calculation on expiration | FIP | @Steven004, @Zenground0 | Final |
0022 | Bad deals don't fail PublishStorageDeals | FIP | @Zenground0 | Final |
0023 | Break ties between tipsets of equal weights | FIP | @sa8, @arajasek | Final |
0024 | BatchBalancer & BatchDiscount Post -Hyperdrive adjustment | FIP | @zx, @jbenet, @zenground0, @momack2 | Final |
0025 | Handle expired deals in ProveCommit | FIP | @ZenGround0 | Deferred |
0026 | Extend sector fault cutoff period from 2 weeks to 6 weeks | FIP | @IPFSUnion | Final |
0027 | Change type of DealProposal Label field from a (Golang) String to a Union | FIP | @laudiacay, @Stebalien, @arajasek | Final |
0028 | Remove DataCap and verified client status from client address | FIP | @jennijuju, @dkkapur | Final |
0029 | Beneficiary address for storage providers | FIP | @steven004 | Final |
0030 | Introducing the Filecoin Virtual Machine (FVM) | FIP | @raulk, @stebalien | Final |
0031 | Atomic switch to non-programmable FVM | FIP | @raulk, @stebalien | Final |
0032 | Gas model adjustment for non-programmable FVM | FIP | @raulk, @stebalien | Final |
0033 | Explicit premium for FIL+ verified deals | FIP | @anorth | Deferred |
0034 | Fix pre-commit deposit independent of sector content | FIP | @anorth, @Kubuxu | Final |
0035 | Support actors as built-in storage market clients | FIP | @anorth | Withdrawn |
0036 | Introducing a Sector Duration Multiple for Longer Term Sector Commitment | FIP | @AxCortesCubero, @jbenet, @misilva73, @momack2, @tmellan, @vkalghatgi, @zixuanzh | Rejected |
0037 | Gas model adjustment for user programmability | FIP | @raulk, @stebalien | Withdrawn |
0038 | Indexer Protocol for Filecoin Content Discovery | FRC | @willscott, @gammazero, @honghaoq | Draft |
0039 | Filecoin Message Replay Protection | FIP | @q9f | Draft |
0040 | Boost - Filecoin Storage Deals Market Protocol | FRC | @dirkmc, @nonsense, @jacobheun, @brendalee | Draft |
0041 | Forward Compatibility for PreCommit and ReplicaUpdate | FIP | @Kubuxu | Final |
0042 | Calling Convention for Hashed Method Name | FRC | @Kubuxu, @anorth | Draft |
0044 | Standard Authentication Method for Actors | FIP | @arajasek, @anorth | Final |
0045 | De-couple verified registry from markets | FIP | @anorth, @zenground0 | Final |
0046 | Fungible token standard | FRC | @anorth, @jsuresh, @alexytsu | Draft |
0047 | Proof Expiration & PoRep Security Policy | FIP | @Kubuxu, @irenegia, @anorth | Superseded |
0048 | f4 Address Class | FIP | @stebalien, @mriise, @raulk | Final |
0049 | Actor Events | FIP | @stebalien, @raulk | Final |
0050 | API Between User-Programmed Actors and Built-In Actors | FIP | @anorth, @arajasek | Final |
0051 | Synchronous Consistent Block Broadcast for EC Security | FRC | Guy Goren guy.goren@protocol.ai, Alfonso de la Rocha alfonso@protocol.ai | Draft |
0052 | Increase max sector commitment to 3.5 years | FIP | @anorth | Final |
0053 | Non-Fungible Token Standard | FRC | @alexytsu, @abright, @anorth | Draft |
0054 | Filecoin EVM Runtime (FEVM) | FIP | @raulk, @stebalien | Final |
0055 | Supporting Ethereum Accounts, Addresses, and Transactions | FIP | @raulk, @stebalien | Final |
0056 | Sector Duration Multiplier | FIP | @AxCortesCubero, @jbenet, @misilva73, @momack2, @tmellan, @vkalghatgi, @zixuanzh | Rejected |
0057 | Update Gas Charging Schedule and System Limits for FEVM | FIP | @raulk, @stebalien, @aakoshh, @kubuxu | Final |
0058 | Verifiable Data Aggregation | FRC | Jakub Sztandera (@Kubuxu), Nicola Greco (@nicola), Peter Rabbitson (@ribasushi) | Draft |
0059 | Synthetic PoRep | FIP | @Kubuxu @Luca @Rosario Gennaro @Nicola @Irene | Final |
0060 | Set market deal maintenance interval to 30 days | FIP | Jakub Sztandera (@Kubuxu), @Zenground0, Alex North (@anorth) | Final |
0061 | WindowPoSt Grindability Fix | FIP | @cryptonemo @Kubuxu @DrPeterVanNostrand @Nicola @porcuquine @vmx @arajasek | Final |
0062 | Fallback Method Handler for the Multisig Actor | FIP | Dimitris Vyzovitis (@vyzo), Raúl Kripalani (@raulk) | Final |
0063 | Switching to new Drand mainnet network | FIP | @yiannisbot, @CluEleSsUK, @AnomalRoil, @nikkolasg, @willscott | Final |
0065 | Ignore built-in market locked balance in circulating supply calculation | FIP | @anorth | Final |
0066 | Piece Retrieval Gateway | FRC | @willscott, @dirkmc | Draft |
0067 | PoRep Security Policy & Replacement Sealing Enforcement | FIP | @Kubuxu, @anorth, @irenegia, @lucaniz | Accepted |
0068 | Deal-Making Between SPs and FVM Smart Contracts | FRC | @aashidham, @raulk, @skottie86, @jennijuju, @nonsense, @shrenujbansal | Draft |
0069 | Piece Multihash and v2 Piece CID | FRC | @aschmahmann, @ribasushi | Draft |
0070 | Allow SPs to move partitions between deadlines | FIP | Steven Li (@steven004), Alan Xu (@zhiqiangxu), Mike Li (@hunjixin), Alex North (@anorth), Nicola (@nicola) | Rejected |
0071 | Deterministic State Access (IPLD Reachability) | FIP | @stebalien | Final |
0072 | Improved event syscall API | FIP | @fridrik01, @Stebalien | Final |
0073 | Remove beneficiary from the self_destruct syscall | FIP | @Stebalien | Final |
0074 | Remove cron-based automatic deal settlement | FIP | @anorth, @alexytsu | Final |
0075 | Improvements to the FVM randomness syscalls | FIP | @arajasek, @Stebalien | Final |
0076 | Direct data onboarding | FIP | @anorth, @zenground0 | Final |
0077 | Add Cost Opportunity For New Miner Creation | FIP | Zac (@remakeZK), Mike Li (@hunjixin) | Draft |
0078 | Remove Restrictions on the Minting of Datacap | FIP | Fatman13 (@Fatman13), flyworker (@flyworker), stuberman (@stuberman), Eliovp (@Eliovp), dcasem (@dcasem), and The-Wayvy (@The-Wayvy) | Draft |
0079 | Add BLS Aggregate Signatures to FVM | FIP | Jake (@drpetervannostrand) | Final |
0080 | Phasing Out Fil+ and Restoring Deal Quality Multiplier to 1x | FIP | @Fatman13, @ArthurWang1255, @stuberman, @Eliovp, @dcasem, @The-Wayvy | Draft |
0081 | Introduce lower bound for sector initial pledge | FIP | @anorth, @vkalghatgi | Final |
0082 | Add support for aggregated replica update proofs | FIP | nemo (@cryptonemo), Jake (@drpetervannostrand), @anorth | Accepted |
0083 | Add built-in Actor events in the Verified Registry, Miner and Market Actors | FIP | Aarsh (@aarshkshah1992) | Final |
0084 | Remove Storage Miner Actor Method ProveCommitSectors |
FIP | Jennifer Wang (@jennijuju) | Final |
0085 | Convert f090 Mining Reserve actor to a keyless account actor | FIP | Jennifer Wang (@jennijuju), Jon Victor (@jnthnvctr) | Final |
0086 | Fast Finality in Filecoin (F3) | FIP | @stebalien, @masih, @mb1896, @hmoniz, @anorth, @matejpavlovic, @arajasek, @ranchalp, @jsoares, @Kubuxu, @vukolic, @jennijuju | Accepted |
0087 | FVM-Enabled Deal Aggregation | FRC | @aashidham, @honghao, @raulk, @nonsense | Draft |
0089 | A Finality Calculator for Filecoin | FRC | @guy-goren, @jsoares | Draft |
0090 | Non-Interactive PoRep | FIP | luca (@lucaniz), kuba (@Kubuxu), nicola (@nicola), nemo (@cryptonemo), volker (@vmx), irene (@irenegia) | Superseded by FIP0092 |
0091 | Add support for Homestead and EIP-155 Ethereum Transactions ("legacy" Ethereum Transactions) | FIP | Aarsh (@aarshkshah1992) | Accepted |
0092 | Non-Interactive PoRep | FIP | luca (@lucaniz), kuba (@Kubuxu), nicola (@nicola), nemo (@cryptonemo), volker (@vmx), irene (@irenegia), Alex North (@anorth), orjan (@Phi-rjan) | Final |
0094 | Add Support for EIP-5656 (MCOPY Opcode) in the FEVM | FIP | Michael Seiler (@snissn), Raúl Kripalani (@raulk), Steven Allen (@stebalien) | Final |
0095 | Add FEVM precompile to fetch beacon digest from chain history | FIP | @ZenGround0, Alex North (@anorth) | Final |