feat(en:Active_ingredient):Add current state
[BK-2020-09.git] / en.wikipedia.org / InterPlanetary_File_System / article.txt
1 {{short description|Content-addressable, peer-to-peer hypermedia distribution protocol}}
2 {{Lead too short |date=April 2022}}
3 {{Use dmy dates |date=January 2019 |cs1-dates=y}}
4 {{Infobox software
5 | name = InterPlanetary File System
6 | logo = Ipfs-logo-1024-ice-text.png
7 | logo alt =
8 | logo caption =
9 | screenshot = <!-- Image name is enough -->
10 | screenshot alt =
11 | caption =
12 | collapsible = <!-- Any text here will collapse the screenshot -->
13 | author = Juan Benet and Protocol Labs<ref name="ambercase">{{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}}</ref>
14 | developer = [[Protocol Labs]]
15 | released = {{Start-date|February 2015|ISO8601=y}}<ref name=ambercase/>
16 | discontinued = <!-- Set to yes if software is discontinued, otherwise omit -->
17 | ver layout = <!-- simple (default) or stacked -->
18 | latest release version = 0.18.1
19 | latest release date = {{Start-date|2023-01-30|ISO8601=y}}<ref>{{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 }}</ref>
20 | latest preview version =
21 | latest preview date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
22 | repo = {{URL|https://github.com/ipfs/ipfs}}
23 | programming language = {{ubl|'''Protocol implementations''': [[Go (programming language)|Go]] (reference implementation), [[JavaScript]], [[C (programming language)|C]],<ref>{{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]]}}</ref> [[Python (programming language)|Python]]|'''Client libraries''': Go, [[Java (programming language)|Java]], JavaScript, Python, Scala, Haskell, Swift, Common Lisp, Rust, Ruby, PHP, C#, Erlang
24 | operating system = [[Linux]], [[FreeBSD]], [[OpenBSD]], [[macOS]], [[Windows]]}}
25 | platform =
26 | size =
27 | language = [[Go (programming language)|Go]], [[JavaScript]], [[Python (programming language)|Python]]
28 | language count = <!-- Number only -->
29 | language footnote =
30 | genre = {{ubl|[[Communications protocol|Protocol]],|[[distributed file system]],|[[content delivery network]]}}
31 | license = [[MIT license]], [[Apache license]] 2.0
32 | alexa =
33 | website = {{URL|https://ipfs.tech/|ipfs.tech}}
34 | standard =
35 | AsOf =
36 }}
37 {{File sharing sidebar}}
38
39 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]].<ref name="wired20160620">{{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}}</ref>
40
41 IPFS can among others replace the location based hypermedia server protocols [[http]] and [[https]] to distribute the [[World Wide Web]].<ref name="wired20160620"/><ref name="JuanBenet">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..."</ref><ref>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 }}</ref>
42
43 == Design ==
44 {{expand section |date=June 2020}}
45 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<ref>{{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}}</ref> 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).
46
47 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".<ref>{{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}}</ref> IPFS aims to replace protocols used for static webpage delivery by using gateways which are accessible with [[Hypertext Transfer Protocol|HTTP]].<ref>{{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}}</ref> 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.<ref>{{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]]}}</ref>
48
49 == History ==
50 {{expand section |date=June 2020}}
51
52 IPFS was created by [[Juan Benet (computer scientist).|Juan Benet]], who later founded Protocol Labs in May 2014.<ref name="wired20160620" /><ref name=":0">{{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}}</ref>
53
54 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."<ref name="ambercase" />
55
56 == Applications ==
57
58 <!-- Only add widely recognized organizations and situations that have used IPFS in a significant capacity. Do ''not'' add new entries without providing comprehensive reliable sources; see [[Wikipedia:Reliable sources]] -->
59 * [[Filecoin]] is an IPFS-based [[cooperative storage cloud]], also authored by Protocol Labs.<ref>{{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}}</ref>
60 * [[Cloudflare]] runs a distributed web gateway to simplify, speed up, and secure access to IPFS without needing a local node.<ref>{{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}}</ref>
61 * 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.<ref>{{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}}</ref>
62 * The [[Shadow library|shadow libraries]] [[Anna's Archive]] and [[Library Genesis]] also deliver books via IPFS,<ref>{{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 }}</ref><ref>{{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 }}</ref><ref>{{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 }}</ref> enabling the largest human library of books to be more resilient.
63 * [[Brave (web browser)|Brave]] uses Origin Protocol and IPFS to host its decentralized merchandise store<ref>{{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]]}}</ref> and, in 2021, added support into their browser.<ref>{{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}}</ref>
64 * [[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.<ref>{{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]]}}</ref>
65 * Superhighway84 is an IPFS-based Usenet-like discussion system
66 * 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. <ref>{{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/ }}</ref>
67
68 === Anti-censorship ===
69
70 * 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.<ref>{{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}}</ref><ref>{{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}}</ref>
71 * 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.<ref>{{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}}</ref> 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.
72
73 === Malware ===
74
75 [[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.<ref>{{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}}</ref>
76
77 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.<ref>{{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}}</ref> Security researchers had worked out previously the theoretical possibility of using IPFS as a botnet command-and-control system.<ref>{{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}}</ref><ref>{{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}}</ref>
78
79 == See also ==
80 {{Portal|Free and open-source software}}
81 * [[Content-addressable storage]]
82 * [[Dat (software)]]
83 * [[Distributed file system]]
84 * [[Freenet]]
85 * [[GNUnet]]
86 * [[Mnet (peer-to-peer network)]] aka MojoNation
87 * [[ZeroNet]]
88
89 == References ==
90 {{reflist}}
91
92 == External links ==
93 * {{Official website|https://ipfs.tech/}}
94 {{File systems|state=collapsed}}
95 {{File sharing|state=collapsed}}
96 {{Internet censorship circumvention technologies|state=collapsed}}
97
98 {{Authority control}}
99
100 [[Category:Decentralized cloud computing]]
101 [[Category:Application layer protocols]]
102 [[Category:Computer-related introductions in 2015]]
103 [[Category:Distributed data storage]]
104 [[Category:Distributed file systems]]
105 [[Category:File transfer protocols]]
106 [[Category:Free network-related software]]
107 [[Category:Free software programmed in Python]]
108 [[Category:Internet privacy software]]
109 [[Category:Internet protocols]]
110 [[Category:Network protocols]]
111 [[Category:Peer-to-peer computing]]