Was ist das Interplanetare Dateisystem (IPFS) und wie wird es verwendet?

Veröffentlicht: 2022-06-25
Mehrere sechseckige Kacheln mit "menschlichen" Symbolen, die in einem Netz verbunden sind.
Andrii Yalanskyi / Shutterstock

Das Interplanetary File System (IPFS) ist ein verteiltes Peer-to-Peer-Filesharing-Netzwerk, das gut positioniert ist, um die Grundlage eines neuen, dezentralisierten Webs zu werden. Hier erfahren Sie, wie es funktioniert und wie Sie es verwenden können.

Inhaltsverzeichnis

Ein dezentrales Internet
Wie das IPFS funktioniert
Wie Daten gespeichert werden
So installieren Sie IPFS
Das Webinterface
Der IPFS-Desktop-Client
Was kommt als nächstes?

Ein dezentrales Internet

Obwohl es global ist, ist das World Wide Web immer noch ein zentralisiertes Netzwerk. Die Datenspeicherung hinter dem Internet sind überwiegend Server – physisch oder virtuell – in riesigen Serverfarmen oder Cloud-Plattformen. Diese Einrichtungen gehören einem einzigen Unternehmen. Die Server sind im Besitz oder von anderen Unternehmen gemietet und so konfiguriert und offengelegt, dass sie für die Außenwelt zugänglich sind.

Was ist HTTPS und warum sollte es mich interessieren?
RELATED Was ist HTTPS und warum sollte es mich interessieren?

Jeder, der auf die Informationen auf diesen Servern zugreifen möchte, muss eine HTTPS-Verbindung von seinem Browser zum entsprechenden Server herstellen. Der Server steht im Mittelpunkt und bedient alle Anfragen für den Zugriff auf die darin enthaltenen Daten.

Dies ist natürlich eine Vereinfachung, aber es beschreibt das allgemeine Modell. Um Skalierung zu ermöglichen und für Robustheit zu sorgen, können Organisationen Spiegelserver und Content-Delivery-Netzwerke ins Spiel bringen. Aber selbst dann gibt es immer noch eine relativ kleine und begrenzte Anzahl von Orten, an die Benutzer gehen können, um auf diese Dateien zuzugreifen.

IPFS ist eine Implementierung eines dezentralisierten Netzwerks. Eines der beliebtesten dezentralen Systeme ist Git, die Versionskontrollsoftware. Git ist ein verteiltes System, da jeder Entwickler, der ein Repository geklont hat, eine Kopie des gesamten Repositorys einschließlich des Verlaufs auf seinem Computer hat. Wenn das zentrale Repository gelöscht wird, kann jede Kopie des Repositorys verwendet werden, um es wiederherzustellen. IPFS übernimmt dieses verteilte Konzept und wendet es auf die Dateispeicherung und den Datenabruf an.

IPFS wurde von Juan Benet entwickelt und wird von Protocol Labs, dem von ihm gegründeten Unternehmen, verwaltet. Sie nahmen die dezentrale Natur von Git und die verteilten, bandbreitensparenden Techniken von Torrents und erstellten ein Dateisystem, das über alle Knoten im IPFS-Netzwerk funktioniert. Und es ist jetzt da und funktioniert.

Wie das IPFS funktioniert

Das dezentrale IPFS-Web besteht aus allen damit verbundenen Computern, die als Knoten bezeichnet werden . Knoten können Daten speichern und für jeden zugänglich machen, der sie anfordert.

Wenn jemand eine Datei oder eine Webseite anfordert, wird eine Kopie der Datei auf seinem Knoten zwischengespeichert. Da immer mehr Menschen diese Daten anfordern, werden immer mehr zwischengespeicherte Kopien vorhanden sein. Nachfolgende Anforderungen für diese Datei können von jedem Knoten – oder jeder Kombination von Knoten – erfüllt werden, auf dem sich die Datei befindet. Die Last, die Daten zu liefern und die Anfrage zu erfüllen, wird nach und nach auf viele Knoten verteilt.

Dies erfordert eine neue Art von Webadressen. Anstelle von adressbasiertem Routing, bei dem Sie den Speicherort der Daten kennen und eine bestimmte URL zu diesen Daten angeben müssen, verwendet das dezentrale Web inhaltsbasiertes Routing.

