Serverlose statische Site mit IPFS

Mit TL; DR : IPFS können Sie statische Sites auf verteilte Weise hosten, auf die über öffentliche Caching-Gates (transparente Reverse-Proxys) im Internet zugegriffen werden kann, ohne das Programm für den Besucher installieren zu müssen. Solche Sites können ohne eine routbare ("weiße") statische IP-Adresse ausgegeben werden (dies funktioniert für NAT). Sie bleiben betriebsbereit, wenn aufgrund des Caches auf den Gates für kurze Zeit (mehrere Stunden) keine verteilenden Sites vorhanden sind. Sie können Ihre Domain nach Belieben an Gates binden und mehrere Gates gleichzeitig mit DNS-Einträgen versehen, um die Zuverlässigkeit und den Lastausgleich zu erhöhen. Andere IPFS-Benutzer können die Site herunterladen und bei der Verteilung helfen.
IPFS eignet sich hervorragend für statische Blogs, einfache Websites, Dateiarchive (als Ersatz für Bittorrent) und auch nur für die gleichzeitige Übertragung großer Dateien, ohne sie zuvor auf einen Dienst herunterzuladen.

Was ist IPFS?

IPFS ist ein dezentrales Peer-to-Peer-Dateiübertragungssystem, das im Prinzip BitTorrent ähnelt, jedoch über das Internet über HTTP zugreifen kann. Alle vom Benutzer heruntergeladenen Dateien werden vom IPFS-Dämon vorübergehend zwischengespeichert und an andere Benutzer verteilt, die sie anfordern. Wichtige Dateien können an den IPFS-Dämon „angehängt“ (Pin) werden, dann verschwinden sie nicht aus dem Cache.
Zu IPFS hinzugefügte Dateien erhalten globale Hashes, die sich nicht ändern, wenn die Datei erneut hinzugefügt wird. Die Adressierung im Netzwerk erfolgt über Inhaltskennungen (Content Identifiers, CIDs) , in denen sich ein Multi-Hash befindet . Im Kontext von IPFS verweisen sie auf eine unveränderte oder sich ändernde Datei, ein Verzeichnis, Metadaten oder einen Symlink.

Zum gegenwärtigen Zeitpunkt der Entwicklung funktioniert das Projekt vollständig nur mit statischen Daten. Es gibt jedoch bereits experimentelle Unterstützung für ein Protokoll wie Publisher-Subscribe (Publish / Subscribe) sowie eine IPFS-Implementierung in Javascript, die in einem Browser funktioniert und in Zukunft dynamische Websites erstellen kann (z. Kommentar-Blogs) mit Echtzeit-Interaktion (z. B. Chats).

Einer der Hauptvorteile von IPFS im Vergleich zu anderen ähnlichen Technologien ist der Zugriff auf Ressourcen aus dem Internet über die Gates, die von Unternehmen und Technologie-Enthusiasten installiert werden. Mit ihnen können Sie Websites durchsuchen und Dateien herunterladen, ohne IPFS auf Ihrem Computer installieren zu müssen. Das größte Gate stammt von Cloudflare . Außerdem können Sie ein kostenloses HTTPS-Zertifikat für die Domain ausstellen.

Warum wird IPFS benötigt und wo wird es verwendet?

Das Netzwerk ermöglicht es Ihnen, Daten effizient, verteilt und dezentral zu verteilen und herunterzuladen, auch über einen Browser. Ich sehe die folgenden realen Anwendungen für das Projekt:

  1. Kostenloses Hosting von statischen Websites für Obdachlose auf Ihrem Heimcomputer, ohne dedizierte IP-Adresse (für NAT), ohne Domain oder mit Domain;
  2. Nicht zensurkontrolliertes Hosting von Websites mit hohem Risiko, die möglicherweise von der Regierung oder von Drittunternehmen innerhalb der DMCA blockiert werden;
  3. Verteilung von regelmäßig wechselnden oder hinzugefügten Daten, die nicht effektiv über Bittorrent verteilt werden können (Sie müssen die Torrent-Datei ständig neu erstellen und alle Distributoren bitten, sie erneut herunterzuladen, was zur Fragmentierung der Seeds führt).
  4. Eine Alternative zu CDN, für die keine Einstellungen auf der Seite des „CDN-Anbieters“ erforderlich sind.

