InterPlanetary File System
InterPlanetary File System
| |
---|---|
Basisdaten
| |
Entwickler | Protocol Labs |
Erscheinungsjahr | 2015 |
Aktuelle Version | 0.32.1[1] (15. November 2024) |
Aktuelle Vorabversion | 0.26.0-rc1[2] (11. Januar 2024) |
Betriebssystem | FreeBSD, Linux, macOS, Windows |
Programmiersprache | Protokollimplementierung: Go (Referenzimplementierung), JavaScript, C, Python Client-Bibliotheken: Go, Java, JavaScript, Python, Scala, Haskell, Swift, CommonLisp, Rust, Ruby, PHP, C#, Erlang |
Kategorie | Protokoll, Verteiltes Dateisystem, Content Delivery Network |
Lizenz | MIT-Lizenz |
Website: ipfs.tech, Gateway: ipfs.io |
Das Interplanetarische Filesystem, IPFS, ist ein weltweites Peer-to-Peer-Netzwerk um Dateien dezentral zu speichern. Dateien erhalten einen vom Inhalt abhängigen Hash, über den der Zugriff erfolgt. Damit ist das Filessystem inhaltsadressierbar. Diese Fileadressen kann man auch in Webseiten einbinden und damit Hypermedia erstellen, Firefox z. B. unterstützt zusätzlich zu HTTP auch das IPFS-Protokoll über Plug-ins.[3][4] IPFS bietet auch Gateways zu HTTP and und kann mit normalem Webbrowser zugegriffen werden. IPFS wurde ursprünglich von dem Informatiker Juan Benet entworfen und ist nun ein Open-Source-Projekt, das von einer Gemeinschaft weiterentwickelt wird.[5][6]
Geschichte
[Bearbeiten | Quelltext bearbeiten]Im Jahr 2014 verwendete das IPFS-Protokoll das Bitcoin Blockchain-Protokoll und dessen Netzwerkinfrastruktur, um unveränderliche Daten zu speichern, doppelte Dateien über das Netzwerk zu entfernen und Adressinformationen zum Zugriff auf Speicherknoten zu erhalten, um nach Dateien im Netzwerk zu suchen.
Es sind Implementierungen in Go und JavaScript vorhanden und eine Python-Implementierung ist in Arbeit. Die Go-Implementierung wird als Referenz betrachtet, während formale Spezifikationen entwickelt werden.[7]
Beschreibung
[Bearbeiten | Quelltext bearbeiten]IPFS ist ein verteiltes Peer-to-Peer-Dateisystem, das zum Ziel hat, alle IT-Geräte mit dem gleichen System der Dateiverwaltung zu verbinden.[8] In mancher Hinsicht ist IPFS dem World Wide Web ähnlich[9], aber IPFS kann auch als einzelner BitTorrent-Schwarm gesehen werden, der Objekte über ein Git-Repository austauscht. In anderen Worten bietet IPFS ein inhaltsadressiertes Blockspeicher-Modell, mit hohem Durchsatz und inhaltsadressierten Hyperlinks.[10] Dies formt einen verallgemeinerten, gerichteten azyklischen Merkle-Graphen. IPFS kombiniert eine verteilte Hash-Tabelle, einen angeregten Blockaustausch und einen selbst-zertifizierenden Namensraum. IPFS hat keinen Single-Point-of-Failure, und Knoten müssen sich nicht gegenseitig vertrauen, mit Ausnahme derjenigen Knoten, mit denen sie verbunden sind. Verteilte Inhaltsauslieferung reduziert Übertragungsvolumen und verhindert DDoS-Angriffe, welche bei der Nutzung von HTTP möglich wären.
Auf das Dateisystem kann über eine Vielzahl an Arten zugegriffen werden, einschließlich FUSE und HTTP.[10] Eine lokale Datei kann zu IPFS hinzugefügt werden und wird so weltweit verfügbar gemacht. Dateien werden über ihre Prüfsummen identifiziert und sind damit Cache-freundlich. Sie werden über ein BitTorrent-basiertes Protokoll verteilt. Andere Nutzer, welche die Inhalte betrachten, tragen dazu bei, diese Inhalte für weitere Nutzer im Netzwerk bereitzustellen. IPFS verfügt über einen Namensdienst, IPNS genannt. Es ist ein globaler Namensraum, basierend auf einer PKI, die die Bildung von Vertrauensketten unterstützt. Sie ist kompatibel mit anderen Namensdiensten und kann beispielsweise DNS, .onion, und .bit auf IPNS abbilden.
Merkle-Datenformat
[Bearbeiten | Quelltext bearbeiten]Jeder Merkle-Hashbaum ist ein gerichteter azyklischer Graph, weil auf jeden Knoten über seinen Namen zugegriffen wird. Jeder Zweig eines Merkle-Hashbaums ist der Hash seiner lokalen Inhalte und benennt seine Kindknoten nach ihren Hashes anstatt nach ihren vollständigen Inhalten. Daher gibt es nach seiner Erzeugung keine Möglichkeit mehr, einen Knoten zu bearbeiten. Unter der Voraussetzung, dass es zu keinen Hashkollisionen kommt, verhindert dies Endlosschleifen, da man nicht den ersten erstellten Knoten mit dem letzten Knoten verknüpfen kann, um die letzte Referenz zu erstellen.
Im Allgemeinen gilt für jeden Merkle: Um einen neuen Zweig zu erstellen oder einen vorhanden zu verifizieren, wird ein Hash-Algorithmus auf eine Kombination der lokalen Inhalte angewendet, wie einer Liste von Kindes-Prüfsummen und anderen Bytes. Es sind einige wenige unterschiedliche Hash-Algorithmen in IPFS verfügbar.
Die Daten, die als Eingabe für jeden dieser Hash-Algorithmen verwendet werden, sind dokumentiert.
Anwendungsbeispiele
[Bearbeiten | Quelltext bearbeiten]Das Unabhängigkeitsreferendum in Katalonien im Herbst 2017 wurde vom spanischen Verfassungsgericht für illegal erklärt und damit in Verbindung stehende Websites wurden blockiert. Anschließend wurden diese Websites von der katalanischen Piratenpartei unter Verwendung von IPFS gespiegelt, um die Blockierungsanweisung des Obersten Gerichtshofes Kataloniens zu umgehen.[11]
IPFS wird zur Erstellung eines Spiegels der Wikipedia-Projekte verwendet, um Menschen, die unter repressiven Regimen leben, ungehinderten Zugang zu diesen Inhalten zu ermöglichen.[12]
Die Kryptowährung Filecoin basiert auf einem IPFS-Dateinsystem.[13]
Weblinks
[Bearbeiten | Quelltext bearbeiten]- IPFS-Website
- Brave: Webbrowser mit eingebautem IPFS-Support auf heise.de
- IPFS in Opera Touch auf iOS!
- Die eigene Website im IPFS
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Release 0.32.1. 15. November 2024 (abgerufen am 23. November 2024).
- ↑ github.com. (abgerufen am 14. Januar 2024).
- ↑ What is IPFF
- ↑ Klint Finley: The Inventors of the Internet Are Trying to Build a Truly Permanent Web. In: Wired. 20. Juni 2016, archiviert vom am 15. Dezember 2020; abgerufen am 24. Juni 2024 (amerikanisches Englisch).
- ↑ What is the InterPlanetary File System (IPFS), and how does it work?
- ↑ Amber Case: Why The Internet Needs IPFS Before It’s Too Late. In: TechCrunch. 5. Februar 2022, archiviert vom am 5. Februar 2022; abgerufen am 24. Juni 2024.
- ↑ Kubo: IPFS Implementation in GO
- ↑ Was ist IPFS – InterPlanetary File System
- ↑ heise online: Brave: Web-Browser mit eingebautem IPFS-Support. 20. Januar 2021, abgerufen am 24. Juni 2024.
- ↑ a b Ian Allison: Juan Benet of IPFS talks about Filecoin. In: International Business Times UK. 13. Oktober 2016 (co.uk).
- ↑ Marta Poblet Balcell: Inside Catalonia's cypherpunk referendum. In: Eureka Street. 6. Oktober 2017, archiviert vom am 15. September 2021; abgerufen am 24. Juni 2024 (englisch).
- ↑ Brady Dale: Turkey Can’t Block This Copy of Wikipedia. In: Observer. 10. Mai 2017, archiviert vom am 18. Oktober 2017; abgerufen am 24. Juni 2024 (amerikanisches Englisch).
- ↑ Steven Johnson: Beyond the Bitcoin Bubble. In: The New York Times. 16. Januar 2018, ISSN 1553-8095, OCLC 1645522 (englisch, nytimes.com).