BitTorrent für Anfänger: Erste Schritte zum Herunterladen von Torrents
RELATED BitTorrent for Beginners: Erste Schritte zum Herunterladen von Torrents

Sie sagen nicht, wo sich die Daten befinden; Sie fordern an, was Sie wollen, und es wird für Sie gefunden und abgerufen. Da die Daten auf vielen verschiedenen Computern gespeichert sind, können alle diese Computer Teile der Daten auf einmal in Ihren Computer einspeisen, wie bei einem Torrent-Download. Dies soll die Latenz verringern, die Bandbreite reduzieren und Engpässe vermeiden, die durch einen einzelnen, zentralen Server verursacht werden.

Die Abkehr vom zentralisierten Modell bedeutet, dass es keinen Angriffspunkt für Hacker gibt. Aber die unmittelbare Sorge für die meisten Menschen wird die Vorstellung sein, dass ihre Dateien, Bilder und andere Medien auf den Computern anderer Leute gespeichert werden.

Ganz so ist es nicht. IPFS ist nicht etwas, mit dem Sie sich verbinden und in das Sie hochladen. Es ist keine verteilte, kommunale Dropbox. Es ist etwas, an dem Sie teilnehmen, indem Sie einen Knoten hosten oder für die Nutzung eines professionell bereitgestellten Knotens bezahlen, der von einem Cloud-Dienst gehostet wird. Und wenn Sie sich nicht dafür entscheiden, etwas zu teilen oder zu veröffentlichen, ist es für niemanden zugänglich. Tatsächlich ist der Begriff „Hochladen“ irreführend. Was Sie wirklich tun, ist das Importieren von Dateien in Ihren eigenen Knoten.

Was ist Verschlüsselung und wie funktioniert sie?
RELATED Was ist Verschlüsselung und wie funktioniert sie?

Wenn Sie möchten, dass eine Datei für andere zugänglich ist, der Inhalt jedoch auf einige wenige beschränkt bleiben muss, sollten Sie sie vor dem Import verschlüsseln. Die Übertragung von Daten erfolgt in beide Richtungen verschlüsselt, importierte Dateien werden jedoch absichtlich standardmäßig nicht verschlüsselt. Damit bleibt Ihnen die Wahl der Verschlüsselungstechnologie überlassen. IPFS drängt keine Form der Dateispeicherverschlüsselung als „offizielle“ Verschlüsselung.

Wie Daten gespeichert werden

Daten werden in Blöcken von 256 KB gespeichert, die als IPFS-Objekte bezeichnet werden. Größere Dateien werden in so viele IPFS-Objekte aufgeteilt, wie für die Aufnahme der Datei erforderlich sind. Ein IPFS-Objekt pro Datei enthält Links zu allen anderen IPFS-Objekten, aus denen diese Datei besteht.

Was ist eine Prüfsumme (und warum sollte es Sie interessieren)?
RELATED Was ist eine Prüfsumme (und warum sollte es Sie interessieren)?

Wenn eine Datei zum IPFS-Netzwerk hinzugefügt wird, erhält sie eine eindeutige, 24-stellige Hash-ID, die als Inhalts-ID oder CID bezeichnet wird. So wird es innerhalb des IPFS-Netzwerks identifiziert und referenziert. Durch die Neuberechnung des Hashs beim Abrufen der Datei wird die Integrität der Datei überprüft. Wenn die Prüfung fehlschlägt, wurde die Datei geändert. Wenn Dateien rechtmäßig aktualisiert werden, übernimmt IPFS die Versionierung von Dateien. Das bedeutet, dass die neue Version der Datei zusammen mit der vorherigen Version gespeichert wird. IPFS funktioniert wie ein verteiltes Dateisystem, und dieses Konzept der Versionierung verleiht diesem Dateisystem ein gewisses Maß an Unveränderlichkeit.

