{{short description|Content-addressable, peer-to-peer hypermedia distribution protocol}}
{{Lead too short |date=April 2022}}
{{Use dmy dates |date=January 2019 |cs1-dates=y}}
{{Infobox software
| name = InterPlanetary File System
| logo = Ipfs-logo-1024-ice-text.png
| logo alt =
| logo caption =
| screenshot =
| screenshot alt =
| caption =
| collapsible =
| author = Juan Benet and Protocol Labs[{{Cite web |last=Case |first=Amber |author-link=Amber Case |date=2015-10-04 |title=Why The Internet Needs IPFS Before It's Too Late |url=http://social.techcrunch.com/2015/10/04/why-the-internet-needs-ipfs-before-its-too-late/ |url-status=live |archive-url=https://web.archive.org/web/20220205042345/https://techcrunch.com/2015/10/04/why-the-internet-needs-ipfs-before-its-too-late/ |archive-date=2022-02-05 |access-date=2019-07-16 |website=[[TechCrunch]] |language=en-US}}]
| developer = [[Protocol Labs]]
| released = {{Start-date|February 2015|ISO8601=y}}[
| discontinued =
| ver layout =
| latest release version = 0.18.1
| latest release date = {{Start-date|2023-01-30|ISO8601=y}}][{{Cite web |title=Releases |url=https://github.com/ipfs/kubo/releases |access-date=2023-01-30 |website=[[GitHub]] |archive-date=2023-02-10 |archive-url=https://web.archive.org/web/20230210060310/https://github.com/ipfs/kubo/releases |url-status=live }}]
| latest preview version =
| latest preview date =
| repo = {{URL|https://github.com/ipfs/ipfs}}
| programming language = {{ubl|'''Protocol implementations''': [[Go (programming language)|Go]] (reference implementation), [[JavaScript]], [[C (programming language)|C]],[{{Cite web |last=Agorise |date=2017-10-23 |title=c-ipfs: IPFS implementation in C. Why C? Think Bitshares' Stealth backups, OpenWrt routers (decentralize the internet/meshnet!), Android TV, decentralized Media, decentralized websites, decent.. |url=https://github.com/Agorise/c-ipfs |url-status=dead |archive-url=https://web.archive.org/web/20200422114259/https://github.com/Agorise/c-ipfs |archive-date=2020-04-22 |access-date=2017-10-25 |website=[[GitHub]]}}] [[Python (programming language)|Python]]|'''Client libraries''': Go, [[Java (programming language)|Java]], JavaScript, Python, Scala, Haskell, Swift, Common Lisp, Rust, Ruby, PHP, C#, Erlang
| operating system = [[Linux]], [[FreeBSD]], [[OpenBSD]], [[macOS]], [[Windows]]}}
| platform =
| size =
| language = [[Go (programming language)|Go]], [[JavaScript]], [[Python (programming language)|Python]]
| language count =
| language footnote =
| genre = {{ubl|[[Communications protocol|Protocol]],|[[distributed file system]],|[[content delivery network]]}}
| license = [[MIT license]], [[Apache license]] 2.0
| alexa =
| website = {{URL|https://ipfs.tech/|ipfs.tech}}
| standard =
| AsOf =
}}
{{File sharing sidebar}}
The '''InterPlanetary File System''' ('''IPFS''') is a [[Communications protocol|protocol]], [[hypermedia]] and [[file sharing]] [[peer-to-peer]] network for storing and sharing data in a [[distributed file system]]. IPFS uses [[content-addressable storage|content-addressing]] to uniquely identify each file in a [[Global Namespace|global namespace]] connecting IPFS [[Host (network)|hosts]].[{{Cite magazine |last=Finley |first=Klint |date=2016-06-20 |title=The Inventors of the Internet Are Trying to Build a Truly Permanent Web |url=https://www.wired.com/2016/06/inventors-internet-trying-build-truly-permanent-web/ |url-status=live |magazine=[[Wired (magazine)|Wired]] |archive-url=https://web.archive.org/web/20201215171224/https://www.wired.com/2016/06/inventors-internet-trying-build-truly-permanent-web/ |archive-date=2020-12-15 |access-date=2017-03-07 |url-access=subscription |issn=1078-3148 |oclc=24479723}}]
IPFS can among others replace the location based hypermedia server protocols [[http]] and [[https]] to distribute the [[World Wide Web]].[Youtube: [https://www.youtube.com/watch?v=HUVmypx9HGI Stanford Seminar - "IPFS and the Permanent Web"- Juan Benet of Protocol Labs] {{Webarchive|url=https://web.archive.org/web/20220809230502/https://www.youtube.com/watch?v=HUVmypx9HGI |date=2022-08-09 }} Quote: "...The InterPlanetary File System (IPFS) is a new hypermedia distribution protocol, to complement--and eventually replace--HTTP. It improves the security, performance, operation modes, and data friendliness of the Web. In particular, it yields a powerful new model, where websites and web applications are decoupled from origin servers, are distributed trustlessly through the network, and are encrypted, authenticated, and executed safely..."][Youtube: [https://www.youtube.com/watch?v=5Uj6uR3fp-U IPFS: Interplanetary file storage!] {{Webarchive|url=https://web.archive.org/web/20220809230501/https://www.youtube.com/watch?v=5Uj6uR3fp-U |date=2022-08-09 }}]
== Design ==
{{expand section |date=June 2020}}
IPFS allows users to host and receive content in a manner similar to [[BitTorrent]]. As opposed to a centrally located server, IPFS is built around a decentralized system[{{Cite journal |last=Krishnan |first=Armin |date=2020 |title=Blockchain Empowers Social Resistance and Terrorism Through Decentralized Autonomous Organizations |journal=[[Journal of Strategic Security]] |volume=13 |issue=1 |pages=41–58 |doi=10.5038/1944-0472.13.1.1743 |issn=1944-0464 |jstor=26907412 |doi-access=free}}] of user-operators who hold a portion of the overall data, creating a resilient system of file storage and sharing. Any user in the network can serve a file by its content address, and other peers in the network can find and request that content from any node who has it using a [[distributed hash table]] (DHT).
In contrast to BitTorrent, IPFS aims to create a single global network. This means that if two users publish a block of data with the same [[Cryptographic hash function|hash]], the peers downloading the content from "user 1" will also exchange data with the ones downloading it from "user 2".[{{Cite web |title=Content addressing |url=https://docs.ipfs.tech/concepts/content-addressing/ |url-status=live |archive-url=https://web.archive.org/web/20200829083138/https://docs.ipfs.tech/concepts/content-addressing/ |archive-date=2020-08-29 |access-date=2020-08-29 |website=docs.ipfs.tech |language=en}}] IPFS aims to replace protocols used for static webpage delivery by using gateways which are accessible with [[Hypertext Transfer Protocol|HTTP]].[{{Cite web |title=IPFS Gateway |url=https://docs.ipfs.tech/concepts/ipfs-gateway/ |url-status=live |archive-url=https://web.archive.org/web/20200829083134/https://docs.ipfs.tech/concepts/ipfs-gateway/ |archive-date=2020-08-29 |access-date=2020-08-29 |website=docs.ipfs.tech |language=en}}] Users may choose not to install an IPFS client on their device and instead use a public gateway. A list of these gateways is maintained on the IPFS GitHub page.[{{Cite web |title=Public Gateway Checker {{!}} IPFS |url=https://ipfs.github.io/public-gateway-checker/ |url-status=live |archive-url=https://web.archive.org/web/20200824182008/https://ipfs.github.io/public-gateway-checker/ |archive-date=2020-08-24 |access-date=2020-08-29 |website=[[GitHub]]}}]
== History ==
{{expand section |date=June 2020}}
IPFS was created by [[Juan Benet (computer scientist).|Juan Benet]], who later founded Protocol Labs in May 2014.[{{Cite web |title=About |url=https://protocol.ai/about/ |url-status=live |archive-url=https://web.archive.org/web/20210428163146/https://protocol.ai/about/ |archive-date=2021-04-28 |access-date=2021-04-28 |website=Protocol Labs |language=en}}]
IPFS was launched in an alpha version in February 2015, and by October of the same year was described by [[TechCrunch]] as "quickly spreading by word of mouth."
== Applications ==
* [[Filecoin]] is an IPFS-based [[cooperative storage cloud]], also authored by Protocol Labs.[{{Cite news |last=Johnson |first=Steven |date=2018-01-16 |title=Beyond the Bitcoin Bubble |language=en |work=[[The New York Times]] |url=https://www.nytimes.com/2018/01/16/magazine/beyond-the-bitcoin-bubble.html |url-status=live |url-access=subscription |access-date=2018-09-26 |archive-url=https://web.archive.org/web/20211221233257/https://www.nytimes.com/2018/01/16/magazine/beyond-the-bitcoin-bubble.html |archive-date=2021-12-21 |issn=1553-8095 |oclc=1645522}}]
* [[Cloudflare]] runs a distributed web gateway to simplify, speed up, and secure access to IPFS without needing a local node.[{{Cite magazine |last=Orcutt |first=Mike |date=2018-10-05 |title=A big tech company is working to free the internet from big tech companies |url=https://www.technologyreview.com/2018/10/05/139885/a-big-tech-company-is-working-to-free-the-internet-from-big-tech-companies/ |url-status=live |magazine=[[MIT Technology Review]] |language=en |issn=0040-1692 |archive-url=https://web.archive.org/web/20210126212931/https://www.technologyreview.com/2018/10/05/139885/a-big-tech-company-is-working-to-free-the-internet-from-big-tech-companies/ |archive-date=2021-01-26 |access-date=2020-04-21}}]
* Microsoft's [[self-sovereign identity]] system, [[Microsoft ION]], builds on the Bitcoin blockchain and IPFS through a Sidetree{{what|date=March 2023}}-based [[Decentralized identifiers|DID]] network.[{{Cite web |last=Simons |first=Alex |date=2019-05-13 |title=Toward scalable decentralized identifier systems |url=https://techcommunity.microsoft.com/t5/azure-active-directory-identity/toward-scalable-decentralized-identifier-systems/ba-p/560168# |url-status=live |archive-url=https://web.archive.org/web/20200429043202/https://techcommunity.microsoft.com/t5/azure-active-directory-identity/toward-scalable-decentralized-identifier-systems/ba-p/560168 |archive-date=29 April 2020 |access-date=2021-04-27 |website=[[Microsoft]] |language=en}}]
* The [[Shadow library|shadow libraries]] [[Anna's Archive]] and [[Library Genesis]] also deliver books via IPFS,[{{cite news |title="Anna's Archive" Opens the Door to Z-Library and Other Pirate Libraries * TorrentFreak |url=https://torrentfreak.com/annas-archive-opens-the-door-to-z-library-and-other-pirate-libraries-221118/ |access-date=8 January 2023 |work=TorrentFreak |language=en |archive-date=2022-11-19 |archive-url=https://web.archive.org/web/20221119123734/https://torrentfreak.com/annas-archive-opens-the-door-to-z-library-and-other-pirate-libraries-221118/ |url-status=live }}][{{cite news |title='Shadow Libraries' Are Moving Their Pirated Books to The Dark Web After Fed Crackdowns |url=https://www.vice.com/en/article/v7vnn4/shadow-libraries-are-moving-their-pirated-books-to-the-dark-web-after-fed-crackdowns |access-date=8 January 2023 |work=VICE |language=en |archive-date=2022-11-30 |archive-url=https://web.archive.org/web/20221130181558/https://www.vice.com/en/article/v7vnn4/shadow-libraries-are-moving-their-pirated-books-to-the-dark-web-after-fed-crackdowns |url-status=live }}][{{cite news |title=A piece of Web3 tech helps banned books through the Great Firewall's cracks |url=https://www.scmp.com/tech/tech-trends/article/3172431/web3-tech-helps-banned-books-piracy-site-library-genesis-slip |access-date=8 January 2023 |work=South China Morning Post |date=16 April 2022 |language=en |archive-date=2022-11-29 |archive-url=https://web.archive.org/web/20221129233050/https://www.scmp.com/tech/tech-trends/article/3172431/web3-tech-helps-banned-books-piracy-site-library-genesis-slip |url-status=live }}] enabling the largest human library of books to be more resilient.
* [[Brave (web browser)|Brave]] uses Origin Protocol and IPFS to host its decentralized merchandise store[{{Cite press release |title=Brave Launches New Swag Store Powered by Origin |date=2020-03-24 |url=https://brave.com/brave-launches-new-swag-store-powered-by-origin/ |language=en |access-date=2020-04-21 |url-status=live |archive-url=https://web.archive.org/web/20200425042551/https://brave.com/brave-launches-new-swag-store-powered-by-origin/ |archive-date=2020-04-25 |website=[[Brave (web browser)|Brave]]}}] and, in 2021, added support into their browser.[{{Cite web |last=Porter |first=Jon |date=2021-01-19 |title=Brave browser takes step toward enabling a decentralized web |url=https://www.theverge.com/2021/1/19/22238334/brave-browser-ipfs-peer-to-peer-decentralized-transfer-protocol-http-nodes |url-status=live |archive-url=https://web.archive.org/web/20210226170457/https://www.theverge.com/2021/1/19/22238334/brave-browser-ipfs-peer-to-peer-decentralized-transfer-protocol-http-nodes |archive-date=2021-02-26 |access-date=2021-01-29 |website=[[The Verge]] |language=en}}]
* [[Opera (web browser)|Opera]] for Android has default support for IPFS, allowing mobile users to browse {{code|ipfs://}} links to access data on the IPFS network.[{{Cite press release |title=Opera introduces major updates to its blockchain-browser on Android |date=2020-03-03 |url=https://press.opera.com/2020/03/30/opera-introduces-major-updates-to-its-blockchain-browser-on-android/ |language=en |access-date=2020-04-21 |url-status=live |archive-url=https://web.archive.org/web/20200402222330/https://press.opera.com/2020/03/30/opera-introduces-major-updates-to-its-blockchain-browser-on-android/ |archive-date=2020-04-02 |website=[[Opera (web browser)|Opera]]}}]
* Superhighway84 is an IPFS-based Usenet-like discussion system
* Filebase is a geo-redundant IPFS Pinning Service that pins each file to the IPFS network with 3 redundant copies stored across diverse geographic locations. [{{Cite press release |title=Filebase Documentation |date=2022-12-12 |url=https://docs.filebase.com/ |language=en |access-date=2023-01-11 |url-status=live |website=filebase.com |archive-date=2023-01-11 |archive-url=https://web.archive.org/web/20230111222949/https://docs.filebase.com/ }}]
=== Anti-censorship ===
* The [[2017 Catalan independence referendum|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 [[Pirate Party of Catalonia|Catalan Pirate Party]] mirrored the website on IPFS to bypass the [[High Court of Justice of Catalonia]] order of blocking.[{{Cite magazine |last=Balcell |first=Marta Poblet |date=2017-10-05 |title=Inside Catalonia's cypherpunk referendum |url=https://www.eurekastreet.com.au/article/inside-catalonia-s-cypherpunk-referendum |url-status=live |magazine=[[Eureka Street (magazine)|Eureka Street]] |language=en-AU |volume=27 |issue=20 |issn=1833-7724 |archive-url=https://web.archive.org/web/20210915035537/https://www.eurekastreet.com.au/article/inside-catalonia-s-cypherpunk-referendum |archive-date=2021-09-15 |access-date=2021-09-15}}][{{Cite news |last=Hill |first=Paul |date=2017-09-30 |title=Catalan referendum app removed from Google Play Store |language=en |work=[[Neowin]] |url=https://www.neowin.net/news/catalan-referendum-app-removed-from-google-play-store |url-status=live |access-date=2017-10-06 |archive-url=https://web.archive.org/web/20201101023421/https://www.neowin.net/news/catalan-referendum-app-removed-from-google-play-store |archive-date=2020-11-01}}]
* During the [[block of Wikipedia in Turkey]], IPFS was used to create a mirror of Wikipedia, which allowed access to archived static Wikipedia content despite the ban.[{{Cite news |last=Dale |first=Brady |date=2017-05-10 |title=Turkey Can't Block This Copy of Wikipedia |language=en |work=[[The New York Observer|Observer]] |url=http://observer.com/2017/05/turkey-wikipedia-ipfs/ |url-status=live |access-date=2017-12-20 |archive-url=https://web.archive.org/web/20171018092720/http://observer.com/2017/05/turkey-wikipedia-ipfs/ |archive-date=2017-10-18 |issn=1052-2948}}] The mirror has now been expanded to more languages, such as [[English language|English]], [[Ukrainian language|Ukrainian]], [[Russian language|Russian]], [[Arabic]], and [[Chinese language|Chinese]]. A collection of the mirrors can be viewed by using its CID at an IPFS Gateway.
=== Malware ===
[[Phishing]] attacks have also been distributed through [[Cloudflare]]'s IPFS gateway since July 2018. The phishing scam HTML is stored on IPFS, and displayed via Cloudflare's gateway. The connection shows as secure via a Cloudflare [[Transport Layer Security|SSL]] certificate.[{{Cite web |last=Abrams |first=Lawrence |date=2018-10-04 |title=Phishing Attacks Distributed Through Cloudflare's IPFS Gateway |url=https://www.bleepingcomputer.com/news/security/phishing-attacks-distributed-through-cloudflares-ipfs-gateway/ |url-status=live |archive-url=https://web.archive.org/web/20191009125848/https://www.bleepingcomputer.com/news/security/phishing-attacks-distributed-through-cloudflares-ipfs-gateway/ |archive-date=2019-10-09 |access-date=2019-08-31 |website=[[Bleeping Computer]] |language=en}}]
The IPStorm [[botnet]], first detected in June 2019, uses IPFS so it can hide its command-and-control amongst the flow of legitimate data on the IPFS network.[{{Cite web |last=Palmer |first=Danny |date=2019-06-11 |title=This unusual Windows malware is controlled via a P2P network |url=https://www.zdnet.com/article/this-unusual-windows-malware-is-controlled-via-a-p2p-network/ |url-status=live |archive-url=https://web.archive.org/web/20190906223819/https://www.zdnet.com/article/this-unusual-windows-malware-is-controlled-via-a-p2p-network/ |archive-date=2019-09-06 |access-date=2019-08-31 |website=[[ZDNet]] |language=en}}] Security researchers had worked out previously the theoretical possibility of using IPFS as a botnet command-and-control system.[{{Cite journal |last1=Patsakis |first1=Constantinos |last2=Casino |first2=Fran |date=2019-06-04 |title=Hydras and IPFS: a decentralised playground for malware |journal=International Journal of Information Security |language=en |volume=18 |issue=6 |pages=787–799 |arxiv=1905.11880 |doi=10.1007/s10207-019-00443-0 |s2cid=167217444}}][{{Cite conference |last1=Macabeus |first1=Bruno |last2=Vinicius |first2=Marcus |last3=Cavalcante |first3=João Paolo |last4=de Souza |first4=Cidcley Teixeira |date=2018-05-06 |title=Protocolos IPFS e IPNS como meio para o controle de botnet: prova de conceito |url=https://sol.sbc.org.br/index.php/wscdc/article/view/2400/2364 |conference=Workshop de Segurança Cibernética em Dispositivos Conectados |language=pt-BR |archive-url=https://web.archive.org/web/20210117104344/https://sol.sbc.org.br/index.php/wscdc/article/view/2400/2364 |archive-date=2021-01-17 |access-date=2021-04-27 |via=SBC Open Lib |url-status=live}}]
== See also ==
{{Portal|Free and open-source software}}
* [[Content-addressable storage]]
* [[Dat (software)]]
* [[Distributed file system]]
* [[Freenet]]
* [[GNUnet]]
* [[Mnet (peer-to-peer network)]] aka MojoNation
* [[ZeroNet]]
== References ==
{{reflist}}
== External links ==
* {{Official website|https://ipfs.tech/}}
{{File systems|state=collapsed}}
{{File sharing|state=collapsed}}
{{Internet censorship circumvention technologies|state=collapsed}}
{{Authority control}}
[[Category:Decentralized cloud computing]]
[[Category:Application layer protocols]]
[[Category:Computer-related introductions in 2015]]
[[Category:Distributed data storage]]
[[Category:Distributed file systems]]
[[Category:File transfer protocols]]
[[Category:Free network-related software]]
[[Category:Free software programmed in Python]]
[[Category:Internet privacy software]]
[[Category:Internet protocols]]
[[Category:Network protocols]]
[[Category:Peer-to-peer computing]]