InterPlanetary File System

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

InterPlanetary File System

IPFS-Logo
Basisdaten

Entwickler Protocol Labs
Erscheinungsjahr 2015
Aktuelle Version 0.27.0[1]
(4. März 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

InterPlanetary File System (IPFS) ist ein Protokoll und namensgebendes Netzwerk, entworfen, um eine Inhalts-adressierbare, Peer-to-Peer-Methode des Speicherns und Teilens von Hypermedien in einem verteilten Dateisystem zu schaffen.[2] IPFS wurde ursprünglich von dem Informatiker Juan Benet entworfen und ist nun ein Open-Source-Projekt, das von einer Gemeinschaft weiterentwickelt wird.[3]

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.[4]

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.[5] In mancher Hinsicht ist IPFS dem World Wide Web ähnlich[6], 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.[7] 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.[7] 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.

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.

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Release 0.27.0. 4. März 2024 (abgerufen am 22. März 2024).
  2. What is IPFF
  3. What is the InterPlanetary File System (IPFS), and how does it work?
  4. Kubo: IPFS Implementation in GO
  5. Was ist IPFS – InterPlanetary File System
  6. [1]
  7. a b Ian Allison: Juan Benet of IPFS talks about Filecoin. In: International Business Times UK. 13. Oktober 2016 (co.uk).