Angenommen, Sie speichern eine Datei in IPFS auf Ihrem Knoten, und jemand namens Dave fordert sie an und lädt sie auf ihren Knoten herunter. Die nächste Person, die nach dieser Datei fragt, erhält sie möglicherweise von Ihnen oder von Dave oder auf Torrent-ähnliche Weise, wobei Teile der Datei von Ihrem Knoten und von Daves Knoten stammen. Je mehr Personen die Datei herunterladen, desto mehr Knoten müssen sich einklinken und bei späteren Dateianfragen helfen.

Die Garbage Collection entfernt regelmäßig zwischengespeicherte IPFS-Objekte. Wenn Sie eine Datei dauerhaft speichern möchten, können Sie sie an Ihren Knoten anheften. Das bedeutet, dass es während der Garbage Collection nicht bereinigt wird. Sie können für die Speicherung bei Cloud-Speicheranbietern bezahlen, die Ihre Daten dem IPFS-Netzwerk aussetzen und sie dauerhaft festhalten, und es gibt Dienste, die speziell auf das Hosten von Websites zugeschnitten sind, die über IPFS zugänglich sind.

Wenn etwas auf Ihrer Website viral wird und massive Traffic-Wellen auf Ihre Website treibt, werden die Seiten in allen Knoten zwischengespeichert, die diese Seiten abrufen. Diese zwischengespeicherten Seiten werden verwendet, um weitere Seitenanforderungen zu bedienen, damit Sie auf der Welle reiten und die Nachfrage befriedigen können.

All dies hängt natürlich davon ab, dass eine ausreichende Anzahl von Knoten eingeschaltet und verfügbar ist und über genügend gepinnte und zwischengespeicherte Daten verfügt. Und dazu braucht es Mitwirkende.

So installieren Sie IPFS

Windows-Benutzer können die EXE-Datei auf der IPFS-Veröffentlichungsseite herunterladen und ausführen. Wenn Sie einen Mac verwenden, laden Sie die DMG-Datei herunter und ziehen Sie sie wie gewohnt in die Anwendungen. Wenn Sie auf Probleme stoßen, sehen Sie sich die offizielle Dokumentation an.

Zu Demonstrationszwecken führen wir die Installation auf Ubuntu durch. Es sind Snap-Pakete für IPFS und für den IPFS-Desktop-Client auf jeder Linux-Distribution verfügbar. Wenn Sie nur IPFS installieren, haben Sie einen voll funktionsfähigen IPFS-Knoten, den Sie mit einem Browser steuern und verwalten können. Wenn Sie den Desktop-Client installieren, müssen Sie den Browser nicht verwenden, der Client bietet die gleiche Funktionalität.

Um die Snaps zu installieren, verwenden Sie:

 sudo snap install ipfs 

Installieren des Kern-IPFS-Snap

 sudo snap install ipfs-desktop 

Installieren des IPFS-Desktop-Clients snap

Jetzt müssen Sie den Befehl ausführen, um Ihren Knoten zu initialisieren.

 ipfs-Init 

Initialisieren eines IPFS-Knotens

Die folgenden Befehle werden von IPFS vorgeschlagen, wenn Sie auf Schwierigkeiten stoßen und der Daemon nicht ausgeführt wird oder Sie keine Verbindung zu ihm herstellen können. Auf allen Testcomputern, die wir ausprobiert haben, waren diese erforderlich, also können Sie sie gleich jetzt ausstellen:

 ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["webui://-", "http://localhost:3000", "http://127.0.0.1:5001", "https ://webui.ipfs.io"]' 

Ursprungsübergreifende Anfragen in IPFS konfigurieren

 ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST"]' 

Zugriffsmethoden in IPFS konfigurieren

 sudo sysctl -w net.core.rmem_max=2500000 

Anpassen der Netzwerkpuffergröße

Wenn diese aus dem Weg sind, können Sie den IPFS-Daemon starten.

 ipfs-Daemon 

Starten des IPFS-Daemons

Wenn der Daemon gestartet wird, meldet er die beiden Adressen, die Sie verwenden können, um sich mit ihm zu verbinden. Einer ist für den IPFS-Desktop und der andere für die IPFS „webui“ oder Web-Benutzeroberfläche.

Die IPFS-Daemon-Verbindungsadressen

Das Webinterface

Fügen Sie die Webui-Adresse http://127.0.0.1:5001/webui in Ihren Browser ein, um eine Verbindung zum IPFS-Web-Frontend herzustellen.

