|
1 | 1 |
|
2 | 2 | ## IPFS: The InterPlanetary File System
|
3 | 3 |
|
4 |
| -[IPFS](https://ipfs.io/), or the InterPlanetary File System, is a peer-to-peer (P2P) networking protocol used to share data on the distributed web. As its full name suggests, you can think of IPFS as a file system, and it has some unique characteristics that make it ideal for safe, decentralized sharing. |
| 4 | +[IPFS](https://ipfs.io/) is a peer-to-peer (P2P) networking protocol used to share data on the distributed web. You can think of it as a file system with some unique characteristics that make it ideal for safe, decentralized sharing. |
5 | 5 |
|
6 |
| -If you haven't yet done so, we encourage you to check out our [Decentralized Data Structures tutorial](https://proto.school/#/data-structures/), where you can learn all about the decentralized web and how it compares to the web you're accustomed to. There you'll learn all about content addressing, cryptographic hashing, Content Identifiers (CIDs), and sharing with peers, all of which you'll need to understand to make the most of this tutorial on IPFS. |
| 6 | +If you haven't yet done so, we encourage you to check out our [Decentralized Data Structures](https://proto.school/#/data-structures/) tutorial, to learn all about the decentralized web and how it compares to the one you're accustomed to. There you'll learn all about content addressing, cryptographic hashing, Content Identifiers (CIDs), and sharing with peers, all of which you'll need to understand to make the most of this tutorial. |
7 | 7 |
|
8 |
| -## File API vs DAG API |
| 8 | +## The File API vs the DAG API |
9 | 9 |
|
10 |
| -You can store multiple types of data in the IPFS peer-to-peer data storage system. If you've gone through our [Decentralized Data Structures tutorial](https://proto.school/#/data-structures/), or even the [Blogging on the Decentralized Web tutorial](https://proto.school/#/blog), you already know you can store key value objects in the network. |
| 10 | +You can store multiple types of data with IPFS. If you've gone through our Decentralized Data Structures tutorial — or even [Blogging on the Decentralized Web](https://proto.school/#/blog) — you already know you can store primitives, objects and arrays in the network. |
11 | 11 |
|
12 |
| -Storing key value objects is an interesting, but limited, use case. What if you want to share a picture of a kitten, how would you go about uploading that file into the network and providing a way for all your friends to see it? Or what about a funny video? How should the file be placed in the directed acyclic graph, in a single block or split into chunks? |
| 12 | +Storing these types of data is an interesting, but limited, use case. What if you want to share a picture of a kitten? How would you upload it to the network and provide a way for your friends to see it? What about a larger file, such as a funny video? How should the file be placed in the Directed Acyclic Graph (DAG) — in a single block or split into chunks? |
13 | 13 |
|
14 |
| -You can look at the File API as an abstraction layer above the DAG API, which takes care of getting files ready to be placed in the network, as well as knowing how to access them. The details of what this API actually does will be covered later in this tutorial. |
| 14 | +You can think of the File API as an abstraction layer above the DAG API. The File API prepares files to be placed in the network, and ensures that IPFS knows how to access them. The details of what this API actually does will be covered later in this tutorial. |
15 | 15 |
|
16 |
| -## Regular File API vs Mutable File System Files API |
| 16 | +## The Regular File API vs the MFS File API |
17 | 17 |
|
18 |
| -You may have already read our [Mutable File System tutorial](https://proto.school/#/mutable-file-system), and if so you may be asking yourself "I've already learned how to use files on IPFS, how will this be any different?". |
| 18 | +If you've read our [Mutable File System tutorial](https://proto.school/#/mutable-file-system), you may be thinking, "I've already learned how to use files on IPFS. How will this be any different?" |
19 | 19 |
|
20 |
| -The Mutable File System (MFS) provides a File API which was built with the purpose of replicating file system operations that you are probably familiar with, such as `mkdir`, `ls`, `cp`, among others. However, the way that content is addressed in IPFS makes it an immutable file system. The address to a file or directory depends on its contents and, as such, modifying a file, or adding a new file to a directory, will result in an entirely new address for it. |
| 20 | +The Mutable File System (MFS) provides a File API designed to replicate familiar file-system operations such as `mkdir`, `ls`, `cp`, and others. However, the way that content is addressed in IPFS makes it an immutable file system. The address to a file or directory depends on its contents, so any change to a file will result in an entirely new address. The MFS File APIbuilds a familiar looking file system with regular paths — like `/some/stuff` — in the local IPFS node, which hides the complexity of immutable content addressing. |
21 | 21 |
|
22 |
| -Therefore, despite being very useful, the abstraction the Mutable File System provides hides some of the inner workings of IPFS. The Regular File API we will discuss in this tutorial is a more barebones approach of using files in IPFS, not providing as much functionality through powerful abstractions as MFS, but helping you understand what you are actually doing in the file system. |
| 22 | +Although MFS is very useful, the abstraction it provides hides some of the inner workings of IPFS. The Regular File API we will discuss here is instead a "bare bones" approach to managing files in IPFS. It trades the powerful abstractions of MFS for a scheme which helps you understand what is actually happening in the file system. |
23 | 23 |
|
0 commit comments