InterPlanetary File System
<templatestyles src="Module:Hatnote/styles.css"></templatestyles>
<templatestyles src="Module:Hatnote/styles.css"></templatestyles>
Lua error in package.lua at line 80: module 'strict' not found.
IPFS logo.
|
|
Original author(s) | Juan Benet and Protocol Labs |
---|---|
Developer(s) | Protocol Labs |
Stable release | 0.4.17 / 27 July 2018 |
Development status | Active |
Written in | Protocol implementations: Go (reference implementation), JavaScript, C[1], Python Client libraries: Go, Java, JavaScript, Python, Scala, Haskell, Swift, Common Lisp, Rust, Ruby, PHP, C#, Erlang |
Operating system | FreeBSD, Linux, macOS, Windows |
Available in | Go, JavaScript, Python |
Type | Protocol, distributed file system, content delivery network |
License | MIT license |
Website | ipfs.io IPFS on YouTube |
Lua error in package.lua at line 80: module 'strict' not found.
Lua error in package.lua at line 80: module 'strict' not found.
InterPlanetary File System (IPFS) is a protocol and network designed to create a content-addressable, peer-to-peer method of storing and sharing hypermedia distribution protocol. Nodes in the IPFS network form a distributed file system.[2] IPFS was initially designed by Juan Benet, and is now an open-source project developed with help from the community and Protocol Labs.[3][4]
Contents
History
The "InterPlanetary File System" name is a specific choice as homage to J. C. R. Licklider (1915-03-11 - 1990-06-26) who developed the ideas for what eventually turned into the ARPANET, precursor to the Internet, however, Licklider originally called it "the Inter-Galactic Network". The name also conveys a sense of serious effort and scale to ambitiously overcome latency issues across great distances.[5]
In 2014, the IPFS protocol took advantage of the Bitcoin blockchain protocol and network infrastructure in order to store unalterable data, remove duplicated files across the network, and obtain address information for accessing storage nodes to search for files in the network.[6][2]
In July 2014, Juan Benet delivered the first public talk describing IPFS: The Permanent Web at Sourcegraph's offices. Development on the open-source project began soon thereafter, and the paper titled "IPFS - Content Addressed, Versioned, P2P File System" was released in April 2015.
In February of 2015, the Go[7] implementation was released as an "Alpha Distribution". Since then, go-ipfs has been making regular releases on the road towards Beta. Implementations in JavaScript[8] and Python are in progress.[9] The Go implementation is considered to be the reference implementation[10] while formal specifications are developed.[11]
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.[12] This forms a generalized Merkle directed acyclic graph (DAG). IPFS synthesizes successful ideas from previous peer-to-peer systems, including 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[13] not to tamper with data in transit.[14] Distributed Content Delivery saves bandwidth and prevents DDoS attacks, which HTTP struggles with.[6]
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.[15]
The filesystem can be accessed in a variety of ways, including via FUSE and over HTTP.[12] 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.[16]
Merkle data format
<templatestyles src="Module:Hatnote/styles.css"></templatestyles>
Every Merkle is a directed acyclic graph (DAG) because each node is accessed via its name. Each branch of Merkle is the hash of its local contents, naming children by their hash instead of their full contents. So after creation there is no way to edit a node. This prevents cycles (assuming there are no hash collisions), since one cannot link the first created node to the last node to create the last reference.
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 documented.[17]
- IPLD (InterPlanetary Linked Data), another inter-related Protocol Labs project, is the data model connecting all data through cryptographic hashes to ease navigation and connections for the content-addressable Decentralized Web.[18][19] IPLD extends beyond just Protocol Labs projects to other projects like Bitcoin, Etherium, Git, and beyond, "The sky’s the limit as IPLD allows you to work across protocol boundaries. The point is that IPLD provides libraries that make the underlying data interoperable across tools and across protocols by default."[20]
- Multiformats, a Protocol Labs project, is a collection of protocols that future-proof systems, presently, with self-describing formats to make systems interoperable and upgradable.[21][22][23] In layman's terms, when you share or receive a data you want it to describe itself in a way that it cannot be mistaken, tampered with, or corrupted so that it's what it says it is.[citation needed]
- libp2p is a modular networking stack that unites various transports and peer-to-peer protocols, making it easy for developers to build large, robust p2p networks.[24][25] Features include: use of several transports, native roaming, runtime freedom, protocol muxing, offline abilities, encrypted connections, uncompromising upgrades, operates within-browsers, and it's prepared for high-latency scenarios (ie. durable for unreliable networks or distances in time (and space)).[26][27]
- Filecoin, also inter-related to IPFS and developed by Juan Benet and Protocol Labs, is an IPFS-based cooperative storage cloud.[28]
- Filecoin, an open-source, public, cryptocurrency and digital payment system intended to be a blockchain-based digital storage and data retrieval method.[29][30][31][32] It is made by Protocol Labs and builds on top of InterPlanetary File System,[29] allowing users to rent unused hard drive space.[33]
"In short: IPFS addresses and moves content; Filecoin is the missing incentive layer."[34]
Newsworthy notable IPFS users
- The Catalan independence referendum, taking place in September–October 2017, was deemed illegal by the Constitutional Court of Spain and many related websites were blocked. Subsequently, the Catalan Pirate Party mirrored the website on IPFS to bypass the High Court of Justice of Catalonia order of blocking.[35][36]
- IPFS is being used to create snapshot mirrors of Wikipedia, which allows people living in jurisdictions where Wikipedia is blocked to access the content of Wikipedia.[37] Filecoin, which is also developed by Juan Benet, is an IPFS-based cooperative storage cloud.[38]
- "UPDATE: There are now English and Kurdish versions of Wikipedia on IPFS as well as the Turkish verison."[39]
- Wikipedia snapshots on IPFS are "independent effort[s] undertaken by the IPFS maintainers... ...not affiliated with the Wikimedia Foundation" nor the Wikipedia article contributor volunteers.[40]
- On Reddit, a critical analysis discussion breaks down why, "IPFS can't be a useful way to protest censorships in that people can't hide their IPs from gov[ernment]s on IPFS," including the facts that anonymity is often critical, or how IPFS nodes aren't abundant, and IPFS is not yet popular or widely adopted, much less considered a viable alternative yet, still easy enough to block.[41]
- Convicted hacker and neo-Nazi Andrew Auernheimer, also known as weev, announced in 2018 that he was beginning to use IPFS exclusively to distribute his racist and anti-Semitic podcast "Race Ghost".[42]
IPFS-based applications
- Augur (software), a decentralized prediction market built using Ethereum.
- The Akasha Project[43], (Advanced Knowledge Architecture for Social Human Advocacy), is an open source[44] social media network project powered by Ethereum's world-wide decentralized hive computing. It was created by Mihai Alisie, Bitcoin Magazine co-founder,[45] and Ethereum co-founder. It is embedded into the InterPlanetary File System under a Microsoft Public License (MPL), not as free and open source as the MIT Licence or others.
- DTube, based on the IPFS protocol, is a decentralized video platform embraced by blogging and social networking communities like Steemit that uses the Steem blockchain to reward content publishers and curators. DTube is similar to YouTube, though without advertisements yet supported with Steem currency when users upvote videos.[46]
- Ethereum, an open-source, public, blockchain-based distributed computing platform featuring smart contract (scripting) functionality.[47] It provides a decentralized Turing-complete virtual machine, the Ethereum Virtual Machine (EVM), which can execute scripts using an international network of public nodes. Ethereum also provides a cryptocurrency token called "ether", which can be transferred between accounts and used to compensate participant nodes for computations performed.[48] "Gas", an internal transaction pricing mechanism, is used to mitigate spam and allocate resources on the network.[47][49]
- FreeNAS, a free and open-source network-attached storage (NAS) software based on FreeBSD and the OpenZFS file system, is now bundling IPFS.[50]
- Gnosis (software), crowd-sourced, Ethereum-based prediction market.
- https://gnosis.pm/, project website.
- https://en.bitcoinwiki.org/wiki/Gnosis
- OpenBazaar, an open-source project developing a protocol for e-commerce transactions in a fully decentralized marketplace.[51] It uses the cryptocurrency bitcoin and is based on some of the initial code from a hackathon project called DarkMarket.
- Orbit Chat is an open-source real-time web3.0 chat application over IPFS, that is completely distributed and serverless.[52][53]
- Steemit, a blogging and social networking website on top of the Steem circlechain database. The Steem blockchain produces Steem and Steem Dollars which are tradeable tokens users obtain for posting, discovering, and commenting on interesting content.[54]
- UltraNote, a cryptocurrency which supports encrypted messaging with file transfers of up to 100MB with "self-destruct" feature utilizes IPFS to store files.[55]
- Zcash, a cryptocurrency that offers privacy and selective transparency of transactions. Zcash payments are published on a public blockchain, but the sender, recipient, and amount of a transaction may remain private.[56][57]
- Search DuckDuckGo for: IPFS apps
- Search Google for: IPFS apps
See also
<templatestyles src="Div col/styles.css"/>
- Akasha Project
- BitChute, a YouTube-like site with P2P WebTorrent
- Bitcoin
- BitTorrent and WebTorrent
- BitTube
- Cooperative storage cloud
- Coral Content Distribution Network
- Dat
- Decentralized computing
- Distributed data store
- Distributed hash table
- DLive
- DTube, a YouTube-like site with P2P
- Filecoin, an open source, public, cryptocurrency and digital payment system intended to be a blockchain-based digital storage and data retrieval method.
- FreeNAS
- Freenet
- I2P
- IndieWeb
- InterPlanetary File System, an open source decentralized peer-to-peer hypermedia network protocol to share content-addressable storage forming a distributed file system.
- Kademlia
- List of P2P protocols
- Mycroft (software), an open source intelligent personal virtual assistant
- Namecoin
- OpenBazaar
- Peer-to-peer web hosting
- Project Xanadu, the first hypertext project, founded in 1960 (vaporware)
- Self-certifying File System
- Solid (web decentralization project) (Social Linked Data), a web decentralization project led by Tim Berners-Lee, inventor of the World Wide Web
- STORJ
- Tigole, release group
- Van Jacobson, American computer scientist, renowned for TCP/IP protocol stack, network performance, and scaling — foundations of today’s Internet.
- Vin Armani, anarcho-crypto-truther-YouTuber
- ZeroNet
- Mesh networking
- Wireless mesh network
- B.A.T.M.A.N., Better Approach To Mobile Adhoc Networking, a routing protocol for multi-hop mobile ad hoc networks.
- Project Xanadu
References
<templatestyles src="Reflist/styles.css" />
Cite error: Invalid <references>
tag; parameter "group" is allowed only.
<references />
, or <references group="..." />
External links
<templatestyles src="Div col/styles.css"/>
- Official website, IPFS.io
- Protocol Labs Blog & Announcements
- protocol.ai, Protocol Labs' official website, developer of these inter-related projects:
- filecoin.io, Filecoin's official website.
- ipfs.io, IPFS's official website.
- Chat.IPFS.io, official website
- HTTP is obsolete. It's time for the distributed, permanent web
- ipld.io, IPLD's official website.
- libp2p.io, libp2p's official website.
- multiformats.io, Multiformats' official website.
- YouTube channel: IPFS official development meetings.
- YouTube video: IPFS - Simply Explained (2018-05-14).
- YouTube video: The next Internet Revolution - Juan Benet - TEDxSanFrancisco (2016-12-08).
- YouTube video: Juan Benet: Decentralizing The Web With The Inter-Planetary File System (IPFS) interview #EB100 on Epicenter (2015-10-12).
- YouTube video: IPFS Alpha Demo introduction (2015-02-20).
- Orbit.chat, official website
- Akasha.world, official website
- AkashaProject at GitHub
- InterPlanetary File System on FacebookLua error in Module:WikidataCheck at line 28: attempt to index field 'wikibase' (a nil value).
- IPN.io, Interplanetary Networks official website
- InterPlanetary File System on Wikipedia
- Search DuckDuckGo for: IPFS apps
- Search Google for: IPFS apps
<templatestyles src="Asbox/styles.css"></templatestyles>
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 2.0 2.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found. @ 4m23s-5m17s, featuring Juan Benet (computer scientist) of Protocol Labs.
- ↑ 6.0 6.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 12.0 12.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 29.0 29.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 47.0 47.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Cryptocurrencies: A Brief Thematic Review. Social Science Research Network. Date accessed 28 august 2017.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found. @ 1h03m26s-1h03m49s, featuring Juan Benet (computer scientist) of Protocol Labs.
- ↑ https://www.usv.com/blog/introducing-ob1
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- Pages with reference errors
- Articles with short description
- Articles with unsourced statements from November 2018
- Pages using div col with unknown parameters
- Official website not in Wikidata
- Anonymity networks
- Application layer protocols
- Bitcoin
- BitTorrent
- Blockchain
- Computer-related introductions in 2015
- Cryptocurrencies
- Decentralized computing
- Decentralized data storage
- Decentralized file systems
- Distributed computing
- Distributed data storage
- Distributed file systems
- Ethereum
- File transfer protocols
- Free network-related software
- Free software programmed in Python
- Global hive mind
- Hive mind
- Infogalactic forked articles
- Internet privacy software
- Internet protocols
- Network protocols
- Peer-to-peer computing
- Peer-to-peer data storage
- Peer-to-peer file systems
- Social networking websites
- Social networks
- Tor (anonymity network)
- World wide decentralized hive computing
- World Wide Web
- Network software stubs