Wie erstelle ich eine Site in IPFS?

Dies ist einfacher als bei normalem Hosting! Betrachten Sie bum Hosting einer einfachen statischen Website.

Am einfachsten ist es, das grafische Dienstprogramm Siderus Orion zu verwenden.
Installieren Sie das Dienstprogramm, starten Sie es, klicken Sie auf Datei → Verzeichnis hinzufügen und wählen Sie das Verzeichnis mit den Site-Dateien aus.

Nach einer Weile erscheint ein Fenster mit Informationen zum importierten Inhalt:
Bild

Gehen Sie zur Registerkarte "Dateien" und klicken Sie mit der rechten Maustaste auf den Hash → Im Browser öffnen:
Bild

Wenn alles richtig gemacht wurde, wird die Seite durch das siderus.com-Tor geöffnet:
https://siderus.io/ipfs/QmU8rJjkXbfkPqEE3Dr8GiUMKF1vPnnNUKWdaB5DsZDfJ7/

Das ist alles, Ihre statische Site ist für andere Benutzer zugänglich, während Sie das Programm laufen lassen oder während es im Gate-Cache bleibt.

Eine alternative Konsolenoption : Laden Sie den offiziellen go-ipfs-Client herunter, entpacken, initialisieren und starten Sie ihn so, wie er auf der Website geschrieben steht :
ipfs init ipfs daemon 

Fügen Sie als Nächstes unser Verzeichnis mit Site-Dateien hinzu:
 ipfs add -r ./www.uncleoutrage.com … added QmXdaairbPoSGV98sQ3GsEuevVTE1EBUzZ4PhbLfKVh1nX www.uncleoutrage.com/images/fanart added QmdFbHdzzB4qBBkn8UsyHnjg1BKEtm9d5LaTyv5aZd8bbE www.uncleoutrage.com/images/gigs/thumbs added QmVPJ3Mr8gZL5x15A9XARC1uHASqb2JMsKTT7mWs37UmBo www.uncleoutrage.com/images/gigs added Qmd3AbVwMVE9W6ZSEuax96Xnymbnic4XVCdNEKBPZcWi5c www.uncleoutrage.com/images/live/thumbs added QmebUfmT2wmZMbJcAmSMS4cZJr4guTqV67xNJ3hiQGsLYx www.uncleoutrage.com/images/live added QmaEVaRiUUXfDnjjuXHGGsg7jDaFrCaxS7wi6q83q4N1uu www.uncleoutrage.com/images/misc/thumbs added QmW2ZivQF5eh5LHSLet298AhKCHiQsFV6rvUFvMcCkLopo www.uncleoutrage.com/images/misc added QmZXXn7abBvj7SvYJoYMAXUeajP6A1UABKENrNwuhKqofk www.uncleoutrage.com/images/promo/thumbs added Qmcx6bMKur4Anzh91bJC6o5vMPftzocSMmd7iYxoGwQrNX www.uncleoutrage.com/images/promo added QmW8P3ZnvKUytCWJF6y6wvBD8XAkk4bvJoVK8j3apokzLS www.uncleoutrage.com/images added QmXG1QjfpCjErQBGZvF6VWBryXe9WFLPqhrsGWtikACVwR www.uncleoutrage.com/js added QmYGXwLJBnqXwWYGKVtjZtmwncgwNoqNmnYqo1NTinTGBp www.uncleoutrage.com/theband/misc/pages added QmWg4JyZ4ox9hcHt6JGBfzUm5CqWsb6DixUksamFvbirH4 www.uncleoutrage.com/theband/misc added QmPtn9XBhWqe7A1z3ikktWExSPSM27LTzUL3US9N5xcAPB www.uncleoutrage.com/theband/redsaug21/pages added QmaGV6kfLdL1bKGBBHYJLDVstiejAANayBZt16NMF9g9j9 www.uncleoutrage.com/theband/redsaug21 added QmScmcUAdC5pinMxaoLuXSy3FDUAX5E68dADnGjYZbPUiY www.uncleoutrage.com/theband added QmU8rJjkXbfkPqEE3Dr8GiUMKF1vPnnNUKWdaB5DsZDfJ7 www.uncleoutrage.com 

