Misplaced Pages

InterPlanetary File System

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

This is an old revision of this page, as edited by InShaneee (talk | contribs) at 21:10, 25 May 2016 (add copy/paste cleanup template). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Revision as of 21:10, 25 May 2016 by InShaneee (talk | contribs) (add copy/paste cleanup template)(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
This article or section may have been copied and pasted from another location, possibly in violation of Misplaced Pages's copyright policy. Please review the source and remedy this by editing this article to remove any non-free copyrighted content and attributing free content correctly, or flagging the content for deletion. Please be sure that the supposed source of the copyright violation is not itself a Misplaced Pages mirror. (May 2016)
This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources.
Find sources: "InterPlanetary File System" – news · newspapers · books · scholar · JSTOR (February 2016) (Learn how and when to remove this message)
The topic of this article may not meet Misplaced Pages's general notability guideline. Please help to demonstrate the notability of the topic by citing reliable secondary sources that are independent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to be merged, redirected, or deleted.
Find sources: "InterPlanetary File System" – news · newspapers · books · scholar · JSTOR (February 2016) (Learn how and when to remove this message)
(Learn how and when to remove this message)
IPFS logo

InterPlanetary File System (IPFS) is a content-addressable, peer-to-peer hypermedia distribution protocol. Nodes in the IPFS network form a distributed file system. IPFS is an open source project developed by Protocol Labs with help from the open source community. It was initially designed by Juan Benet.

Description

IPFS is a peer-to-peer distributed file system that seeks to connect all computing devices with the same system of files. In some ways, IPFS is similar to the World Wide Web, but IPFS could be seen as a single BitTorrent swarm, exchanging objects within one Git repository. In other words, IPFS provides a high-throughput, content-addressed block storage model, with content-addressed hyperlinks. This forms a generalized Merkle DAG. IPFS combines a distributed hash table, an incentivized block exchange, and a self-certifying namespace. IPFS has no single point of failure, and nodes do not need to trust each other.

The filesystem can be accessed in a variety of ways, including via FUSE and over HTTP. A local file can be added to the IPFS filesystem, making it available to the world. Files are identified by their hashes, so it's caching-friendly. They are distributed using a BitTorrent-based protocol. Other users viewing the content aid in serving the content to others on the network. IPFS has a name service called IPNS, a global namespace based on PKI, serves to build trust chains, is compatible with other NSes and can map DNS, .onion, .bit, etc. to IPNS.

The Misplaced Pages logo has an IPFS hash with the following code: QmRW3V9znzFW9M5FYbitSEvd5dQrPWGvPvgQD6LM22Tv8D. It can be accessed with that hash over HTTP by a public gateway or a local IPFS instance

Merkle Data Format

Every Merkle is a DAG because each node is named by a hash algorithm (a One-way function) which prevents cycles.

Each branch of Merkle is the hash of its local contents, naming childs by their hash instead of their full contents.

In general for any Merkle, to create a new branch or verify an existing branch, a hash algorithm is used on some combination of the local contents, such as a list of child hashes and other bytes. A few different hash algorithms are available in IPFS.

The data input to any of those hash algorithms is described somewhere around https://github.com/ipfs/go-ipfs/tree/master/merkledag

References

  1. "The IPFS Project". Retrieved 11 September 2015.
  2. "IPFS README - Who designed it?". Retrieved 11 September 2015.
  3. "The IPFS Project - How it works". Retrieved 11 September 2015.
  4. "IPFS README". Retrieved 11 September 2015.

External links

Categories: