From 257bf0cdb3fd16611e74da389de344e09f21c375 Mon Sep 17 00:00:00 2001 From: Mirha Masala Date: Mon, 4 Nov 2024 13:25:49 +0000 Subject: [PATCH 01/13] Edit Welcome.md --- WELCOME.md | 47 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/WELCOME.md b/WELCOME.md index 84d5cb12f..6246d8a0b 100644 --- a/WELCOME.md +++ b/WELCOME.md @@ -1,8 +1,6 @@ --- description: >- - Filecoin is a peer-to-peer network that allows anyone to store and retrieve - data on the internet. Built-in economic incentives ensure that files are - stored and retrieved reliably and continuously. + Filecoin is a decentralized, peer-to-peer network enabling anyone to store and retrieve data over the internet. Economic incentives are built in, ensuring files are stored and accessible reliably over time. cover: .gitbook/assets/home-hero-image-drives.png coverY: 171 layout: @@ -21,10 +19,45 @@ layout: visible: true --- -# Welcome to Filecoin Docs +# Welcome to the Filecoin Documentation -Choose your own adventure +Choose your own path to start exploring Filecoin: -
💡 Learn the basicsWant to understand the fundamental concepts of Filecoin, but aren't sure where to start? The Basics section is the perfect place to begin your journey!what-is-filecoin
🔧 Build with FilecoinEager to build on top of the Filecoin network but aren't sure how to begin? Head over to the Developers section to find examples and guides to help build your project!the-fvm.md
🏗️ Become a providerStarting up a provider node on the Filecoin network can be a daunting task. Head over to the Provider section to find out everything you need to know.basics
📊 Store dataWant to store large amount of data on the Filecoin network? There are plenty of storage options that you can choose from! Check out the Store section for more information!storage-model.md
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
💡 Learn the BasicsNew to Filecoin and looking for foundational concepts? Start with the Basics section to understand the essentials and kick off your journey!what-is-filecoin
🔧 Build with FilecoinReady to develop on the Filecoin network? Head to the Developers section for guides and examples to help bring your project to life.the-fvm.md
🏗️ Become a Storage ProviderThinking about running a provider node on Filecoin? Visit the Provider section for comprehensive guidance on getting started.basics
📊 Store DataLooking to store large volumes of data? Explore the Store section to review the various storage options Filecoin offers.storage-model.md
-[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill\_Page+URL=https://docs.filecoin.io/) +[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill_Page+URL=https://docs.filecoin.io/) From bfb172a7a32364a83279d05c34111ab83a3a4c09 Mon Sep 17 00:00:00 2001 From: Mirha Masala Date: Mon, 4 Nov 2024 13:26:08 +0000 Subject: [PATCH 02/13] Edit basics/what-is-filecoin --- basics/what-is-filecoin/README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/basics/what-is-filecoin/README.md b/basics/what-is-filecoin/README.md index 1a3595456..1a59a3a18 100644 --- a/basics/what-is-filecoin/README.md +++ b/basics/what-is-filecoin/README.md @@ -1,17 +1,18 @@ --- description: >- - This section aims to provide a comprehensive overview of Filecoin to - developers and serves as a reference that developers can check back on. + This section offers a detailed overview of Filecoin for developers, serving as a go-to reference for their needs. --- -# What is Filecoin +# Introduction to Filecoin -Filecoin is a peer-to-peer network that stores files, with built-in economic incentives and cryptography to ensure files are stored reliably over time. In Filecoin, users pay to store their files on storage providers. Storage providers are computers responsible for storing files and proving they have stored them correctly over time. Anyone who wants to store their files or get paid for storing other users’ files can join Filecoin. Available storage, and the price of that storage, are not controlled by any single company. Instead, Filecoin facilitates open markets for storing and retrieving files that anyone can participate in. +Filecoin is a peer-to-peer network that enables reliable, decentralized file storage through built-in economic incentives and cryptographic proofs. Users pay storage providers—computers that store and continuously prove file integrity—to securely store their files over time. Anyone can join Filecoin as a user seeking storage or as a provider offering storage services. Storage availability and pricing aren’t controlled by any single entity; instead, Filecoin fosters an open market for file storage and retrieval accessible to all. -Filecoin is built on top of the same software powering [IPFS protocol](https://docs.ipfs.tech/), which is a peer-to-peer distributed storage network that leverages [content addressing](https://docs.ipfs.tech/concepts/content-addressing/) to allow permanent references to the data, and avoids relying on specific devices or cloud servers for addressing the content. Filecoin is different from IPFS because it has an incentive layer on top to incentivize contents to be reliably stored and accessed. +Filecoin is built on the same technology as the [IPFS protocol](https://docs.ipfs.tech/). IPFS is a distributed storage network that uses [content addressing](https://docs.ipfs.tech/concepts/content-addressing/) to provide permanent data references without dependency on specific devices or cloud providers. Filecoin differs from IPFS by introducing an incentive layer that promotes reliable storage and consistent access to data. -Filecoin enables several use cases, from Web3 native NFT and metaverse/game assets storage, incentivized permanent storage, to archiving Web2 datasets as a cheaper alternative to cloud storage. For example, [NFT.Storage](https://nft.storage/) utilizes Filecoin to provide a simple decentralized storage solution for NFT contents and metadata, while [Shoah Foundation](https://sfi.usc.edu/) and [Internet Archive](https://archive.org/) leverages Filecoin to backup their contents. Filecoin also supports a wide range of formats of data, including audio and video files, allowing Web3 platforms such as [Audius](https://audius.co/) and [Huddle01](https://huddle01.com/) to leverage Filecoin as the decentralized storage backend for music streaming and video conferencing. +Filecoin’s use cases are diverse, ranging from Web3-native NFT storage to metaverse and gaming assets, as well as incentivized, permanent storage. It also offers a cost-effective solution for archiving traditional Web2 datasets, making it a strong alternative to conventional cloud storage. +For instance, [NFT.Storage](https://nft.storage/) leverages Filecoin for decentralized NFT content and metadata storage. Likewise, organizations like the [Shoah Foundation](https://sfi.usc.edu/) and the [Internet Archive](https://archive.org/) use Filecoin for content preservation and backup. +Filecoin is compatible with various data types, including audio and video files. This versatility allows Web3 platforms like [Audius](https://audius.co/) and [Huddle01](https://huddle01.com/) to use Filecoin as a decentralized storage backend for music streaming and video conferencing. -[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill\_Page+URL=https://docs.filecoin.io/basics/what-is-filecoin) +[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill_Page+URL=https://docs.filecoin.io/basics/what-is-filecoin) From e8a826c8dba507b661d5e326928bd4a690d47a12 Mon Sep 17 00:00:00 2001 From: Mirha Masala Date: Mon, 4 Nov 2024 13:40:56 +0000 Subject: [PATCH 03/13] Edit basics/what-is-filecoin/crypto-economics.md --- basics/what-is-filecoin/crypto-economics.md | 38 +++++++++------------ 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/basics/what-is-filecoin/crypto-economics.md b/basics/what-is-filecoin/crypto-economics.md index 620c6a1d0..1f8f86440 100644 --- a/basics/what-is-filecoin/crypto-economics.md +++ b/basics/what-is-filecoin/crypto-economics.md @@ -1,42 +1,38 @@ --- description: >- - Crypto-economics is the study of how cryptocurrency can incentivize usages of - a blockchain network. This page covers how Filecoin manages incentivization - within the network. + Crypto-economics is the study of how cryptocurrency can incentivize usage of a blockchain network. This page covers how Filecoin manages incentivization within the network. --- -# Crypto-economics +# Crypto-Economics -## Native currency +## Native Currency -The native currency of Filecoin, FIL, is a utility token used to incentivize persistent storage on the Filecoin network. Storage providers mine FIL by providing reliable storage service or committing storage capacity on the network. It has a maximum circulating supply of 2,000,000,000 FIL, meaning that no more than 2 billion Filecoin will ever be created. +Filecoin’s native currency, FIL, is a utility token that incentivizes persistent storage on the Filecoin network. Storage providers earn FIL by offering reliable storage services or committing storage capacity to the network. With a maximum circulating supply of 2 billion FIL, no more than 2 billion Filecoin will ever exist. -As a utility token that aligns participants’ incentives with the long-term growth of the network, Filecoin issuance is aligned with the overall provable utility of the network. The majority of Filecoin supply would only be minted if the network achieved growth and utility targets at scale. +As a utility token aligned with the network’s long-term growth, Filecoin issuance depends on the network’s provable utility and growth. Most of the Filecoin supply is only minted as the network achieves specific growth and utility milestones. -Specifically, Filecoin uses a dual minting model for block reward minting: +Filecoin uses a dual minting model for block reward distribution: -## Baseline minting +## Baseline Minting -Up to 770M FIL tokens are minted based on the performance of the network. These tokens would only fully release if the Filecoin network reached a Yottabyte of storage capacity in under 20 years, estimated to be \~1000x larger than today’s cloud storage capacity. +Up to 770 million FIL tokens are minted based on network performance. Full release of these tokens would only occur if the Filecoin network reaches a yottabyte of storage capacity within 20 years, approximately 1,000 times the capacity of today’s cloud storage. -## Simple minting +## Simple Minting -330M FIL tokens are released on a 6 year half-life based on time, meaning that 97% of these tokens will be released in approximately 30 years time. +An additional 330 million FIL tokens are released on a 6-year half-life schedule, with 97% of these tokens projected to be released over about 30 years. -Additionally, 300M FIL tokens are held back in the mining reserve to incentivize future types of mining. +Additionally, 300 million FIL tokens are held in a mining reserve to incentivize future mining models. ## Vesting -Mining rewards undergo a vesting schedule to encourage long-term network alignment. For example, 75% of block rewards earned by miners vest linearly over 180 days, while 25% are made immediately available to improve miner cash flow and profitability. And the remaining FIL tokens are vested to Protocol Labs teams and Filecoin Foundation over 6 years and SAFT investors over 3 years, as shown in the vesting table here. +Mining rewards are subject to a vesting schedule to support long-term network alignment. For instance, 75% of block rewards earned by miners vest linearly over 180 days, while 25% are immediately accessible, improving miner cash flow and profitability. Further, FIL tokens are vested to Protocol Labs teams and the Filecoin Foundation over six years and to SAFT investors over three years, as outlined in the vesting schedule. -## Collateral and slashing +## Collateral and Slashing -To encourage good behavior from network participants, during block reward mining, storage providers must lock Filecoin tokens as pledge collateral for consensus security, storage reliability, and contract guarantees. Pledge collateral is determined by projected block rewards that a miner would earn. Collateral and all earned rewards by storage providers are subject to slashing throughout the lifetime of a sector if the storage does not pass a reliability check. +To ensure network security and reliable storage, storage providers must lock FIL as pledge collateral during block reward mining. Pledge collateral is based on projected block rewards a miner could earn. Collateral and all earned rewards are subject to slashing if the storage fails to meet reliability standards throughout a sector’s lifecycle. -## Total supply +## Total Supply -FIL has a maximum circulating supply of 2,000,000,000 FIL, meaning that at most 2B Filecoin will ever be created. In practice, this max supply would never be reached since a considerable amount of FIL are burnt as gas fees, penalties etc., and are permanently removed from circulating supply. +FIL’s maximum circulating supply is capped at 2 billion FIL. However, this maximum will never be reached, as a portion of FIL is permanently removed from circulation through gas fees, penalties, and other mechanisms. - - -[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill\_Page+URL=https://docs.filecoin.io/basics/what-is-filecoin/crypto-economics) +[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill_Page+URL=https://docs.filecoin.io/basics/what-is-filecoin/crypto-economics) From bfcecddd8769d694f641562f531194299da022d6 Mon Sep 17 00:00:00 2001 From: Mirha Masala Date: Mon, 4 Nov 2024 13:51:12 +0000 Subject: [PATCH 04/13] Edit basics/what-is-filecoin/blockchain.md --- basics/what-is-filecoin/blockchain.md | 126 ++++++++++++-------------- 1 file changed, 59 insertions(+), 67 deletions(-) diff --git a/basics/what-is-filecoin/blockchain.md b/basics/what-is-filecoin/blockchain.md index 596016e91..0126ba635 100644 --- a/basics/what-is-filecoin/blockchain.md +++ b/basics/what-is-filecoin/blockchain.md @@ -1,119 +1,111 @@ --- description: >- - A blockchain is a distributed database that is shared among the nodes of a - computer network. This page covers how the Filecoin blockchain is designed, - and the various functions it has. + A blockchain is a distributed database shared among nodes in a computer network. This page covers the design and functions of the Filecoin blockchain. --- # Blockchain ## Tipsets -The Filecoin blockchain is a chain of tipsets rather than a chain of blocks. A tipset is a set of blocks with the same height and parent tipset. Therefore, multiple storage providers can produce blocks for each epoch to increase network throughput. +The Filecoin blockchain consists of a chain of tipsets rather than individual blocks. A tipset is a set of blocks with the same height and parent tipset, allowing multiple storage providers to produce blocks in each epoch to increase network throughput. -Each tipset is assigned a weight, so the consensus protocol directs nodes to build on the heaviest chain. This provides a certain level of security to the Filecoin network by preventing a node from intentionally intervening with other nodes to produce valid blocks. +Each tipset is assigned a weight, enabling the consensus protocol to guide nodes to build on the heaviest chain. This adds a level of security to the Filecoin network by preventing interference from nodes attempting to produce invalid blocks. ## Actors -An Actor in the Filecoin Blockchain is the equivalent of the smart contract in the Ethereum Virtual Machine. It is essentially an ‘object’ in the Filecoin network with a state and a set of methods that can be used to interact with it. +An actor in the Filecoin blockchain is similar to a smart contract in the Ethereum Virtual Machine. It functions as an ‘object’ within the Filecoin network, with a state and a set of methods for interaction. -### Built-in actors +### Built-in Actors -There are several built-in system actors that power the Filecoin network as the decentralized storage network. +Several built-in system actors power the Filecoin network as a decentralized storage network: -* System Actor - general system actor. -* Init actor - initializes new actors and records the network name. -* Cron Actor - a scheduler actor that runs critical functions at every epoch. -* Account Actor - responsible for user accounts (non-singleton). -* Reward Actor - managing block reward and token vesting (singleton). -* Storage Miner Actor - storage mining operation and validate storage proofs. -* Storage Power Actor - keeping track of the storage power allocated at each storage provider -* Storage Market Actor - managing storage deals. -* Multisig Actor - responsible for operations involving the Filecoin multi-signature wallet. -* Payment Channel Actor - set up and settle payment channel funds. -* Datacap Actor - responsible for datacap token management. -* Verified Registry Actor - responsible for managing verified clients. -* Ethereum address Manager (EAM) Actor- responsible for assigning all Ethereum compatible addresses on Filecoin Network, including EVM smart contract addresses and Ethereum account addresses. -* EVM Account Actor - a non-singleton built-in actor representing an external Ethereum identity backed by a secp256k1 key. +- **System Actor**: General system actor. +- **Init Actor**: Initializes new actors and records the network name. +- **Cron Actor**: Scheduler that runs critical functions at every epoch. +- **Account Actor**: Manages user accounts (non-singleton). +- **Reward Actor**: Manages block rewards and token vesting (singleton). +- **Storage Miner Actor**: Manages storage mining operations and validates storage proofs. +- **Storage Power Actor**: Tracks storage power allocation for each provider. +- **Storage Market Actor**: Manages storage deals. +- **Multisig Actor**: Handles Filecoin multi-signature wallet operations. +- **Payment Channel Actor**: Sets up and settles payment channel funds. +- **Datacap Actor**: Manages datacap tokens. +- **Verified Registry Actor**: Manages verified clients. +- **Ethereum Address Manager (EAM) Actor**: Assigns Ethereum-compatible addresses on Filecoin, including EVM smart contract addresses. +- **EVM Account Actor**: Represents an external Ethereum identity backed by a secp256k1 key. -### User-programmable actors +### User-Programmable Actors -Along with the maturity of FVM, developers can write actors and deploy them to the Filecoin network in the same way as other blockchains. Other blockchains refer to these programs as _smart contracts_. User-programmable actors can also interact with built-in actors using the exported API from built-in actors. +With the maturity of the FVM, developers can write actors and deploy them on the Filecoin network, similar to other blockchains' smart contracts. User-programmable actors can interact with built-in actors via the exported API from built-in actors. -You can check out this talk on How Filecoin Actors Work to learn more: +## Distributed Randomness -## Distributed randomness - -Filecoin uses distributed and publicly verifiable random beacon protocol - [Drand](https://drand.love) as the randomness beacon for the leader election during the [expected consensus](blockchain.md#expected-consensus) to produce blocks. This randomness guarantees that the leader election is secret, fair, and verifiable. +Filecoin uses the [Drand](https://drand.love) protocol as a randomness beacon for leader election in the [expected consensus](blockchain.md#expected-consensus) process. This randomness ensures leader election is secret, fair, and verifiable. ## Nodes -Nodes in the Filecoin network are primarily identified in terms of the services they provide to serve the Filecoin storage network, including chain verifier nodes, client nodes, storage provider nodes, and retrieval provider nodes. Any node participating in the Filecoin network should provide the chain verification service as a minimum. +Filecoin nodes are categorized by the services they provide to the storage network, including chain verifier nodes, client nodes, storage provider nodes, and retrieval provider nodes. All participating nodes must provide chain verification services. -Filecoin is targeting multiple protocol implementations to guarantee the security and resilience of the Filecoin network. Currently, the actively maintained implementations are: +Filecoin supports multiple protocol implementations to enhance security and resilience. Active implementations include: -* [Lotus](https://lotus.filecoin.io/) -* [Venus](https://github.com/filecoin-project/venus) -* [Forest](https://github.com/ChainSafe/forest) +- [Lotus](https://lotus.filecoin.io/) +- [Venus](https://github.com/filecoin-project/venus) +- [Forest](https://github.com/ChainSafe/forest) ## Addresses -In the Filecoin network, addresses are used to identify actors in the Filecoin state. The address encodes information about the corresponding actor, providing a robust address format that is easy to use and resistant to errors. There are five types of addresses in Filecoin. Mainnet addresses begin with the letter `f`, and Testnet addresses begin with the letter `t`. +In the Filecoin network, addresses identify actors in the Filecoin state. Each address encodes information about the corresponding actor, making it easy to use and resistant to errors. Filecoin has five address types. Mainnet addresses start with `f`, and Testnet addresses start with `t`. -* `f0/t0`: an ID address for an actor in a more “human friendly” way. For instance, f0123261 is the ID for a storage provider. -* `f1/t1`: a secp256k1 wallet address with encrypted key pair. Essentially, this is a wallet address generated from the secp256k1 public key. -* `f2/t2`: an address represents an actor (smart contract) and is assigned in a way that makes it safe to use during network forks. -* `f3/t3`: a BLS wallet address generated from a BLS public encryption key. -* `f4/t4`: the addresses which were created and assigned to user-defined actors by user-definable “address management” actors. This address can receive funds before an actor has been deployed to the address. -* `f410/t410`: the address space managed by Ethereum Address Manager (EAM) built-in actor. The original Ethereum addresses can be cast as f410/t410 addresses and vice versa to enable existing Ethereum tools to interact seamlessly with the Filecoin network. +- **`f0/t0`**: ID address for an actor in a human-readable format, such as `f0123261` for a storage provider. +- **`f1/t1`**: secp256k1 wallet address, generated from an encrypted secp256k1 public key. +- **`f2/t2`**: Address assigned to an actor (smart contract) in a way that ensures stability across network forks. +- **`f3/t3`**: BLS wallet address, generated from a BLS public key. +- **`f4/t4`**: Address created and assigned to user-defined actors by customizable "address management" actors. This address can receive funds before an actor is deployed. +- **`f410/t410`**: Address space managed by the Ethereum Address Manager (EAM) actor, allowing Ethereum-compatible addresses to interact seamlessly with the Filecoin network. Ethereum addresses can be cast as `f410/t410` addresses and vice versa, enabling compatibility with existing Ethereum tools. ## Consensus -Let’s quickly cover how consensus works in the Filecoin network. - -### Expected consensus +### Expected Consensus -Expected consensus (EC) is the underlying consensus algorithm used by Filecoin. EC is a probabilistic Byzantine fault-tolerant consensus protocol that runs a leader election among a set of storage providers to submit a block every epoch. Like proof-of-stake, Filecoin uses proof-of-storage for the leader election, meaning the likelihood of being elected depends on how much provable storage power a miner contributes to the network. The storage power of the network is stored in the storage power table and managed by the Storage Power Actor. +Expected Consensus (EC) is the consensus algorithm underlying Filecoin. EC is a probabilistic, Byzantine fault-tolerant protocol that conducts a leader election among storage providers each epoch to determine which provider submits a block. Similar to proof-of-stake, Filecoin’s leader election relies on proof-of-storage, meaning the probability of being elected depends on how much provable storage power a miner contributes to the network. This storage power is recorded in the storage power table, managed by the Storage Power Actor. -At a high level, the consensus process relies on [Drand](https://drand.love) to provide distributed and verifiable randomness to keep leader election secret, fair and verifiable. All the election participants and their power are drawn from the Power Table, which is calculated and maintained over time by the Storage Power Consensus subsystem. Eventually, EC takes all valid blocks produced in this epoch and uses a weighting function to select the chain with the highest weight to add blocks. +At a high level, the consensus process uses [Drand](https://drand.love) to provide distributed, verifiable randomness, ensuring that leader election is secret, fair, and unbiased. Election participants and their storage power are drawn from the Power Table, which is continuously calculated and maintained by the Storage Power Consensus subsystem. Ultimately, EC gathers all valid blocks produced in an epoch and applies a weighting function to select the heaviest chain, adding blocks accordingly. -### Block production process +### Block Production Process -The process of producing a block for each epoch can be briefly described as follows: +The block production process for each epoch is as follows: -* Elect leaders from eligible miners. -* Miners need to check if they are elected. -* An elected miner gets the randomness value to generate WinningPoSt. -* If all above is successful, miners build and propagate a block. -* Verify whether a miner won the block and verify the leader election. -* Eventually, select the heaviest chain to add blocks. +- Elect leaders from eligible miners. +- Miners check if they are elected. +- Elected miners generate WinningPoSt using randomness. +- Miners build and propagate a block. +- Verify the winning miner and election. +- Select the heaviest chain to add blocks. ### Finality -EC enforces a version of soft finality whereby all miners at round `N` will reject all blocks that fork off before round `N - F`. `F` is set to `900`. This is important to enforce finality at no cost to chain availability and functionality. +EC enforces soft finality, where miners at round `N` reject blocks forking off before round `N - F` (where `F` is set to `900`). This ensures finality without compromising chain availability. ## Proofs -As a decentralized storage network, Filecoin is built on the proof-of-storage in which miners contribute their vacant storage space to the network to store data and then provide proofs for the client to verify if their data has been stored throughout a period. +Filecoin operates on proof-of-storage, where miners offer storage space and provide proofs to verify data storage. -### Proof of replication +### Proof of Replication -Using proof-of-replication (PoRep), storage providers prove that they have created a unique copy of the client’s data and stored it on behalf of the network. +With proof-of-replication (PoRep), storage providers prove they have created a unique copy of the client’s data for the network. -### Proof of spacetime +### Proof of Spacetime -Storage providers also need to continuously prove that they store clients’ data for the whole lifetime of the storage deal. There are two types of challenges as part of the proof-of-spacetime (PoSt) process: +Storage providers must continuously prove that they are storing clients' data throughout the entire duration of the storage deal. The proof-of-spacetime (PoSt) process includes two types of challenges: -* Winning PoSt guarantees that the storage provider maintains a copy of data at a specific time. -* Window PoSt is used as proof that a copy of the data has been continuously maintained over time. +- **Winning PoSt**: Verifies that a storage provider holds a copy of the data at a specific point in time. +- **Window PoSt**: Confirms that the data has been consistently stored over a defined period. ### Slashing -If storage providers fail to provide reliable uptime or act maliciously against the network, they will be penalized by slashing. Filecoin implements two kinds of slashing: - -* Storage fault slashing to penalize storage providers for not being able to maintain healthy and reliable storage sectors for the network. -* Consensus fault slashing to penalize storage providers to sabotage the liveness and security of the consensus process. - +If storage providers fail to maintain reliable uptime or act maliciously, they face penalties through a process called slashing. Filecoin enforces two types of slashing: +- **Storage Fault Slashing**: Penalizes providers who fail to maintain healthy and reliable storage sectors. +- **Consensus Fault Slashing**: Penalizes providers attempting to disrupt the security or availability of the consensus process. -[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill\_Page+URL=https://docs.filecoin.io/basics/what-is-filecoin/blockchain) +[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill_Page+URL=https://docs.filecoin.io/basics/what-is-filecoin/blockchain) From ad1a251451557db56a31539c8dd9e9983c30d70c Mon Sep 17 00:00:00 2001 From: Mirha Masala Date: Mon, 4 Nov 2024 13:55:29 +0000 Subject: [PATCH 05/13] Edit basics/what-is-filecoin/storage-model.md --- basics/what-is-filecoin/storage-model.md | 37 +++++++++++------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/basics/what-is-filecoin/storage-model.md b/basics/what-is-filecoin/storage-model.md index d4584f715..31e9e479b 100644 --- a/basics/what-is-filecoin/storage-model.md +++ b/basics/what-is-filecoin/storage-model.md @@ -1,42 +1,39 @@ --- description: >- - A storage model defines how data is stored within a system. This page covers - the basic aspects of Filecoin’s storage model. + A storage model defines how data is stored within a system. This page covers the basic aspects of Filecoin’s storage model. --- -# Storage model +# Storage Model -The Filecoin storage model consists of three components: +The Filecoin storage model consists of three main components: -* Providers -* Deals -* Sectors +- Providers +- Deals +- Sectors ## Providers -Providers, as the name suggests, provide a service to users of the network. There are two types of provider: +Providers offer storage and retrieval services to network users. There are two types of providers: -* Storage providers -* Retrieval providers +- Storage Providers +- Retrieval Providers -### Storage providers +### Storage Providers -Storage providers, often called SPs, are responsible for storing files and data for clients on the network and providing cryptographic proofs to verify storage. The vast majority of providers on the Filecoin network are SPs. +Storage providers, often called SPs, are responsible for storing files and data for clients on the network. They also provide cryptographic proofs to verify that data is stored securely. The majority of providers on the Filecoin network are SPs. -### Retrieval providers +### Retrieval Providers -Retrieval providers, often called RPs, are responsible for providing users quick access to their data. They focus on rapid access to data, rather than long-term storage. Most of the time storage providers also provide retrieval access to their users as part of the same system. However, more and more stand-alone RPs are joining the network. +Retrieval providers, or RPs, specialize in delivering quick access to data rather than long-term storage. While many storage providers also offer retrieval services, stand-alone RPs are increasingly joining the network to enhance data accessibility. ## Deals -In the Filecoin network, SPs and RPs provide their storage or retrieval service to data clients through deals. These deals are negotiated and agreed upon between two parties, and include terms like data size, price, deal duration, and collateral. +In the Filecoin network, SPs and RPs offer storage or retrieval services to clients through deals. These deals are negotiated between two parties and outline terms such as data size, price, duration, and collateral. -The deal-making process happens _off-chain_. Once both parties agree to the terms of a deal, that deal is published _on-chain_ for the rest of the network to see and validate. +The deal-making process initially occurs _off-chain_. Once both parties agree to the terms, the deal is published _on-chain_ for network-wide visibility and validation. ## Sectors -Sectors are the basic units of provable storage where storage providers store clients’ data and generate PoSt on behalf of the Filecoin network. Sectors have standard sizes and a lifetime that storage providers can extend before reaching the end of the lifetime. `32 GiB` and `64 GiB` sector sizes are supported. +Sectors are the fundamental units of provable storage where storage providers securely store client data and generate PoSt (Proof of Spacetime) for the Filecoin network. Sectors come in standard sizes, typically `32 GiB` or `64 GiB`, and have a set lifespan that providers can extend before it expires. - - -[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill\_Page+URL=https://docs.filecoin.io/basics/what-is-filecoin/storage-model) +[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill_Page+URL=https://docs.filecoin.io/basics/what-is-filecoin/storage-model) From 610ec7332b16aefc3a3dddcdc0add36ea18f3aa1 Mon Sep 17 00:00:00 2001 From: Mirha Masala Date: Mon, 4 Nov 2024 14:00:19 +0000 Subject: [PATCH 06/13] Edit basics/what-is-filecoin/storage-market.md --- basics/what-is-filecoin/storage-market.md | 53 +++++++++++------------ 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/basics/what-is-filecoin/storage-market.md b/basics/what-is-filecoin/storage-market.md index 1355fd518..483f35bb2 100644 --- a/basics/what-is-filecoin/storage-market.md +++ b/basics/what-is-filecoin/storage-market.md @@ -1,45 +1,42 @@ --- description: >- - The storage market is the data entry point into the network where storage - providers and clients negotiate and publish storage deals on-chain. + The storage market is the entry point where storage providers and clients negotiate and publish storage deals on-chain. --- -# Storage market +# Storage Market -## Deal making +## Deal Making -The lifecycle for a deal within the storage market contains four distinct phases: +The lifecycle of a deal within the storage market includes four distinct phases: -* Discovery: the client identifies potential SPs and asks for their prices. -* Negotiation: once the client has selected an SP both parties agree to the term of the deal. -* Publishing: the deal is published on-chain. -* Handoff: the deal is added into a sector where data storage can be proven by the SP. +- **Discovery**: The client identifies potential storage providers (SPs) and requests their prices. +- **Negotiation**: After selecting an SP, both parties agree to the terms of the deal. +- **Publishing**: The deal is published on-chain. +- **Handoff**: The deal is added to a sector, where the SP can provide cryptographic proofs of data storage. -## Filecoin plus +## Filecoin Plus -The mission of Filecoin Plus is to maximize the amount of useful storage on the Filecoin network. The aim is to bring more meaningful and valuable data into the Filecoin network by offering verified clients cheap, or even free, storage. This mechanism is designed and operates around datacap, the storage quota allocated to verified clients to store data and boost incentives for storage providers. +Filecoin Plus aims to maximize useful storage on the Filecoin network by incentivizing the storage of meaningful and valuable data. It offers verified clients low-cost or free storage through a system called datacap, a storage quota that boosts incentives for storage providers. -Verified clients can onboard data into Filecoin using datacap, which they apply from community-selected allocators. In return for storing verified storage deals, storage providers receive datacap with a 10x boost to their storage power which eventually increases their block rewards as an incentive. +Verified clients use datacap allocated by community-selected allocators to store data on the network. In exchange for storing verified deals, storage providers receive a 10x boost in storage power, which increases their block rewards as an incentive. -* Datacap: a Datacap token will be allocated to a verified client to spend in the storage deals carrying a 10x deal quality multiplier. -* Allocators: community-selected allocators govern the program by verifying storage clients and allocating datacap tokens to verified clients. -* Verified clients: clients are active network participants with datacap allocation for their data storage. +- **Datacap**: A token allocated to verified clients to spend on storage deals, offering a 10x quality multiplier for deals. +- **Allocators**: Community-selected entities responsible for verifying storage clients and allocating datacap tokens. +- **Verified Clients**: Active participants with datacap allocations for their data storage needs. -## Storage on-ramps +## Storage On-Ramps -To simplify the process of storing data on the network, there are many storage helpers to provide an easier way to integrate Filecoin storage as well as IPFS into your applications or smart contracts. +To simplify data storage on the Filecoin network, several tools offer streamlined integration of Filecoin and IPFS storage for applications or smart contracts. -Storage helpers provide libraries that abstract Filecoin deal-making into simple, streamlined API calls and storing the data on IPFS to provide more efficient and fast retrieval for your content. +These storage helpers provide libraries that abstract the Filecoin deal-making process into simple API calls. They also store data on IPFS for efficient and fast content retrieval. -Here are some available storage helpers: +Available storage helpers include: -* [lighthouse.storage](https://www.lighthouse.storage/) - an SDK for builders that includes tools to do storage from dApps. -* [web3.storage](https://web3.storage/) - easy to use client for accessing decentralized protocols like IPFS and UCAN. -* [Akave](https://www.akave.ai/) - innovating data management with a decentralized, modular L2 solution that combines the robust storage of Filecoin with cutting-edge encryption and easy-to-use interfaces. -* [Storacha](https://storacha.network/) - a decentralized hot storage network for data at scale, offering user-owned data with decentralized permissioning, leveraging Filecoin. -* [Curio](https://curiostorage.org/) - a next-gen platform in the Filecoin ecosystem, streamlining storage provider operations. -* [boost.filecoin.io](https://boost.filecoin.io/) - a tool for Storage Providers to manage data onboarding and retrieval on the Filecoin network. +- [lighthouse.storage](https://www.lighthouse.storage/): An SDK for builders, providing tools for storing data from dApps. +- [web3.storage](https://web3.storage/): A user-friendly client for accessing decentralized protocols like IPFS and UCAN. +- [Akave](https://www.akave.ai/): A modular L2 solution for decentralized data management, combining Filecoin storage with encryption and easy-to-use interfaces. +- [Storacha](https://storacha.network/): A decentralized hot storage network for scalable, user-owned data with decentralized permissions, leveraging Filecoin. +- [Curio](https://curiostorage.org/): A next-gen platform within the Filecoin ecosystem, streamlining storage provider operations. +- [boost.filecoin.io](https://boost.filecoin.io/): A tool for storage providers to manage data onboarding and retrieval on the Filecoin network. - - -[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill\_Page+URL=https://docs.filecoin.io/basics/what-is-filecoin/storage-market) +[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill_Page+URL=https://docs.filecoin.io/basics/what-is-filecoin/storage-market) From 4fc2d8296c06647333daadabb7ec1086c9205666 Mon Sep 17 00:00:00 2001 From: Mirha Masala Date: Mon, 4 Nov 2024 14:04:40 +0000 Subject: [PATCH 07/13] Edit basics/what-is-filecoin/retrieval-market.md --- basics/what-is-filecoin/retrieval-market.md | 24 +++++++++------------ 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/basics/what-is-filecoin/retrieval-market.md b/basics/what-is-filecoin/retrieval-market.md index 75625994a..67eea0b19 100644 --- a/basics/what-is-filecoin/retrieval-market.md +++ b/basics/what-is-filecoin/retrieval-market.md @@ -1,26 +1,22 @@ --- description: >- - The retrieval market refers to negotiating retrieval deals for a provider to - serve stored data to a client. In this agreement, the client agrees to pay the - retrieval provider a certain amount of FIL f + The retrieval market facilitates the negotiation of retrieval deals for serving stored data to clients in exchange for FIL. --- -# Retrieval market +# Retrieval Market -## Basic retrieval +## Basic Retrieval -Currently, Filecoin nodes support direct retrieval from the storage miners who originally stored the data. Clients can directly send retrieval requests to a storage provider to retrieve their data by paying some FIL for retrieval. +Currently, Filecoin nodes support direct retrieval from the storage miners who originally stored the data. Clients can send retrieval requests directly to a storage provider and pay a small amount of FIL to retrieve their data. -Clients need to provide enough information to the storage provider for the data retrieval request, including: +To request data retrieval, clients need to provide the following information to the storage provider: -* Storage provider ID: The ID of the storage provider where the data is stored. -* Payload CID: also called Data CID. -* Address: The address initially used to create the storage deal. +- **Storage Provider ID**: The ID of the storage provider where the data is stored. +- **Payload CID**: Also known as Data CID. +- **Address**: The address initially used to create the storage deal. ## Saturn -[Saturn](https://saturn.tech/) is a Web3 CDN in Filecoin’s retrieval market which serves the data stored on Filecoin with low latency and at low cost. It consists of independent retrieval providers specifically dedicated to that business, making retrieval an efficient, fast, and reliable operation. +[Saturn](https://saturn.tech/) is a Web3 CDN within Filecoin’s retrieval market that serves data stored on Filecoin with low latency and at a low cost. It consists of independent retrieval providers dedicated to efficient, fast, and reliable data retrieval operations. - - -[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill\_Page+URL=https://docs.filecoin.io/basics/what-is-filecoin/retrieval-market) +[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill_Page+URL=https://docs.filecoin.io/basics/what-is-filecoin/retrieval-market) From a5197cf3c7556348d40b3da63e24613d690a257b Mon Sep 17 00:00:00 2001 From: Mirha Masala Date: Mon, 4 Nov 2024 14:09:06 +0000 Subject: [PATCH 08/13] Edit basics/what-is-filecoin/networks.md --- basics/what-is-filecoin/networks.md | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/basics/what-is-filecoin/networks.md b/basics/what-is-filecoin/networks.md index 22ec5a2cf..1854de5d1 100644 --- a/basics/what-is-filecoin/networks.md +++ b/basics/what-is-filecoin/networks.md @@ -1,28 +1,25 @@ --- description: >- - The Filecoin network has several different networks for testing, staging, and - production purposes. This page contains information on available networks. + The Filecoin network has several networks for testing, staging, and production purposes. This page provides information on available networks. --- # Networks ## Mainnet -[Mainnet](../../networks/mainnet/) is the live production network that all nodes on the Filecoin network are connected to. It never resets. +[Mainnet](../../networks/mainnet/) is the live production network that connects all nodes on the Filecoin network. It operates continuously without resets. ## Testnets -Test networks, or testnets, are version of the Filecoin network that attempt to simulate various aspects of the Filecoin mainnet. Since they are for testing they should not be used for production applications or services. +Test networks, or testnets, are versions of the Filecoin network that simulate various aspects of the mainnet. They are intended for testing and should not be used for production applications or services. ### Calibration -[Calibration](../../networks/calibration/) testnet is the most realistic simulation of the mainnet, where prospective storage providers can experience more realistic sealing performance and hardware requirements due to the use of final proofs constructions and parameters, and prospective storage clients can store and retrieve real data on the network. Clients can participate in deal-making workflows and storage/retrieval functionality. It also has the same sector size as the mainnet. +The [Calibration](../../networks/calibration/) testnet offers the closest simulation of the mainnet. It provides realistic sealing performance and hardware requirements due to the use of finalized proofs and parameters, allowing prospective storage providers to test their setups. Storage clients can also store and retrieve real data on this network, participating in deal-making workflows and testing storage/retrieval functionalities. Calibration testnet uses the same sector size as the mainnet. -* [Public endpoint](https://api.calibration.node.glif.io/rpc/v0) -* [Blockchain explorer](https://calibration.filscan.io/) -* [Calibration Faucet - Chainsafe](https://faucet.calibnet.chainsafe-fil.io) -* [Calibration Faucet - Zondax](https://beryx.zondax.ch/faucet/) +- [Public endpoint](https://api.calibration.node.glif.io/rpc/v0) +- [Blockchain explorer](https://calibration.filscan.io/) +- [Calibration Faucet - Chainsafe](https://faucet.calibnet.chainsafe-fil.io) +- [Calibration Faucet - Zondax](https://beryx.zondax.ch/faucet/) - - -[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill\_Page+URL=https://docs.filecoin.io/basics/what-is-filecoin/networks) +[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill_Page+URL=https://docs.filecoin.io/basics/what-is-filecoin/networks) From fc511da97a34779e522c8018cf06662331ceaf64 Mon Sep 17 00:00:00 2001 From: Mirha Masala Date: Mon, 4 Nov 2024 15:07:38 +0000 Subject: [PATCH 09/13] Edit basics/what-is-filecoin/programming-on-filecoin.md --- .../programming-on-filecoin.md | 84 +++++++++---------- 1 file changed, 39 insertions(+), 45 deletions(-) diff --git a/basics/what-is-filecoin/programming-on-filecoin.md b/basics/what-is-filecoin/programming-on-filecoin.md index 6eb7bc53b..4fe97f5c1 100644 --- a/basics/what-is-filecoin/programming-on-filecoin.md +++ b/basics/what-is-filecoin/programming-on-filecoin.md @@ -1,90 +1,84 @@ --- description: >- - Once data has been stored, it is possible to run computations and calculations - on that data, without needing to retrieve the data from a storage provider. - This page covers the basics of how programmin + Once data is stored, computations can be performed directly on it without needing retrieval. This page covers the basics of programming on Filecoin. --- # Programming on Filecoin -## Compute-over-data +## Compute-over-Data -When it comes to data, a common need beyond storage and retrieval is data transformation. The goal with the compute-over-data protocols is generally to perform computation over IPLD, which is the data layer used by content-addressed systems like Filecoin. There are working groups working on different types of computing on Filecoin data, such as large-scale parallel compute (e.g., Bacalhau) and cryptographically verifiable compute (e.g. [Lurk](https://filecoin.io/blog/posts/introducing-lurk-a-programming-language-for-recursive-zk-snarks/)), etc. +Beyond storage and retrieval, data often needs transformation. Compute-over-data protocols enable computations over IPLD, the data layer used by content-addressed systems like Filecoin. Working groups are developing compute solutions for Filecoin data, including large-scale parallel compute (e.g., [Bacalhau](https://www.bacalhau.org/)) and cryptographically verifiable compute (e.g., [Lurk](https://filecoin.io/blog/posts/introducing-lurk-a-programming-language-for-recursive-zk-snarks/)). -For example, [Bacalhau](https://www.bacalhau.org/) is a platform for public, transparent, and optionally verifiable distributed computation. It enables users to run arbitrary Docker containers and WebAssembly (wasm) images as tasks against data stored in the InterPlanetary File System (IPFS). +For example, Bacalhau provides a platform for public, transparent, and verifiable distributed computation, allowing users to run Docker containers and WebAssembly (Wasm) images as tasks on data stored in InterPlanetary File System (IPFS). -It is worth noting that Filecoin is uniquely positioned to support large-scale off-chain computation since the storage providers have to compute resources such as GPUs and CPUs colocated with their data. By supporting compute-over-data on the Filecoin network, we enable a new paradigm of computing on the data where the data exists rather than moving the data to external compute nodes. +Filecoin is uniquely positioned to support large-scale off-chain computation because storage providers have compute resources, such as GPUs and CPUs, colocated with their data. This setup enables a new paradigm where computations occur directly on the data where it resides, reducing the need to move data to external compute nodes. -## Filecoin virtual machine +## Filecoin Virtual Machine -The Filecoin virtual machine (FVM) is a runtime environment for smart contracts on the Filecoin network. Smart contracts enable users to run any bounded computation, including those that create and enforce rules for storing and accessing data on the network. The FVM is responsible for executing these smart contracts and ensuring they are executed correctly and securely. +The Filecoin Virtual Machine (FVM) is a runtime environment for executing smart contracts on the Filecoin network. These smart contracts allow users to run bounded computations and establish rules for storing and accessing data. The FVM ensures that these contracts are executed securely and reliably. -FVM is designed to support native Filecoin actors written in languages that compile to WASM, as well as smart contracts written for foreign runtimes, including Solidity contracts for Ethereum Virtual Machine (EVM), Secure EcmaScript (SES), and eBPF. The [reference FVM](https://github.com/filecoin-project/ref-fvm) and SDK are written in Rust. +The FVM is designed to support both native Filecoin actors written in languages that compile to Wasm and smart contracts from other runtimes, such as Solidity for the Ethereum Virtual Machine (EVM), Secure EcmaScript (SES), and eBPF. The [reference FVM](https://github.com/filecoin-project/ref-fvm) and SDK are written in Rust, ensuring high performance and security. -According to the FVM roadmap, we initially support smart contracts written in Solidity and eventually support any language that compiles to WASM. +Initially, the FVM supports smart contracts written in Solidity, with plans to expand to other languages that compile to Wasm, as outlined in the FVM roadmap. -The FVM enables compute-over-states on the Filecoin network and allows developers to build endless new use cases on top of Filecoin. Some example use cases are: +By enabling compute-over-states on the Filecoin network, the FVM unlocks a wide range of potential use cases. Examples include: -### Data organizations +### Data Organizations -FVM can create a new kind of organization – one built around datasets of various kinds. +FVM enables a new kind of organization centered around data. -#### Data DAO and tokenized datasets +#### Data DAOs and Tokenized Datasets -The FVM enables the creation and management of data-based decentralized and autonomous organizations – data DAOs. The FVM allows a group of individuals, or organizations, to curate and preserve data collection. Data DAOs can govern and monetize data access and pool the returns into a shared treasury to fund the collections preservation and long-term growth. One could even exchange those data tokens between peers and request computation services on that data, such as validation, joins, analysis, feature detection, and extraction, moving into machine learning. +The FVM makes it possible to create and manage decentralized and autonomous organizations (Data DAOs) focused on data curation and preservation. Data DAOs allow groups of individuals or organizations to govern and monetize data access, pooling returns into a shared treasury to fund preservation and growth. These data tokens can also be exchanged among peers or used to request computation services, such as validation, analysis, feature detection, and machine learning. -#### Perpetual storage +#### Perpetual Storage -FVM allows users to store once and have repair and replication bots manage the repetitive storage deal creation tasks so that data can be stored perpetually. Using a smart contract, users can provision a wallet with FIL, and storage providers can use that to fund data storage permanently. Repair bots can monitor the storage deals and replicate the data with other storage providers when necessary. This process gives users long-term storage permanence. +The FVM allows users to store data once and use repair and replication bots to manage ongoing storage deals, ensuring perpetual data storage. Through smart contracts, users can fund a wallet with FIL, allowing storage providers to maintain data storage indefinitely. Repair bots monitor these storage deals and replicate data across providers as needed, offering long-term data permanence. -### Financial services for miners +### Financial Services for Miners -FVM can provide a variety of financial services for storage providers. The needs of these SPs are unique to the Filecoin ecosystem. +The FVM can facilitate unique financial services tailored for storage providers (SPs) in the Filecoin ecosystem. -#### Lending and staking protocols +#### Lending and Staking Protocols -Users can lend out Filecoin to storage providers to use it as storage collateral and receive interest in return. These loans can be undercollateralized based on the on-chain storage history of past storage provider performance. Community members can use this history to generate reputation scores, enabling everyone to identify good borrowers. On top of that, loans can be automatically paid back to investors by using a multisig as the storage provider’s owner address, including lenders and a third party, to help negotiate payback. New FVM-enabled smart contracts give every FIL token holder access to new yield opportunities on their holdings while also benefiting the whole Filecoin economy by allowing entry ramps for providing storage on the network. +Users can lend Filecoin to storage providers to be used as storage collateral, earning interest in return. Loans may be undercollateralized based on SP performance history, with reputation scores generated from on-chain data. Loans can also be automatically repaid to investors using a multisig wallet, which includes lenders and a third-party arbitrator. New FVM-enabled smart contracts create yield opportunities for FIL holders while supporting the growth of storage services on the network. #### Insurance -SPs need to have financial products that help protect them from the risk they are undertaking in creating more storage solutions. Certain characteristics such as payment history, length of operation, and availability can be used to craft insurance policies just as they can be used to underwrite loans to SPs. This can protect them from the financial consequences of active faulting or token price drops. +SPs may require financial products to protect against risks in providing storage solutions. Attributes such as payment history, operational length, and availability can be used to underwrite insurance policies, shielding SPs from financial impacts due to storage faults or token price fluctuations. -### Core chain infrastructure +### Core Chain Infrastructure -We expect that FVM will gain feature parity with other chains that persist. This is required for any EVM chain to operate but is not necessarily tied to storage primitives. +The FVM is expected to achieve feature parity with other persistent EVM chains, supporting critical infrastructure for decentralized exchanges and token bridges. -#### Decentralized exchanges +#### Decentralized Exchanges -Users on FVM need to be able to exchange FIL for other tokens issued on-chain. This may be a decentralized exchange such as a fork of Uniswap or Sushi or involve building a decentralized order book similar to Serum on Solana. +To facilitate on-chain token exchange, the FVM may support decentralized exchanges like Uniswap or Sushi, or implement decentralized order books similar to Serum on Solana. -#### Token bridges +#### Token Bridges -While not immediately on the roadmap, bridges are needed from EVM chains, Move chains, and Cosmos chains to bring wrapped tokens from other ecosystems into the fold. With the current launch, we are more focused internally since the value proposition of Filecoin is unique enough that it does not need to bootstrap TVL from other chains. However, in the long run, we expect FVM to be part of a broader family of blockchains. +Although not an immediate focus, token bridges will eventually connect Filecoin to EVM, Move, and Cosmos chains, enabling cross-chain wrapped tokens. While Filecoin currently offers unique value without needing to bootstrap liquidity from other chains, long-term integration with other blockchains is anticipated. -Besides these, there are a lot more use cases that the FVM could enable, such as data access control ([Medusa](https://cryptonet.org/projects/project-medusa-scalable-threshold-network-on-chain)), retrieval and trustless reputation systems, replication workers, storage bounties, and L2 networks. To learn more about what you can build on top of FVM, check out our [Request for Startup](https://protocollabs.notion.site/Request-for-Startups-FVM-edition-8cd3e76982d14e29b33335ca458fb087) post. +In addition to these, the FVM could support various other use cases, such as data access control ([Medusa](https://cryptonet.org/projects/project-medusa-scalable-threshold-network-on-chain)), trustless reputation systems, replication workers, storage bounties, and L2 networks. For more details on potential use cases, see our [Request for Startups](https://protocollabs.notion.site/Request-for-Startups-FVM-edition-8cd3e76982d14e29b33335ca458fb087) post. -If you are interested in building these use cases, there is a list of solution blueprints that might help as a reference point regarding how some of these could work on a high level: +If you are interested in building these use cases, the following solution blueprints may be helpful: -* [DataDAO Solution Blueprint](https://docs.google.com/document/d/1OYDh\_gs7mAk2M\_O9m-2KedQA7MNo6ysIzH6eaQZxMOk/edit?pli%3D1) -* [Perpetual Storage Solution Blueprint](https://docs.google.com/document/d/19Kck1PiGGrUKyd6XBYj6NtsC5NiCjndUSsv0OFA1Lv0/edit) -* [Lending pool cookbook](https://docs.google.com/document/d/18in74On0bY7KyEsPgItvNvfUUPcPtHjNQtVfLdJUyzM/edit) +- [DataDAO Solution Blueprint](https://docs.google.com/document/d/1OYDh_gs7mAk2M_O9m-2KedQA7MNo6ysIzH6eaQZxMOk/edit?pli=1) +- [Perpetual Storage Solution Blueprint](https://docs.google.com/document/d/19Kck1PiGGrUKyd6XBYj6NtsC5NiCjndUSsv0OFA1Lv0/edit) +- [Lending Pool Cookbook](https://docs.google.com/document/d/18in74On0bY7KyEsPgItvNvfUUPcPtHjNQtVfLdJUyzM/edit) ### Filecoin EVM -The Filecoin EVM runtime (FEVM) is the Ethereum Virtual Machine (EVM) virtualized as a runtime on top of the Filecoin Virtual Machine (FVM). It will allow developers to port any existing EVM-based smart contracts straight onto the FVM and make them work out of the box. FEVM emulates EVM bytecode at the low level, supporting contracts written in Solidity, Vyper, and Yul. The EVM foreign runtime is based on preexisting OSS libraries, including [SputnikVM](https://github.com/rust-blockchain/evm) and Revm. You can find out more details in the [EVM <> FVM mapping specification](https://github.com/filecoin-project/fvm-project/blob/main/04-evm-mapping.md). +The Filecoin EVM (FEVM) is an Ethereum Virtual Machine (EVM) runtime built on top of the FVM. It allows developers to port existing EVM-based smart contracts directly onto Filecoin. The FEVM emulates EVM bytecode at a low level, supporting contracts written in Solidity, Vyper, and Yul. The EVM runtime is based on open-source libraries, including [SputnikVM](https://github.com/rust-blockchain/evm) and Revm. More details can be found in the [EVM <> FVM mapping specification](https://github.com/filecoin-project/fvm-project/blob/main/04-evm-mapping.md). -Because Filecoin nodes offer the Ethereum JSON-RPC API support, FEVM is also completely compatible with any EVM development tools, such as Hardhat, Brownie, and MetaMask. Most smart contracts ported to Filecoin shouldn’t require changes or auditing. For example, new ERC-20 tokens can be launched on the Filecoin network or bridged directly to token pools on other chains. +Since Filecoin nodes support the Ethereum JSON-RPC API, FEVM is compatible with existing EVM development tools, such as Hardhat, Brownie, and MetaMask. Most smart contracts deployed to Filecoin require minimal adjustments, if any. For example, new ERC-20 tokens can be launched on Filecoin or bridged to other chains. -Developers can deploy actors on either the FEVM or native FVM; which one should you choose? The decision can be summed up as such: if you want better performance, write actors that are compiled to WASM and deployed to native FVM. If you are familiar with Solidity and want access to the EVM ecosystem of tools, but don’t mind slightly less performance, deploy to the FEVM. +Developers can choose between deploying actors on the FEVM or native FVM: for optimal performance, actors should be written in languages that compile to Wasm and deployed to the native FVM. For familiarity with Solidity and EVM tools, the FEVM is a convenient alternative. -To sum it up, the FEVM allows current Web3 developers to quickly start writing actors on the Filecoin blockchain while using all of the tools, software packages, and languages they are used to while having access to Filecoin storage deals as a native. +In summary, the FEVM provides a straightforward path for Web3 developers to begin building on Filecoin using familiar tools and languages, while gaining native access to Filecoin storage deals. -The difference between FEVM and EVM contracts is that contracts deployed on FEVM can interact with built-in actors to interact with Filecoin-specific actors, such as miner actors, as mentioned in the built-in actor section. This allows developers to build Filecoin-native decentralized applications for the new use cases mentioned above. Smart contracts deployed to the Ethereum blockchain have no direct access to the Filecoin network or Filecoin-specific actors. +The primary difference between FEVM and EVM contracts is that FEVM contracts can interact directly with Filecoin-specific actors, such as miner actors, which are inaccessible to Ethereum contracts. To enable seamless integration, a Filecoin-Solidity API library has been developed to facilitate interactions with Filecoin-specific actors and syscalls. -To allow Solidity smart contracts on FEVM to seamlessly call methods on Filecoin built-in actors and access Filecoin-specific syscalls idiomatically, a Filecoin-Solidity API library has been developed, you can use it for building your use cases, such as interacting with storage deals. +For example FEVM contracts, see the available [example contracts here](https://github.com/lotus-web3/client-contract). -If you build on FEVM, you might find some of the [example contracts here](https://github.com/lotus-web3/client-contract) helpful. - - - -[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill\_Page+URL=https://docs.filecoin.io/basics/what-is-filecoin/programming-on-filecoin) +[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill_Page+URL=https://docs.filecoin.io/basics/what-is-filecoin/programming-on-filecoin) From 563bc01e8213f606acb1e72b3cf8728dc133d09f Mon Sep 17 00:00:00 2001 From: Mirha Masala Date: Mon, 4 Nov 2024 16:14:52 +0000 Subject: [PATCH 10/13] CR - Prettify --- smart-contracts/advanced/oracles.md | 68 +++++++++++++---------------- 1 file changed, 31 insertions(+), 37 deletions(-) diff --git a/smart-contracts/advanced/oracles.md b/smart-contracts/advanced/oracles.md index d3b78f38f..b1e0f92fd 100644 --- a/smart-contracts/advanced/oracles.md +++ b/smart-contracts/advanced/oracles.md @@ -13,9 +13,9 @@ Oracles are an essential component of many blockchain applications, as they enab Oracles enable builders to integrate the following features into their projects: -* **Price feeds**: DeFi protocols like cross-chain lending rely on oracles for various token or token pair prices. -* **Cross-chain storage deal verification**: enable applications running on any blockchains to use the Filecoin decentralized storage and allow them to verify deal status and proofs. -* **Perpetual storage**: enable automated deal renewal and repair with the oracle providing deal status off-chain. +- **Price feeds**: DeFi protocols like cross-chain lending rely on oracles for various token or token pair prices. +- **Cross-chain storage deal verification**: enable applications running on any blockchains to use the Filecoin decentralized storage and allow them to verify deal status and proofs. +- **Perpetual storage**: enable automated deal renewal and repair with the oracle providing deal status off-chain. ## Available oracles @@ -31,25 +31,20 @@ Pyth publishes both the price feed and a confidence interval for each product. L Pyth’s smart contracts are live on the Filecoin Mainnet and Calibration testnet. - -| Name | Address | Mainnet | Calibration | -| ---------------- | -------------------------------------------- | ------- | ----------- | +| Name | Address | Mainnet | Calibration | +| ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | ------- | ----------- | | [Pyth - Mainnet](https://filecoin.blockscout.com/address/0xA2aa501b19aff244D90cc15a4Cf739D2725B5729?tab=contract) | `0x045CE60839d108B43dF9e703d4b25402a6a28a0d` | ✔️ | | -| [Pyth - Calibration](https://calibration.filfox.info/en/address/0xA2aa501b19aff244D90cc15a4Cf739D2725B5729) | `0x15e6Cc0D69A162151Cadfba035aa10b82b12b970` | | ✔️ | - +| [Pyth - Calibration](https://calibration.filfox.info/en/address/0xA2aa501b19aff244D90cc15a4Cf739D2725B5729) | `0x15e6Cc0D69A162151Cadfba035aa10b82b12b970` | | ✔️ | **Pyth x Filecoin Price Feed IDs** Price Feed IDs for FIL are also available on various chains. These can be found at [Pyth - Price Feed IDs](https://pyth.network/developers/price-feed-ids) and search for 'FIL'. Learn more at [Pyth docs - Price Feed IDs](https://docs.pyth.network/price-feeds/price-feed-ids). - #### **Further Pyth resources** -* [Pyth docs](https://docs.pyth.network/) -* [Pyth - Best Practices](https://docs.pyth.network/price-feeds/best-practices) -* [Pyth Benchmarks - historical price feeds](https://docs.pyth.network/benchmarks) - - +- [Pyth docs](https://docs.pyth.network/) +- [Pyth - Best Practices](https://docs.pyth.network/price-feeds/best-practices) +- [Pyth Benchmarks - historical price feeds](https://docs.pyth.network/benchmarks) ### [Tellor](https://tellor.io/) @@ -74,10 +69,9 @@ Tellor’s smart contracts are live on the Filecoin Mainnet and Calibration test #### **Further Tellor resources** -* [Tellor docs](https://docs.tellor.io/) -* [Filecoin Storage Insurance Contract](https://github.com/tellor-io/filecoin-query-insurance-impl/tree/main) -* [Getting Tellor Data for any use case](https://www.youtube.com/watch?v=AQIDqTLguyI) - FVM Dataverse Hackathon - +- [Tellor docs](https://docs.tellor.io/) +- [Filecoin Storage Insurance Contract](https://github.com/tellor-io/filecoin-query-insurance-impl/tree/main) +- [Getting Tellor Data for any use case](https://www.youtube.com/watch?v=AQIDqTLguyI) - FVM Dataverse Hackathon ### [eOracle](https://www.eoracle.io/) @@ -87,25 +81,25 @@ eOracle extends Ethereum's trust to connect decentralized applications with off- eOracle's smart contracts are live on the Filecoin Calibration testnet. -| Name | Address | Mainnet | Calibration | -| ---------------- | -------------------------------------------- | ------- | ----------- | -| EOFeedManager | `0x4BCafd5f3fB32221BaEAF6B986d1449772885D1E` | | ✔️ | -| EOFeedAdapter - AUD/USD | `0x6243357B9241Fe9C3BAfbA79DeD3300a855113FA` | | ✔️ | -| EOFeedAdapter - BTC/USD | `0x705256d9B37950628F97A1a8De7Ab557345a0A80` | | ✔️ | -| EOFeedAdapter - ETH/USD | `0x2bada837140A310f4A1d9D0e7fab114da6b87031` | | ✔️ | -| EOFeedAdapter - EUR/USD | `0x7C01e105B9c3772Bc72ef55F450b9B96f81EDE82` | | ✔️ | -| EOFeedAdapter - FIL/USD | `0x335C47CF754cf7f5d6DF78EF9fAb065aa5988D89` | | ✔️ | -| EOFeedAdapter - GBP/USD | `0x2Af9bb239936aC3e5a35CC804CD09a8CF3B589e7` | | ✔️ | -| EOFeedAdapter - LINK/USD | `0x7E8326Fd75aCa5A7dF43E999A1119c392EDFC93a` | | ✔️ | -| EOFeedAdapter - SOL/USD | `0x7E3e2953d69890f6B7E5831144986113E9199593` | | ✔️ | -| EOFeedAdapter - USDT/USD | `0x30f43F80279b7BB1b9206896DB90Aabf69494c16` | | ✔️ | -| EOFeedAdapter - XAU/USD | `0x8609B3087D473cD2B6bc7674dD54FF13c909027f` | | ✔️ | -| EOFeedAdapter - sFRAX/FRAX | `0xd56f6CC400f3bFC77faeC4bBb1e0400c6A26A925` | | ✔️ | -| EOFeedAdapter - sfrxETH/frxETH | `0x626A1Cb309289Eb542710D6093C6341562769983` | | ✔️ | -| EOFeedAdapter - stETH/ETH | `0x0834Bb4baf2758a3642636C89D18F97ED6672D1C` | | ✔️ | +| Name | Address | Mainnet | Calibration | +| ------------------------------ | -------------------------------------------- | ------- | ----------- | +| EOFeedManager | `0x4BCafd5f3fB32221BaEAF6B986d1449772885D1E` | | ✔️ | +| EOFeedAdapter - AUD/USD | `0x6243357B9241Fe9C3BAfbA79DeD3300a855113FA` | | ✔️ | +| EOFeedAdapter - BTC/USD | `0x705256d9B37950628F97A1a8De7Ab557345a0A80` | | ✔️ | +| EOFeedAdapter - ETH/USD | `0x2bada837140A310f4A1d9D0e7fab114da6b87031` | | ✔️ | +| EOFeedAdapter - EUR/USD | `0x7C01e105B9c3772Bc72ef55F450b9B96f81EDE82` | | ✔️ | +| EOFeedAdapter - FIL/USD | `0x335C47CF754cf7f5d6DF78EF9fAb065aa5988D89` | | ✔️ | +| EOFeedAdapter - GBP/USD | `0x2Af9bb239936aC3e5a35CC804CD09a8CF3B589e7` | | ✔️ | +| EOFeedAdapter - LINK/USD | `0x7E8326Fd75aCa5A7dF43E999A1119c392EDFC93a` | | ✔️ | +| EOFeedAdapter - SOL/USD | `0x7E3e2953d69890f6B7E5831144986113E9199593` | | ✔️ | +| EOFeedAdapter - USDT/USD | `0x30f43F80279b7BB1b9206896DB90Aabf69494c16` | | ✔️ | +| EOFeedAdapter - XAU/USD | `0x8609B3087D473cD2B6bc7674dD54FF13c909027f` | | ✔️ | +| EOFeedAdapter - sFRAX/FRAX | `0xd56f6CC400f3bFC77faeC4bBb1e0400c6A26A925` | | ✔️ | +| EOFeedAdapter - sfrxETH/frxETH | `0x626A1Cb309289Eb542710D6093C6341562769983` | | ✔️ | +| EOFeedAdapter - stETH/ETH | `0x0834Bb4baf2758a3642636C89D18F97ED6672D1C` | | ✔️ | #### **Further eOracle resources** -* [eOracle docs](https://eoracle.gitbook.io/eoracle) -* [eOracle GitHub](https://github.com/eoracle) -* [eOracle Price Feed Integration Guide](https://eoracle.gitbook.io/eoracle/price-feeds/integration-guide) \ No newline at end of file +- [eOracle docs](https://eoracle.gitbook.io/eoracle) +- [eOracle GitHub](https://github.com/eoracle) +- [eOracle Price Feed Integration Guide](https://eoracle.gitbook.io/eoracle/price-feeds/integration-guide) From ef5be51679f8d7e9b8894ece4994df05398cd802 Mon Sep 17 00:00:00 2001 From: Mirha Masala Date: Mon, 4 Nov 2024 16:17:13 +0000 Subject: [PATCH 11/13] CR - Remove broken link --- smart-contracts/advanced/oracles.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smart-contracts/advanced/oracles.md b/smart-contracts/advanced/oracles.md index b1e0f92fd..4c05f019c 100644 --- a/smart-contracts/advanced/oracles.md +++ b/smart-contracts/advanced/oracles.md @@ -38,7 +38,7 @@ Pyth’s smart contracts are live on the Filecoin Mainnet and Calibration testne **Pyth x Filecoin Price Feed IDs** -Price Feed IDs for FIL are also available on various chains. These can be found at [Pyth - Price Feed IDs](https://pyth.network/developers/price-feed-ids) and search for 'FIL'. Learn more at [Pyth docs - Price Feed IDs](https://docs.pyth.network/price-feeds/price-feed-ids). +Price Feed IDs for FIL are also available on various chains. These can be found at [Pyth - Price Feed IDs](https://pyth.network/developers/price-feed-ids) and search for 'FIL'. #### **Further Pyth resources** From 48a77d2895634b5ead866a1d6a562a473a7fe467 Mon Sep 17 00:00:00 2001 From: Mirha Masala Date: Mon, 4 Nov 2024 16:21:29 +0000 Subject: [PATCH 12/13] CR - Fix broken link --- networks/calibration/explorers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/networks/calibration/explorers.md b/networks/calibration/explorers.md index d4d5f3079..af9880488 100644 --- a/networks/calibration/explorers.md +++ b/networks/calibration/explorers.md @@ -12,7 +12,7 @@ description: >- ## FILFOX -[https://calibration.filfox.info/en](https://calibration.filfox.info/en) +[https://calibration.filfox.info/en](http://47.109.105.51/en) ## Filscan From a0c398cf6834c6c8c64d27e26ea043266de22503 Mon Sep 17 00:00:00 2001 From: Mirha Masala Date: Thu, 7 Nov 2024 06:34:34 +0000 Subject: [PATCH 13/13] CR --- WELCOME.md | 6 +-- basics/what-is-filecoin/blockchain.md | 44 +++++++++---------- basics/what-is-filecoin/crypto-economics.md | 12 ++--- .../programming-on-filecoin.md | 18 ++++---- basics/what-is-filecoin/retrieval-market.md | 4 +- basics/what-is-filecoin/storage-market.md | 6 +-- basics/what-is-filecoin/storage-model.md | 4 +- smart-contracts/advanced/oracles.md | 2 +- .../client-contract-tutorial.md | 44 +++++++++---------- 9 files changed, 70 insertions(+), 70 deletions(-) diff --git a/WELCOME.md b/WELCOME.md index 6246d8a0b..940dbb12b 100644 --- a/WELCOME.md +++ b/WELCOME.md @@ -19,7 +19,7 @@ layout: visible: true --- -# Welcome to the Filecoin Documentation +# Welcome to the Filecoin documentation Choose your own path to start exploring Filecoin: @@ -34,7 +34,7 @@ Choose your own path to start exploring Filecoin: - 💡 Learn the Basics + 💡 Learn the basics New to Filecoin and looking for foundational concepts? Start with the Basics section to understand the essentials and kick off your journey! what-is-filecoin @@ -52,7 +52,7 @@ Choose your own path to start exploring Filecoin: basics - 📊 Store Data + 📊 Store data Looking to store large volumes of data? Explore the Store section to review the various storage options Filecoin offers. storage-model.md diff --git a/basics/what-is-filecoin/blockchain.md b/basics/what-is-filecoin/blockchain.md index 0126ba635..4054db984 100644 --- a/basics/what-is-filecoin/blockchain.md +++ b/basics/what-is-filecoin/blockchain.md @@ -15,30 +15,30 @@ Each tipset is assigned a weight, enabling the consensus protocol to guide nodes An actor in the Filecoin blockchain is similar to a smart contract in the Ethereum Virtual Machine. It functions as an ‘object’ within the Filecoin network, with a state and a set of methods for interaction. -### Built-in Actors +### Built-in actors Several built-in system actors power the Filecoin network as a decentralized storage network: -- **System Actor**: General system actor. -- **Init Actor**: Initializes new actors and records the network name. -- **Cron Actor**: Scheduler that runs critical functions at every epoch. -- **Account Actor**: Manages user accounts (non-singleton). -- **Reward Actor**: Manages block rewards and token vesting (singleton). -- **Storage Miner Actor**: Manages storage mining operations and validates storage proofs. -- **Storage Power Actor**: Tracks storage power allocation for each provider. -- **Storage Market Actor**: Manages storage deals. -- **Multisig Actor**: Handles Filecoin multi-signature wallet operations. -- **Payment Channel Actor**: Sets up and settles payment channel funds. -- **Datacap Actor**: Manages datacap tokens. -- **Verified Registry Actor**: Manages verified clients. -- **Ethereum Address Manager (EAM) Actor**: Assigns Ethereum-compatible addresses on Filecoin, including EVM smart contract addresses. -- **EVM Account Actor**: Represents an external Ethereum identity backed by a secp256k1 key. - -### User-Programmable Actors +- **System actor**: General system actor. +- **Init actor**: Initializes new actors and records the network name. +- **Cron actor**: Scheduler that runs critical functions at every epoch. +- **Account actor**: Manages user accounts (non-singleton). +- **Reward actor**: Manages block rewards and token vesting (singleton). +- **Storage miner actor**: Manages storage mining operations and validates storage proofs. +- **Storage power actor**: Tracks storage power allocation for each provider. +- **Storage market actor**: Manages storage deals. +- **Multisig actor**: Handles Filecoin multi-signature wallet operations. +- **Payment channel actor**: Sets up and settles payment channel funds. +- **Datacap actor**: Manages datacap tokens. +- **Verified registry actor**: Manages verified clients. +- **Ethereum Address Manager (EAM) actor**: Assigns Ethereum-compatible addresses on Filecoin, including EVM smart contract addresses. +- **Ethereum Virtual Machine (EVM) account actor**: Represents an external Ethereum identity backed by a secp256k1 key. + +### User-programmable actors With the maturity of the FVM, developers can write actors and deploy them on the Filecoin network, similar to other blockchains' smart contracts. User-programmable actors can interact with built-in actors via the exported API from built-in actors. -## Distributed Randomness +## Distributed randomness Filecoin uses the [Drand](https://drand.love) protocol as a randomness beacon for leader election in the [expected consensus](blockchain.md#expected-consensus) process. This randomness ensures leader election is secret, fair, and verifiable. @@ -65,13 +65,13 @@ In the Filecoin network, addresses identify actors in the Filecoin state. Each a ## Consensus -### Expected Consensus +### Expected consensus Expected Consensus (EC) is the consensus algorithm underlying Filecoin. EC is a probabilistic, Byzantine fault-tolerant protocol that conducts a leader election among storage providers each epoch to determine which provider submits a block. Similar to proof-of-stake, Filecoin’s leader election relies on proof-of-storage, meaning the probability of being elected depends on how much provable storage power a miner contributes to the network. This storage power is recorded in the storage power table, managed by the Storage Power Actor. At a high level, the consensus process uses [Drand](https://drand.love) to provide distributed, verifiable randomness, ensuring that leader election is secret, fair, and unbiased. Election participants and their storage power are drawn from the Power Table, which is continuously calculated and maintained by the Storage Power Consensus subsystem. Ultimately, EC gathers all valid blocks produced in an epoch and applies a weighting function to select the heaviest chain, adding blocks accordingly. -### Block Production Process +### Block production process The block production process for each epoch is as follows: @@ -90,11 +90,11 @@ EC enforces soft finality, where miners at round `N` reject blocks forking off b Filecoin operates on proof-of-storage, where miners offer storage space and provide proofs to verify data storage. -### Proof of Replication +### Proof of replication With proof-of-replication (PoRep), storage providers prove they have created a unique copy of the client’s data for the network. -### Proof of Spacetime +### Proof of spacetime Storage providers must continuously prove that they are storing clients' data throughout the entire duration of the storage deal. The proof-of-spacetime (PoSt) process includes two types of challenges: diff --git a/basics/what-is-filecoin/crypto-economics.md b/basics/what-is-filecoin/crypto-economics.md index 1f8f86440..72f59bbe8 100644 --- a/basics/what-is-filecoin/crypto-economics.md +++ b/basics/what-is-filecoin/crypto-economics.md @@ -3,9 +3,9 @@ description: >- Crypto-economics is the study of how cryptocurrency can incentivize usage of a blockchain network. This page covers how Filecoin manages incentivization within the network. --- -# Crypto-Economics +# Crypto-economics -## Native Currency +## Native currency Filecoin’s native currency, FIL, is a utility token that incentivizes persistent storage on the Filecoin network. Storage providers earn FIL by offering reliable storage services or committing storage capacity to the network. With a maximum circulating supply of 2 billion FIL, no more than 2 billion Filecoin will ever exist. @@ -13,11 +13,11 @@ As a utility token aligned with the network’s long-term growth, Filecoin issua Filecoin uses a dual minting model for block reward distribution: -## Baseline Minting +## Baseline minting Up to 770 million FIL tokens are minted based on network performance. Full release of these tokens would only occur if the Filecoin network reaches a yottabyte of storage capacity within 20 years, approximately 1,000 times the capacity of today’s cloud storage. -## Simple Minting +## Simple minting An additional 330 million FIL tokens are released on a 6-year half-life schedule, with 97% of these tokens projected to be released over about 30 years. @@ -27,11 +27,11 @@ Additionally, 300 million FIL tokens are held in a mining reserve to incentivize Mining rewards are subject to a vesting schedule to support long-term network alignment. For instance, 75% of block rewards earned by miners vest linearly over 180 days, while 25% are immediately accessible, improving miner cash flow and profitability. Further, FIL tokens are vested to Protocol Labs teams and the Filecoin Foundation over six years and to SAFT investors over three years, as outlined in the vesting schedule. -## Collateral and Slashing +## Collateral and slashing To ensure network security and reliable storage, storage providers must lock FIL as pledge collateral during block reward mining. Pledge collateral is based on projected block rewards a miner could earn. Collateral and all earned rewards are subject to slashing if the storage fails to meet reliability standards throughout a sector’s lifecycle. -## Total Supply +## Total supply FIL’s maximum circulating supply is capped at 2 billion FIL. However, this maximum will never be reached, as a portion of FIL is permanently removed from circulation through gas fees, penalties, and other mechanisms. diff --git a/basics/what-is-filecoin/programming-on-filecoin.md b/basics/what-is-filecoin/programming-on-filecoin.md index 4fe97f5c1..7d9ecf247 100644 --- a/basics/what-is-filecoin/programming-on-filecoin.md +++ b/basics/what-is-filecoin/programming-on-filecoin.md @@ -3,9 +3,9 @@ description: >- Once data is stored, computations can be performed directly on it without needing retrieval. This page covers the basics of programming on Filecoin. --- -# Programming on Filecoin +# Programming on filecoin -## Compute-over-Data +## Compute-over-data Beyond storage and retrieval, data often needs transformation. Compute-over-data protocols enable computations over IPLD, the data layer used by content-addressed systems like Filecoin. Working groups are developing compute solutions for Filecoin data, including large-scale parallel compute (e.g., [Bacalhau](https://www.bacalhau.org/)) and cryptographically verifiable compute (e.g., [Lurk](https://filecoin.io/blog/posts/introducing-lurk-a-programming-language-for-recursive-zk-snarks/)). @@ -27,19 +27,19 @@ By enabling compute-over-states on the Filecoin network, the FVM unlocks a wide FVM enables a new kind of organization centered around data. -#### Data DAOs and Tokenized Datasets +#### Data DAOs and tokenized datasets The FVM makes it possible to create and manage decentralized and autonomous organizations (Data DAOs) focused on data curation and preservation. Data DAOs allow groups of individuals or organizations to govern and monetize data access, pooling returns into a shared treasury to fund preservation and growth. These data tokens can also be exchanged among peers or used to request computation services, such as validation, analysis, feature detection, and machine learning. -#### Perpetual Storage +#### Perpetual storage The FVM allows users to store data once and use repair and replication bots to manage ongoing storage deals, ensuring perpetual data storage. Through smart contracts, users can fund a wallet with FIL, allowing storage providers to maintain data storage indefinitely. Repair bots monitor these storage deals and replicate data across providers as needed, offering long-term data permanence. -### Financial Services for Miners +### Financial services for miners The FVM can facilitate unique financial services tailored for storage providers (SPs) in the Filecoin ecosystem. -#### Lending and Staking Protocols +#### Lending and staking protocols Users can lend Filecoin to storage providers to be used as storage collateral, earning interest in return. Loans may be undercollateralized based on SP performance history, with reputation scores generated from on-chain data. Loans can also be automatically repaid to investors using a multisig wallet, which includes lenders and a third-party arbitrator. New FVM-enabled smart contracts create yield opportunities for FIL holders while supporting the growth of storage services on the network. @@ -47,15 +47,15 @@ Users can lend Filecoin to storage providers to be used as storage collateral, e SPs may require financial products to protect against risks in providing storage solutions. Attributes such as payment history, operational length, and availability can be used to underwrite insurance policies, shielding SPs from financial impacts due to storage faults or token price fluctuations. -### Core Chain Infrastructure +### Core chain infrastructure The FVM is expected to achieve feature parity with other persistent EVM chains, supporting critical infrastructure for decentralized exchanges and token bridges. -#### Decentralized Exchanges +#### Decentralized exchanges To facilitate on-chain token exchange, the FVM may support decentralized exchanges like Uniswap or Sushi, or implement decentralized order books similar to Serum on Solana. -#### Token Bridges +#### Token bridges Although not an immediate focus, token bridges will eventually connect Filecoin to EVM, Move, and Cosmos chains, enabling cross-chain wrapped tokens. While Filecoin currently offers unique value without needing to bootstrap liquidity from other chains, long-term integration with other blockchains is anticipated. diff --git a/basics/what-is-filecoin/retrieval-market.md b/basics/what-is-filecoin/retrieval-market.md index 67eea0b19..dadba5713 100644 --- a/basics/what-is-filecoin/retrieval-market.md +++ b/basics/what-is-filecoin/retrieval-market.md @@ -3,9 +3,9 @@ description: >- The retrieval market facilitates the negotiation of retrieval deals for serving stored data to clients in exchange for FIL. --- -# Retrieval Market +# Retrieval market -## Basic Retrieval +## Basic retrieval Currently, Filecoin nodes support direct retrieval from the storage miners who originally stored the data. Clients can send retrieval requests directly to a storage provider and pay a small amount of FIL to retrieve their data. diff --git a/basics/what-is-filecoin/storage-market.md b/basics/what-is-filecoin/storage-market.md index 483f35bb2..88b223520 100644 --- a/basics/what-is-filecoin/storage-market.md +++ b/basics/what-is-filecoin/storage-market.md @@ -3,9 +3,9 @@ description: >- The storage market is the entry point where storage providers and clients negotiate and publish storage deals on-chain. --- -# Storage Market +# Storage market -## Deal Making +## Deal making The lifecycle of a deal within the storage market includes four distinct phases: @@ -24,7 +24,7 @@ Verified clients use datacap allocated by community-selected allocators to store - **Allocators**: Community-selected entities responsible for verifying storage clients and allocating datacap tokens. - **Verified Clients**: Active participants with datacap allocations for their data storage needs. -## Storage On-Ramps +## Storage on-ramps To simplify data storage on the Filecoin network, several tools offer streamlined integration of Filecoin and IPFS storage for applications or smart contracts. diff --git a/basics/what-is-filecoin/storage-model.md b/basics/what-is-filecoin/storage-model.md index 31e9e479b..a25a78de9 100644 --- a/basics/what-is-filecoin/storage-model.md +++ b/basics/what-is-filecoin/storage-model.md @@ -18,11 +18,11 @@ Providers offer storage and retrieval services to network users. There are two t - Storage Providers - Retrieval Providers -### Storage Providers +### Storage providers Storage providers, often called SPs, are responsible for storing files and data for clients on the network. They also provide cryptographic proofs to verify that data is stored securely. The majority of providers on the Filecoin network are SPs. -### Retrieval Providers +### Retrieval providers Retrieval providers, or RPs, specialize in delivering quick access to data rather than long-term storage. While many storage providers also offer retrieval services, stand-alone RPs are increasingly joining the network to enhance data accessibility. diff --git a/smart-contracts/advanced/oracles.md b/smart-contracts/advanced/oracles.md index 4c05f019c..1fb7d9f2e 100644 --- a/smart-contracts/advanced/oracles.md +++ b/smart-contracts/advanced/oracles.md @@ -34,7 +34,7 @@ Pyth’s smart contracts are live on the Filecoin Mainnet and Calibration testne | Name | Address | Mainnet | Calibration | | ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | ------- | ----------- | | [Pyth - Mainnet](https://filecoin.blockscout.com/address/0xA2aa501b19aff244D90cc15a4Cf739D2725B5729?tab=contract) | `0x045CE60839d108B43dF9e703d4b25402a6a28a0d` | ✔️ | | -| [Pyth - Calibration](https://calibration.filfox.info/en/address/0xA2aa501b19aff244D90cc15a4Cf739D2725B5729) | `0x15e6Cc0D69A162151Cadfba035aa10b82b12b970` | | ✔️ | +| [Pyth - Calibration](http://47.109.105.51/en/address/0xA2aa501b19aff244D90cc15a4Cf739D2725B5729) | `0x15e6Cc0D69A162151Cadfba035aa10b82b12b970` | | ✔️ | **Pyth x Filecoin Price Feed IDs** diff --git a/smart-contracts/developing-contracts/client-contract-tutorial.md b/smart-contracts/developing-contracts/client-contract-tutorial.md index ecffe2186..3a477ac0f 100644 --- a/smart-contracts/developing-contracts/client-contract-tutorial.md +++ b/smart-contracts/developing-contracts/client-contract-tutorial.md @@ -1,11 +1,11 @@ --- description: >- - This page covers the client contract, and includes a tutorial on how developers can use the client contract to create storage deals programmatically. + This page covers the client contract, and includes a tutorial on how developers can use the client contract to create storage deals programmatically. --- # Client contract tutorial -In this tutorial we will cover the background of creating storage deals using smart contracts, and how to create storage deals with smart contracts on the [Filecoin virtual machine](../../reference/general/glossary.md#filecoin-virtual-machine). +In this tutorial we will cover the background of creating storage deals using smart contracts, and how to create storage deals with smart contracts on the [Filecoin virtual machine](../../reference/general/glossary.md#filecoin-virtual-machine). You can find a video form of this walkthrough on [ETHGlobal’s YouTube Channel](https://www.youtube.com/watch?v=27EV3gQGY9k). @@ -13,11 +13,11 @@ You can find a video form of this walkthrough on [ETHGlobal’s YouTube Channel] Before continuing, make sure you have the following software installed and prerequisites ready: -* Git -* NodeJS -* Yarn or NPM (Yarn is used in this tutorial) -* A code editor such as VS Code -* A wallet with Calibration testnet FIL +- Git +- NodeJS +- Yarn or NPM (Yarn is used in this tutorial) +- A code editor such as VS Code +- A wallet with Calibration testnet FIL ## Steps @@ -68,32 +68,32 @@ Before storing a file with a storage provider it needs to be prepared by turning 1. Go to the [FVM Data Depot website](https://data.lighthouse.storage/) and create an account. 2. Click **Upload File** and select a file you wish to upload. -3. Select the **File ID** of the file to read all the relevant metadata. Make a note of the: +3. Select the **File ID** of the file to read all the relevant metadata. Make a note of the: - * Piece CID - * Payload CID - * Car size - * Piece size - * URL + - Piece CID + - Payload CID + - Car size + - Piece size + - URL - We’ll use this information in the next step when invoking the `MakeDealProposal` method. + We’ll use this information in the next step when invoking the `MakeDealProposal` method. ### Invoke the `MakeDealProposal` method Now that we have the `.car` file prepared in the data depot, we can invoke the MakeDealProposal method on the smart contract we deployed earlier. To do this, we will run the `make-deal-proposal` task in Hardhat. There are quite a few parameters to include in this call: -* `contract`: the address of your deployed `ClientContract.sol`. -* `piece-cid: gathered from the previous step. -* `piece-size`: gathered from the previous step. -* `car-size`: gathered from the previous step. -* `start-epoch`: The block number you want the deal to begin on. It should be a block in the future. You can find the current block number on [Beryx](https://beryx.io/), making sure to select the correct network. -* `end-epoch`: The block number you want the deal to end on. It should be a block in the future and after the `Start-Epoch`. You can find the current block number on [FILFOX](https://calibration.filfox.info/en). -* `location-ref`: The location of where the storage provider can find the .car file. This is the `URL` from the previous step. +- `contract`: the address of your deployed `ClientContract.sol`. +- `piece-cid: gathered from the previous step. +- `piece-size`: gathered from the previous step. +- `car-size`: gathered from the previous step. +- `start-epoch`: The block number you want the deal to begin on. It should be a block in the future. You can find the current block number on [Beryx](https://beryx.io/), making sure to select the correct network. +- `end-epoch`: The block number you want the deal to end on. It should be a block in the future and after the `Start-Epoch`. You can find the current block number on [FILFOX](http://47.109.105.51/en). +- `location-ref`: The location of where the storage provider can find the .car file. This is the `URL` from the previous step. When calling the `make-deal-proposal` task in Hardhat, your command will look something like this: ```shell -yarn hardhat make-deal-proposal \ +yarn hardhat make-deal-proposal \ --contract 0x0219eB1740C315fe5e20612D7E13AE2A883dB3f4 \ --piece-cid baga6ea4seaqn4eomxfk3ttog7lnvlvedu7nia377w4gotw2pm746k6kq7gwe6ga \ --piece-size 2097152 \