Der letzte Hash ist der Hash des Verzeichnisses, und wir brauchen ihn.

Wir kompilieren einen Link zum Öffnen des Verzeichnisses durch das Gate in der folgenden Form:
 https:///ipfs/ 

Zum Beispiel:
https://cloudflare-ipfs.com/ipfs/QmU8rJjkXbfkPqEE3Dr8GiUMKF1vPnnNUKWdaB5DsZDfJ7

Wie binde ich einen IPFS-Hash an eine Domain?

Um eine Website über die Domain https://uncleoutrage.com/ und nicht über einen langen und hässlichen Link zugänglich zu machen, müssen Sie mehrere DNS-Einträge hinzufügen:

  1. A- und AAAA-Einträge, die auf die Gate-IP-Adresse verweisen, oder CNAME-Einträge, die auf den Gate-Domänennamen verweisen;
  2. TXT-Datensatz "_dnslink" mit Inhalten wie "dnslink = / ipfs / HASH".

In meinem Fall habe ich A- und AAAA-Einträge hinzugefügt, die auf die IP-Adressen von cloudflare-ipfs.com und den TXT-Datensatz "_dnslink.uncleoutrage.com" verweisen:
 uncleoutrage.com. IN A 104.18.252.167 uncleoutrage.com. IN A 104.18.255.167 uncleoutrage.com. IN AAAA 2400:cb00:2048:1::6812:fda7 uncleoutrage.com. IN AAAA 2400:cb00:2048:1::6812:40a8 _dnslink.uncleoutrage.com. IN TXT "dnslink=/ipfs/QmU8rJjkXbfkPqEE3Dr8GiUMKF1vPnnNUKWdaB5DsZDfJ7" 

Sie können ein HTTPS-Zertifikat von Cloudflare für die verknüpfte Domäne erhalten. Sie müssen es auf der Seite mit dem speziellen Zertifikatseingang anfordern .
Wenn Sie keine HTTPS-Unterstützung benötigen, können Sie mehrere Gates gleichzeitig mit mehreren A / AAAA-Datensätzen versehen. Die aktuelle Liste der Arbeitstore finden Sie im Projektforum .
Im Falle einer Aktualisierung der Site müssen Sie den TXT-Domäneneintrag aktualisieren.

Wie kann ich einen TXT-Datensatz nicht mit Site-Updates aktualisieren?

Mit IPFS können Sie eine spezielle statische Hash-ID generieren, die auf einen sich ändernden Hash verweist - IP N S. Klicken Sie im grafischen Client einfach auf Datei → In IPNS veröffentlichen und geben Sie Ihre Peer-ID im Link oder im TXT-Datensatz der Domäne an und nicht den Hash, der beim Hinzufügen des Verzeichnisses erhalten wurde. Zum Beispiel:
 https://cloudflare-ipfs.com/ipns/QmV97DGqaaTVn54RH9CLTi9hxXfr57gJQ4zGtyHcVbtfH6 

Der IPNS-Datensatz muss jedoch alle paar Stunden manuell aktualisiert (veröffentlicht) werden und löst sich viel langsamer auf / ipfs /.

IPNS kann übrigens nicht nur CIDs, sondern auch DNS-Link-Einträge für eine Domain auflösen. Eine Site kann über einen Link wie https://cloudflare-ipfs.com/ipns/uncleoutrage.com geöffnet werden.

Fazit

Wenn Sie mehr über IPFS erfahren möchten, lesen Sie die Reihe der hervorragenden ivan386- Artikel . Sie sind geeky und erzählen fast nie, warum ein gewöhnlicher Mensch IPFS benötigt (sonst wäre dieser Artikel nicht gewesen).

Möchten Sie bei der Verteilung von IPFS-Sites helfen oder darüber informiert werden, dass die Domain an ein IPFS-Gate gebunden ist? Installieren Sie ein Browser-Add-On (für Firefox , für Chrome ), das IPFS-Sites auf Ihren lokalen Knoten umleitet.

Seit einigen Monaten verteilt Anti-Ban über das Cloudflare-Gate täglich Terabyte an PAC-Dateien über IPFS. Es funktioniert stabil und spart erheblich Serververkehr.

Source: https://habr.com/ru/post/de430172/


All Articles