Die Standardseite ist der Bildschirm „Status“. Dies ist ein Dashboard, das den Status und die Aktivität Ihres Knotens anzeigt. Es zeigt die Größe der von Ihnen gehosteten Dateien sowie die Gesamtgröße der zwischengespeicherten IPFS-Objekte, die Ihr Knoten hostet. Dies sind Daten von anderen Stellen im IPFS-Netzwerk. Das Dashboard zeigt auch zwei Echtzeit-Anzeigen, die den eingehenden und ausgehenden IPFS-Datenverkehr anzeigen, sowie ein Echtzeit-Diagramm, das den Verlauf dieses Datenverkehrs anzeigt.

IPFS-webui-Statusbildschirm

Um zu einem anderen Bildschirm zu wechseln, klicken Sie auf eines der Symbole in der linken Seitenleiste. Auf dem Bildschirm „Dateien“ können Sie die Dateien sehen, die Sie in IPFS importiert haben. Über die blaue Schaltfläche „Importieren“ können Sie auf Ihrem Computer nach Dateien oder Ordnern suchen, die Sie in IPFS importieren möchten.

Bildschirm „IPFS-Webui-Dateien“.

IPFS verwendet Merkle-Bäume. Dies ist eine sehr effiziente Obermenge binärer Hash-Bäume, die 1979 von Ralph Merkle erfunden wurde. Wer viele Bäume hat, hat einen Wald. Das Symbol „Erkunden“ öffnet einen Bildschirm, auf dem Sie verschiedene Arten von Informationen durchsuchen können, die in IPFS und seinem Merkle-Wald gespeichert sind.

Bildschirm „IPFS-Webui-Dateien“.

Es gibt ein Archiv mit Cartoons von der bekannten XKCD-Website. Wenn Sie auf diese Option klicken und einen Cartoon auswählen, erhalten Sie Ihren ausgewählten Cartoon über IPFS.

XKCD-Cartoon über IPFS geliefert

Das „Peers“-Symbol öffnet eine Weltkarte, die anzeigt, wo sich Ihre IPFS-Verbindungen rund um den Globus befinden.

IPFS webui Peers-Bildschirm

Innerhalb weniger Minuten hatten wir Verbindungen aus Australien, Weißrussland, Belgien, Kanada, China, Finnland, Frankreich, Deutschland, Japan, Malaysia, Niederlande, Norwegen, Polen, Portugal, Rumänien, Russland, Singapur, Südkorea, Schweden, Taiwan, Türkei, Großbritannien und natürlich die USA.

Ein positiver Beweis, falls einer benötigt würde, dass IPFS weltweit Aufsehen erregt hat. Sie werden sich natürlich nicht mit jedem verfügbaren Knoten verbinden. Das wäre ineffizient.

Der IPFS-Desktop-Client

Finden Sie IPFS Desktop im Anwendungsstarter Ihres Systems. Drücken Sie in GNOME bei gestopptem IPFS-Daemon Ihre „Super“-Taste und geben Sie „ipfs“ ein. Sie sehen das blaue IPFS-Würfelsymbol.

Klicken Sie auf dieses Symbol und der Desktop-Client wird gestartet. Es startet den Daemon selbst.

Das Aussehen und die Funktionalität des Desktop-Clients sind genau die gleichen wie die Weboberfläche, aber dieses Mal läuft er als eigenständige Anwendung.

Der IPFS-Desktop-Client

Eine zusätzliche Funktion, die die Anwendung bietet, ist eine App-Anzeige im Infobereich.

Dadurch haben Sie schnellen Zugriff auf ein Menü mit Optionen und eine Ampelanzeige für den Status Ihres Knotens. Die Anzeige ist grün für normalen Betrieb, rot für einen Fehler und gelb für den Start.

Das IPFS-App-Anzeigemenü

Was kommt als nächstes?

Nichts wird das bestehende, zentralisierte Web plötzlich ersetzen, aber im Laufe der Zeit werden sich die Dinge weiterentwickeln. Vielleicht ist das IPFS ein Vorgeschmack dessen, was es entwickeln könnte.