Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lindz/fil1.0 #475

Open
wants to merge 17 commits into
base: feat/filecoin-updates
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 38 additions & 8 deletions config/_default/goals.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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": [
Expand Down Expand Up @@ -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"
]
}
}
Expand Down
101 changes: 64 additions & 37 deletions content/en/curriculum/filecoin/introduction/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 >}}
</br>

### 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
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
85 changes: 85 additions & 0 deletions templates/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,4 +90,89 @@ section = "<make up a unique section>"
description = "<Short 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)




Binary file added templates/learning-objectives.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added templates/objectives-page.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.