diff --git a/config/_default/goals.json b/config/_default/goals.json index e21a1ae6..d8c3e875 100644 --- a/config/_default/goals.json +++ b/config/_default/goals.json @@ -325,7 +325,8 @@ "id": "1.03", "description": "Discover resources to understand the long term objectives and use cases for libp2p" } - ] + ], + "levels": ["shallow", "deep"] }, "1.1": { "description": "Understand the main building blocks of libp2p", @@ -423,6 +424,28 @@ } }, "filecoin": { + "1.0": { + "description": "Understand how and why Filecoin was created, how it relates to IPFS, and how it is growing and expanding for different use cases", + "subgoals": [ + { + "id": "1.01", + "description": "Understand the basics of how Filecoin leverages and implements other technologies such as IPFS, libp2p, Saturn, FVM, and Bacalhau" + }, + { + "id": "1.02", + "description": " Describe how Filecoin provides and alternative to the client server model, and the key traits of the network that make that possible" + }, + { + "id": "1.03", + "description": "Identify the different implementation of the Filecoin protocol, and the resources available to use them" + }, + { + "id": "1.04", + "description": "Define the basic building blocks of the Filecoin network such as Providers, Deals, Sectors, and …" + } + ], + "levels": ["shallow", "deep"] + }, "1.1": { "description": "Know what...", "subgoals": [ @@ -477,38 +500,45 @@ } }, "example-section": { - "1.1": { + "1.0": { "description": "Know what...", "subgoals": [ { - "id": "1.11", + "id": "1.01", "description": "Understand ..." }, { - "id": "1.12", + "id": "1.02", "description": "Be able to ..." }, { - "id": "1.13", + "id": "1.03", "description": "Be able to ..." } ], "levels": [ - "shallow/deep" + "shallow", "deep" ] }, + "1.1": { + "description": "Understand ...", + "subgoals": [], + "levels": [ + "shallow", "deep" + ] + }, "1.2": { "description": "Understand ...", "subgoals": [], "levels": [ - "shallow/deep" + "shallow", "deep" ] }, "1.3": { "description": "Describe ...", "subgoals": [], "levels": [ - "shallow/deep" + "shallow", "deep" ] } } diff --git a/content/en/curriculum/filecoin/introduction/index.md b/content/en/curriculum/filecoin/introduction/index.md index 34ecbd4a..e0595a91 100644 --- a/content/en/curriculum/filecoin/introduction/index.md +++ b/content/en/curriculum/filecoin/introduction/index.md @@ -3,71 +3,98 @@ title: "Introduction to Filecoin" description: "Incentivizing Decentralized Storage" draft: false menu: - curriculum: - parent: "curriculum-filecoin" + curriculum: + parent: "curriculum-filecoin" weight: 380 category: lecture level: - shallow - deep +objectives: + show: true + goals: + - "1.0" + subgoals: + - 1.01 + - 1.02 + - 1.03 + - 1.04 --- -# Filecoin +[Filecoin](https://docs.filecoin.io/) is a peer-to-peer network that stores files, with built-in economic incentives and cryptographic proofs to ensure files are stored reliably over time. -Filecoin is an independent organization that collaborates with the Protocol Labs Network, and is the token behind decentralized storage. Filecoin uses IPFS, libp2p, IPLD, and many other technologies to create protocols, tools, and services to help radically improve the network and drive breakthroughs in computing. +Filecoin includes a blockchain and native cryptocurrency (FIL) to create a network and a market that both provides services to users who want to store data on the Filecoin network, and for storage providers who can participate in mining block rewards, while providing the data storage and (soon to come) compute capabilities over that data. -On the Filecoin network, users pay in Filecoin tokens to store their files with storage providers. Storage providers earn units of Filecoin (FIL) for storing files, and they are responsible for storing files and proving they have stored the files correctly over time. +## Filecoin Technology -Available storage and the price of that storage is not controlled by any single company. Instead, the Filecoin network facilitates open markets for storing and retrieving files (by making storage deals between clients and providers) that anyone can participate in. At any time, users can verify that their files are being stored correctly by looking at proofs on Filecoin’s blockchain. -#### IPFS & Filecoin: The building blocks of an open, decentralized web | Ally Haire +Filecoin is an independent organization that collaborates with the Protocol Labs Network, and is the token for decentralized storage. Filecoin uses IPFS to power a peer-to-peer network, libp2p as the networking layer to enable things like peer discovery and secure connections, IPLD to work with data models and schemas that can operate with any systems, and many other technologies to create protocols, tools, and services to help radically improve the network and drive breakthroughs in computing. -In this talk by DeveloperAlly, she gives a quick overview of the history of IPFS and Filecoin, information about the organizations today, and gives an intro about why Filecoin exists, how it's connected to IPFS, and (at 12:46) the basics of how it works to provide a decentralized and reliable storage system. +It is important to note that IPFS and Filecoin are separate networks, though under the hood, Filecoin uses the same basic technology as IPFS. Filecoin expands upon IPFS in that it incentivizes those on the network to keep content-addressed data available on the network, in a more permanent way. + + +#### IPFS & Filecoin: The Building Blocks of an Open, Decentralized Web | Ally Haire + +In this talk by DeveloperAlly from July of 2002, get a quick overview of the technological basics of IPFS and Filecoin, an intro about why Filecoin exists, how it’s connected to IPFS, and the basics of how it works to provide a decentralized and reliable storage system. {{< youtube XZqhfE1mJ_k >}} -
+### A New Storage Model + +The internet that we are all familiar with, we rely on large, centralized companies to store our data and make it available to the websites, online stores, email servers, and other services that make up the internet. With the Filecoin economy, you have a network of smaller storage providers you can leverage to make storage deals, and back up data on several different servers. + +Because data on Filecion is content addresses with CIDs, instead of location-addressed with URLs, it is possible for anyone to be able to host that data. With the Filecoin network, those who are storing data have the ability to control the permanence of your data, along with flexibility to choose who will store that data. + +This model solves many problems that come along with a single entity owning content, such as censorship and single ownership of data that is intended to be freely available, overall making a network that is more resilient. + + +#### Introduction to IPFS and Filecoin | Discordian + +In this video from March of 2022, Discordian gives an overview of the key features and differences between the IPFS and Filecoin networks, and explains the special value the Filecoin adds, and reviews some of the technology and tools you can use to build on the Filecoin and IPFS networks. -In Filecoin, users can pay to store their files on storage providers (They can also apply for to be verified clients and allocated DataCap, which incentivizes storage providers to store their data for free & reduced prices). Storage providers are computers responsible for storing files and proving they have stored the files correctly over time. Anyone who wants to store their files or get paid for storing other users’ files can join the Filecoin network. +{{< youtube 5-0_DqXGY-M >}} -![](intro.png) +## The Filecoin Economy -Available storage, and the price of that storage, is not controlled by any single entity. Instead, Filecoin facilitates open markets for storing and retrieving files that anyone can participate in, and recieve FIL for their participation in the network. +Filecoin facilitates open markets for storing and retrieving files that anyone can participate in. On the Filecoin network, users pay in Filecoin tokens to store their files with storage providers. Storage providers earn units of Filecoin (FIL) for storing files, and they are responsible for storing files and proving they have stored the files correctly over time. -[Read More](https://docs.filecoin.io/about-filecoin/what-is-filecoin/#for-users) +Available storage and the price of that storage is not controlled by any single entity. Instead, the Filecoin network facilitates open markets for storing and retrieving files (by making storage deals between clients and providers) that anyone can participate in. At any time, users can verify that their files are being stored correctly by looking at proofs on Filecoin’s blockchain. -![](data-storage.png) +Storage providers are able to leverage the Filecoin technology to store content-addressed data using the APIs and data onboarding solutions such as [Boost](https://boost.filecoin.io/) for the [Lotus](https://lotus.filecoin.io/) Filecoin implementation, and new functionality that is expanding the potential for Filecoin markets. -_Filecoin is a data storage and retrieval marketplace that coordinates untrusted parties to buy and sell provable storage._ +There are also data onboarding services for those who don’t want to run their own Filecoin node, but want to upload data onto Filecoin. Because formatting & uploading the data can be a a complex process, there are several other services that can do this, either using a simpler interface, or working closely with those who have large amounts of data to store. -### Filecoin Features +* [Estuary](https://estuary.tech/) works with large, public sets of data, created by the Outercore team at Protocol Labs +* [Web3.Storage](https://web3.storage/) provides an easy to use web interface where anyone can drag-and-drop to upload files of any type to IPFS +* [NFT.Storage](https://nft.storage/) is similar to web3.storage, but specially designed for NFTs +* [Lighthouse.Storage](https://www.lighthouse.storage/) Provides storage for a one-time price on the IPFS and Filecoin networks -* **Verifiable storage** – Rather than needing to trust a cloud storage provider or rely on -legal recourse, the Filecoin Protocol cryptographically verifies data storage. -* **Open participation** – Anyone with sufficient hardware and an internet connection can be a storage provider (Filecoin miner) for the Filecoin Network. -* **Empowers local optimization** – Driven by open participation, market forces will enable more efficient and distributed data storage and communication than centralized storage platforms. The distributed network allows for a more local and resilient architecture and data availability. -* **Flexible storage options** – As an open platform, the network has the flexibility for the creation & disseminations of tools and services provided by the community of developers improving and building on the protocol. -* **A community network** – Filecoin provides participants the opportunity to have stake in the networkʼs success. Participants in the network benefit by working together to improve the Filecoin network as a whole. +## Features and Use Cases -#### The Filecoin Economy -Filecoin is more than a network; the protocol and infrastructure lays the groundwork for an economy built around a marketplace for the storage and retrieval of data. The growth of the network depends upon collaboration between researchers, engineers, stakeholders, storage providers, and clients in a market economy, as the network adapts and grows to accommodate additional use cases. +Filecoin offers several advantages over typical, centralized data storage solutions, by creating a marketplace with a wide range of options for storing your data. Those who store their data on the Filecoin network have the advantage of: -The Filecoin token acts as a medium of exchange, facilitating transactions and production activities, somewhat similar to the in-game currencies of virtual economies in multiplayer online games. In addition, as a currency, the token also acts as a store of value; its minting is tied to adding utility in the form of data storage and other services to the network. +* **Verifiable Storage** – Rather than needing to trust a cloud storage provider or rely on legal recourse, the Filecoin Protocol cryptographically verifies data storage. +* **Open Participation** – Anyone with sufficient hardware and an internet connection can be a storage provider (Filecoin miner) for the Filecoin Network. +* **Empowers Local Optimization** – Driven by open participation, market forces will enable more efficient and distributed data storage and communication than centralized storage platforms. The distributed network allows for a more local and resilient architecture and data availability. +* **Flexible Storage Options** – As an open platform, the network has the flexibility for the creation & disseminations of tools and services provided by the community of developers improving and building on the protocol. +* **A Community Network** – Filecoin provides participants the opportunity to have stake in the networkʼs success. Participants in the network benefit by working together to improve the Filecoin network as a whole +* **Granular Control** – Over parameters for data storage and control over storage pricing +* **Content Addressing** – Means that your data can be stored and located by anyone, anywhere, as well as indexed and searched by content identifier instead of a URL that is tied to an individual storing that data +* **Data Persistence** – for the amount of time that you can choose & negotiate with those providing the storage -### Tutorials -For those who are newer to the world of Filecoin, Web3, and storage verification, check out the [Protoschool tutorials](https://proto.school/course/filecoin). Tutorials you should complete include: -* [Verifying Storage on Filecoin](https://proto.school/verifying-storage-on-filecoin) +### Filecoin Use Cases +Filecoin is used to manage data storage in a decentralized network of data storage. Note that this data is not stored _on_ the blockchain, but the protocol is used to verify and incentivize storage on this network. Filecoin can also be used like any other token, as a currency for payment. -### Data & Information About Filecoin +In addition to the current uses and markets for Filecoin, there is development going on in other exciting areas: +* [Data Retrieval Markets](https://retrieval.market/) that retrieves and deliver data stored with Filecoin storage providers +* [Compute over Data](https://www.cod.cloud/) is creating a network of providers who compute over large amounts of data on distributed networks like IPFS +* [FIlecoin Virtual Machine (FVM)](https://fvm.filecoin.io/) enabling smart contracts and introducing new functionality to the blockchain with programmable actors -* [Filecoin Docs](https://docs.filecoin.io/) -* [Filecoin Spec](https://spec.filecoin.io/#section-intro) -* [Lotus Docs](https://lotus.filecoin.io/) -* [https://stats.filecoin.io/](https://stats.filecoin.io) -* [https://dashboard.starboard.ventures/deals](https://dashboard.starboard.ventures/deals) -* [https://status.filecoin.io/](https://status.filecoin.io) -### Links +## Filecoin Implementations -**IPFS** | [Docs](https://docs.ipfs.io) | [GitHub](https://github.com/ipfs) - **IPLD** | [Docs](https://ipld.io/docs/) | [GitHub](https://github.com/ipld) - **libp2p** | [Docs](https://docs.libp2p.io) | [GitHub](https://github.com/libp2p) - **Filecoin** | [Docs](https://docs.filecoin.io) | [GitHub](https://github.com/filecoin-project) +There are different languages and supported versions of the Filecoin blockchain, maintained by different entities. These different implementations all have the same core capabilities and features, and run on the same network, but because they are different programming languages and maintained by different entities. +* [Lotus](https://lotus.filecoin.io/) is maintained by Protocol Labs and written in Go +* [Venus](https://github.com/filecoin-project/venus) is an open source project also written in the Go programming language, with slightly different architecture and features +* [Forest](https://github.com/ChainSafe/forest) is maintained by Chainsafe and is written in the Rust programming language diff --git a/content/en/curriculum/filecoin/protocol/filfox.png b/content/en/curriculum/filecoin/protocol/filfox.png new file mode 100644 index 00000000..cbf61cfd Binary files /dev/null and b/content/en/curriculum/filecoin/protocol/filfox.png differ diff --git a/content/en/curriculum/filecoin/protocol/filscan.png b/content/en/curriculum/filecoin/protocol/filscan.png new file mode 100644 index 00000000..3824e834 Binary files /dev/null and b/content/en/curriculum/filecoin/protocol/filscan.png differ diff --git a/content/en/curriculum/filecoin/protocol/filscout.png b/content/en/curriculum/filecoin/protocol/filscout.png new file mode 100644 index 00000000..97a010b8 Binary files /dev/null and b/content/en/curriculum/filecoin/protocol/filscout.png differ diff --git a/templates/README.md b/templates/README.md index 2b88aa60..8791c4ea 100644 --- a/templates/README.md +++ b/templates/README.md @@ -90,4 +90,89 @@ section = "" description = "" ``` +### How to add Objectives to Curriculum Modules +First, you will need to add your goals to the `content/_default/goals.json` file, like so + +```json + "filecoin": { + "1.0": { + "description": "Know what...", + "subgoals": [ + { + "id": "1.01", + "description": "Understand ..." + }, + { + "id": "1.02", + "description": "Be able to ..." + }, + { + "id": "1.03", + "description": "Be able to ..." + } + ], + "levels": [ + "shallow", "deep" + ] + }, + "1.2": { + "description": "Understand ...", + "subgoals": [], + "levels": [ + "shallow", "deep" + ] + }, + "1.3": { + "description": "Describe ...", + "subgoals": [], + "levels": [ + "shallow", "deep" + ] + } + } +} +``` +#### Objectives Page +To add and 'Objectives' page, in the header of the `.md` file, add in the field `identifier: xxx-objectives` to the `menu: curriculum` object +```markdown +menu: + curriculum: + parent: "curriculum-filecoin" + identifier: "filecoin-objectives" +weight: 375 +``` + + +Also add in the and `objectives:` object at the end of the metadata which will add in all the top level goals (1.0, 1.1, etc): + + +```markdown +objectives: + show: true + showTitle: false + introPage: true +``` + + +![Objectives Page](objectives-page.png) + +#### Learning Objectives & Sub-Goals +To add an objectives & it's sub goals to a page, at the end add in a top-level `objectives:` object with goal and sub-goals + +```markdown +objectives: + show: true + goals: + - "1.0" + subgoals: + - 1.01 + - 1.02 + - 1.03 + - 1.04 + - 1.05 +``` +![Learning Objectives](learning-objectives.png) + + + diff --git a/templates/learning-objectives.png b/templates/learning-objectives.png new file mode 100644 index 00000000..513aeaa7 Binary files /dev/null and b/templates/learning-objectives.png differ diff --git a/templates/objectives-page.png b/templates/objectives-page.png new file mode 100644 index 00000000..f3c174a9 Binary files /dev/null and b/templates/objectives-page.png differ