IPFS ist ein verteiltes P2P Client-Netzwerk ohne zentrale Server. Die Clients sind die Knoten des Netzwerkes. IPFS verwendet Inhaltsadressen, um jede Datei in einem globalen Namespace, der alle Computergeräte miteinander verbindet, eindeutig zu identifizieren. Jeder Nutzer im Netzwerk kann eine Datei anhand ihrer Inhaltsadresse bereitstellen, und andere Peers im Netzwerk können diesen Inhalt mithilfe einer verteilten Hash-Tabelle (Distributed Hash Table, DHT) von jedem Knoten finden und anfordern.
Die Netzwerkknoten speichern Dateien bzw. Datensätze anhand einer CID (Content-ID), die als kryptographische Hash-Adresse wie ein Fingerabdruck funktioniert, und mit der sich alle Datensätze im Netzwerk finden und abrufen lassen. Das Internet der Zukunft.
Das klassische zentralisierte Internet hat viele Nachteile, die durch ein verteiltes Internet wie es IPFS ermöglicht, vermieden werden können. Das aktuelle Netz ist langsam, teuer und ineffizient. Zudem besteht die Möglichkeit der Zensur, zentralen Kontrolle bis hin zum Abschalten. Fällt der Server aus, auf dem sich Websieten befinden, sind sie nicht mehr erreichbar.
Das IPFS-Netz speichert Inhalte auf verschiedenen Knoten und stellt sicher, dass diese Inhalte bekannt und verfügbar sind. Es wird immer der Knoten angesteuert, der dem Abfragenden am nächsten liegt, um so hohe Geschwindigkeiten sicher zu stellen. Fällt ein Knoten aus, springt ein anderer automatisch ein.
Content-IDs bzw. Hash-Adressen sind lange Buchstaben- und Zahlen-Codes, die sich niemand merken kann. Diese ändern sich zudem bei jedem Update der Datei bzw. des Datensatzes. Um diese beiden Probleme zu lösen, gibt es das IPNS (Inter-Planetay Naming System), das Namenssystem von IPFS. Es ermöglicht die Verknüpfung von Hash-Adressen mit echten Namen sowie die Verknüpfung von Datensätzen als Alias, so dass sich Änderungen der Hash-Adresse nicht dadurch auswirken, dass man den Inhalt nicht mehr findet. Der Aliasname bezieht sich immer auf die aktuellste Version des Datensatzes.
Werden IPFS-Netzinhalte mit der Blockchain verknüpft, was vielfach geschieht, sind sie nicht änderbar, nicht löschbar und nicht zensierbar (siehe dazu Unstoppable Domains weiter unten).
Das IPFS-Netz funktioniert oberflächlich wie das bekannte Internet. Dateien werden über Web-Browser gesucht und abgerufen. Dabei ist die Datei-Form nicht relevant. Es können Bilder, Textdateien, Videos, MP3s oder Webseiten sein.
Diese Dateien müssen dem IPFS-Netz zur Verfügung gestellt werden. Das kann über den eigenen Computer in Form eines lokalen Hosts geschehen, so dass der eigene Computer selbst zum Netzwerkknoten wird, oder man lädt die Dateien auf einen IPFS-Dienst hoch. Wichtig ist, eine sogenannte IPFS-Hash-Adresse zu generieren, die als Fingerprint bzw. Netzwerkadresse der Datei gilt. Die Variante des lokalen Hosts hat übrigens den Nachteil, dass der Computer ständig online sein muss, damit die Datei gefunden und abgerufen werden kann.
Eine kostenlose Alternative ist Pinata. Dort kann man ein kostenloses Konto eröffnen und eigene Dateien hochladen, die dann mit einem Hashcode versehen werden. Anhand des Hashcodes wird die Datei bzw. der Datensatz auf Knoten im IPFS-Netzwerk verteilt und adressiert.
Auf einem Quellknoten werden Inhalte zum IPFS-Netzwerk hinzugefügt und diesem so zur Verfügung gestellt. Wenn andere Knoten anfangen, den gewünschten Inhalt anzufordern, wird er zunächst vom Quellknoten abgerufen.
Um Inhalte aus dem IPFS-Netzwerk abzurufen, muss Zugriff auf einen IPFS-Knoten bestehen. Der Knoten, der den Inhalt gespeichert hat, stellt dem IPFS-Netzwerk den kryptografischen Hash des gewünschten Inhalts zur Verfügung, und das IPFS-Netzwerk findet einen Knoten mit einer Kopie des Inhalts, die an den Abrufknoten zurückgesendet wird. Während dieser Abrufknoten lokal auf einem Computer ausgeführt werden kann (local host), gibt es Dienste, die Abrufknoten in Form eines IPFS-Gateways ( z.B. Cloudflare.com) anbieten. Gateways sind im Wesentlichen IPFS-Knoten, mit denen Inhalte von IPFS abgerufen werden können, ohne selbst einen IPFS-Knoten lokal zu hosten. IPFS-Gateways ermöglichen es, Inhalte von IPFS mithilfe eines Links abzurufen, der normalerweise wie folgt formatiert ist:
https://ipfs.io/ipfs/QmWmnbbWqrRB98zQnb4vX8RRgoGsVm5YAUHyZyiAw4mKGB
Dies ist die Adresse, die im Web-Browser eingegeben wird (in diesem Fall mit Hilfe von ipfs.io). "QmWmnbbWqrRB98zQnb4vX8RRgoGsVm5YAUHyZyiAw4mKGB" ist die IPFS Hash-Adresse des Content-Identifiers (CID), die abgefragt wird. Anhand des Hash-Codes wird der Datensatz (die Datei) im IPFS-Netz gefunden.
Wie unten im Video erklärt, können alle Arten von Dateien ins IPFS-Netz hochgeladen werden und gefunden werden, auch HTML-Dateien einer Website. Allerdings bestehen zwei Anforderungen an eine HTML-Datei:
- alle Dateien der Website müssen in einem Folder liegen, und die Startdatei muss wie bislang index.html heissen
- alle Links der Webseiten müssen relative Links sein, also innerhalb des Verzeichnisses verlinken
Beim Hosten auf IPFS ist zu beachten, dass Inhalte von anderen IPFS-Knoten erreicht werden können. Ein Knoten mit Inhalt muss also mit anderen Knoten im Netzwerk verbunden sein. Dies bedeutet, dass beim Hosten einer Website auf IPFS sicherzustellen ist, dass der Knoten, auf dem Sie die Inhalte hosten, jederzeit online ist.
Der einfachste Weg geht über Pinata. Wer keinen eigenen dedizierten Server für die Ausführung eines IPFS-Knotens einrichten möchte, bietet Pinata eine einfache Alternative. Mit einem kostenlosen Konto unter https://pinata.cloud/signup können Datein ganz schnell unter "upload directory" vom eigenen Computer hochgeladen werden. Webseiten müssen enstprechend vorbereitet sein (s.o.). Die Dateien müssen in einem speziellen eigenen Verzeichnis liegen, welches als ganzes hochgeladen wird. Sobald der Upload abgeschlossen ist, findet man die Dateien inklusive IPFS-Hash im Pin Explorer. Den Hash-Code benötigt man z.B., um ihn mit eiem Domain-Namen zu verbinden. Siehe dazu unten die Möglichkeit, eine .zil-Domain bei Unstoppable Domains zu kaufen und zu verknüpfen.
Natürlich kann man auch bereits bestehende und verfügbare Domains auf das IPFS-Netz leiten. In den Domaineinstellungen müssen dazu entsprechende Änderungen vorgenommen werden. Die Verknüpfung der Domain mit dem IPFS-Netzwerk kann über Anbieter wie Cloudflare.com erfolgen (Näheres dazu in der Beschreibung im Medium-Artikel s.u.).
Anstatt den kostenlosen Service von Pinata zu nutzen, kann man natürlich auch einen eigenen Host einrichten und als Knoten betreiben. Mit Hilfe der Software von ipfs.io (kostenlos herunterladen) kann mn dies mit etwas Kenntnis sehr schnell einrichten. Informationen dazu in den Videos unten.
So könnte man Dateien (auch ganze Websites) vom IPFS-Netz abrufbar machen, ohne eine eigene Domain oder einen kostenpflichtigen Server zu beanspruchen.
Lesen Sie dazu auch den englischen Artikel in Medium =>
Unstoppable Domains bietet Domains mit der Endung .zil und .crypto an und hostet diese auf der Zilliqa (bzw. Ethereum) Blockchain. Anders als z.B. .de oder .com - Domains auf zentralen Servern ist eine .zil-Domain nicht von Dritten zu manipulieren oder gar abzuschalten.
Die .zil- und .crypto- Domain werden über den Dienst von Unstoppable Domains mit dem IPFS-Netzwerk verbunden, so dass die Inhalte (z.B.) einer Website im dezentralen Internet abrufbar sind. Dazu muss lediglich die IPFS-Hashadresse im Dashboard der .zil-Domain eingegeben werden.
Als weitere Option besteht mit der .zil- (.crypto-) Domain die Möglichkeit, eigene Kryptowährungsadressen (z.B. Bitcoin, Ethereum, Litecoin u.a.) mit der Domain zu verknüpfen und diese dann für Zahlungszwecke zu nutzen. Der Domain-Name kann so als Zahlungs-Empfangsadresse genutzt werden. Man gibt dann nur noch den Domain-Namen an und nicht mehr die lange Coin-Adresse.
.zil- und .crypto-Domains sind ganz normal in jedem Browser abrufbar, sobald sie konfiguriert ist.
danke für Deinen Besuch