Skip to content

filecoin-project/FIPs

Repository files navigation

Filecoin Improvement Protocol

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.

The Filecoin Vision

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.

Filecoin Design Principles

The design of Filecoin is intended to follow a set of principles. The community will help define these principles in the coming months.

Filecoin Improvement Principles

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.

Making changes to the Filecoin network

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.

A decentralized, global network

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).

FIPs

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 [email protected], Alfonso de la Rocha [email protected] 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
0096 Convert fundraising remainder address(es) to keyless account actor(s) FIP @Fatman13 Draft
0097 Add Support for EIP-1153 (Transient Storage) in the FEVM FIP Michael Seiler (@snissn), Steven Allen (@stebalien) Last Call
0098 Simplify termination fee calculation to a fixed percentage of initial pledge FIP Jonathan Schwartz (@Schwartz10), Alex North (@anorth), Jim Pick (@jimpick) Draft