So fügen Sie eine Site zu IPFS und IPNS hinzu

IPFS ermöglicht das Platzieren von p2p-Inhalten in Webanwendungen und einfachen Webseiten. Sie können auch eine ganze statische Site in einem Peer-to-Peer (p2p) -IPFS-Netzwerk hosten. Andere Personen, denen IPFS-Knoten gehören, können Ihre Website freigeben und einen Peer Ihres Inhalts darstellen und HTML, CSS, JS und Bilder von ihren Knoten aus verteilen. Danach - wenn Ihr Knoten anhält, wird die Site in Betrieb genommen, während jemand mit einem IPFS-Knoten eine Site auf seinem Knoten belässt.

So beginnen Sie mit Ihrer ersten Site im IPFS-Netzwerk:

  1. Führen Sie Ihren eigenen IPFS-Knoten aus
  2. Hinzufügen von Inhalten zu IPFS mit einfachen Befehlen
  3. Verwenden Sie den Ergebnisinhalts-Hash (Ausgabe des Befehls), um Dateien per Link abzurufen: https://ipfs.io/ipfs/
  4. Sie können diesen Link direkt in das img-Tag einfügen, indem Sie ” /> eingeben
    Oder Sie können Websites auf IPNS veröffentlichen und unter folgendem Link anzeigen:
    https://ipfs.io/ipns/my-site.url

Beschreiben wir nun diese 4 Punkte im Detail:

1. Laden Sie den IPFS-Knoten herunter und führen Sie ihn aus:

https://dist.ipfs.io/#go-ipfs
Nehmen wir zum Beispiel eine Linux-amd64-Distribution:

cd ~ /
wget https://dist.ipfs.io/go-ipfs/v0.4.14/go-ipfs_v0.4.14_linux-amd64.tar.gz

Dann installieren Sie es wie hier beschrieben:
https://ipfs.io/docs/install/
In meinem Beispiel:

tar xvfz go-ipfs_v0.4.14_linux-amd64.tar.gz
cd go-ipfs
./install.sh

Jetzt können Sie den Knoten initialisieren und ausführen:

ipfs init
ipfs-Daemon> ipfs.log &

2. Fügen Sie dem IPFS-Knoten Inhalt hinzu:

Erstellen wir Ihr IPFS-Site-Verzeichnis:

cd ~ /
mkdir my-site; cd meine-seite

Jetzt können Sie zum Beispiel ein Katzenbild herunterladen:

wget -O cat.jpeg https://images.pexels.com/photos/104827/cat-pet-animal-domestic-104827.jpeg?auto=compress&cs=tinysrgb&h=350
cat.jpeg

Und erstelle index.html und style.css mit diesem Inhalt:

Fügen Sie schließlich das gesamte Site-Verzeichnis zu Ihrem Knoten hinzu:

cd ../
ipfs add -r meine-seite /

Sie sollten so etwas sehen:

QmQiuSt4dKVFvi1zkYbrBWgX8CpasLmzux6dWrdfoDq1Qc my-site / cat.jpeg hinzugefügt
QmQtJm6VcLdyMa6RqWESPgXsqmiaJ48RXrLFXojPPtHkni my-site / index.html wurde hinzugefügt
QmZL2UBTwnhcLv66fARL9UV8W8a9ZA4iwTLcaUCsB1u1yW my-site / style.css wurde hinzugefügt
QmNUhKfcGJyQJnZu3AKn8NoiomDwDCRBicgqPt1YRqJBCz my-site hinzugefügt

3. Besuchen Sie Ihre Site mit einem IPFS-Hash

Der Hash in der letzten Zeile ist das Stammverzeichnis Ihrer Website. Sie können ihn besuchen, indem Sie https://ipfs.io/ipfs/ öffnen. Die Beispielsite befindet sich also unter https://ipfs.io/ipfs/QmNUhKfcGJyQJnZu3AKn8NoiomDwDCRBicgqPt1YRqJBCz

Sie können jede Datei über einen Link erhalten, den Sie zu IPFS hinzufügen.

4. Veröffentlichen Sie auf IPNS

Trotz der Tatsache, dass Sie einen Link zur Website erhalten können - wenn Sie Änderungen daran vornehmen - verweist der Link weiterhin auf die vorherige Version der Website. Dies liegt daran, dass das IPFS ein git-ähnliches System für Datei-Hashes verwendet (Hash-Punkt auf eine bestimmte Version der Datei wie Commit-Hash). Wenn Sie diesen IPFS-Link verwenden, können Sie keine neue Version der Site erhalten.

Aus diesem Grund benötigen wir IPNS, um Ihr Verzeichnis oder Ihre Datei an die Peer-ID Ihres Knotens zu binden. Danach können wir jederzeit die neueste Version der Site erhalten, wenn wir den IPNS-Link verwenden.

Jetzt möchten wir die aktuelle Version der Site auf IPNS veröffentlichen:

ipfs name publish QmNUhKfcGJyQJnZu3AKn8NoiomDwDCRBicgqPt1YRqJBCz

Sie sollten so etwas sehen:

Veröffentlicht in:

Dadurch werden Ihre PeerID (QmYmmfn68vkcFDeZz1NTZyEXTixjjUnUS6UaPdMSsUBWxs) und der auf PeerID veröffentlichte Hash zurückgegeben. Sie können mit bestätigen

IPFS-Namensauflösung 

Danach können Sie die veröffentlichte Version der Website unter folgendem Link besuchen: https://ipfs.io/ipns/

In meinem Beispiel: https://ipfs.io/ipns/QmYmmfn68vkcFDeZz1NTZyEXTixjjUnUS6UaPdMSsUBWxs

Wenn Sie in Zukunft den Websiteinhalt ändern müssen, können Sie dies tun. Fügen Sie dann eine neue Websiteversion zu ipfs hinzu und veröffentlichen Sie sie erneut:

ipfs add -r meine-seite /
IPFS-Name  veröffentlichen

Ein neuer Site-Hash wird an Ihre Peer-ID angehängt, und wenn der Benutzer den IPNS-Link besucht, erhält er die neueste Version der Site.

Diese IPNS-Verbindung ist jedoch immer noch zu lang und nicht für den Menschen geeignet. Deshalb habe ich folgenden Bonuspunkt hinzugefügt:

5. Binden Sie IPNS an die Domäne

Dazu müssen Sie eine Domain kaufen und anschließend die DNS-Einstellungen der Domain ändern.

Sie können IPNS an eine Domäne binden, indem Sie einen DNS-TXT-Eintrag des Formulars hinzufügen

"Dnslink = / ipfs / ", damit Sie Pfade wie /ipns/example.com/2015/09/15/hosting-a-website-on-ipfs/ verwenden können.
Ich habe beispielsweise meine Website zum DNS hinzugefügt und kann jetzt über die URL https://ipfs.io/ipns/cat.jonybang.ru/ aufgerufen werden.

P.S.

Machen Sie sich bitte keine Sorgen, wenn Ihr oder mein Inhalt zu langsam geladen wird. Ein Vorteil von IPFS ist, dass der Inhalt umso schneller geladen wird, je beliebter er ist. Weil mehr Peers Ihre Inhalte freigeben und der Client mehr Quellen erhält und Ihre Inhalte schneller werden.

Um die Ladegeschwindigkeit Ihrer Inhalte zu verbessern, bitten Sie Freunde, Ihre Inhalte zu teilen. Gehen Sie dazu folgendermaßen vor:

cd ~ / && mkdir ipfs-files # Ordner zum Herunterladen von ipfs-Inhalten erstellen
cd ipfs-dateien
ipfs get /ipns/cat.jonybang.ru
ipfs add ./cat.jonybang.ru

Wenn Sie meine Beispielsite und andere IPFS-Sites zu Ihrem ipfs-Knoten hinzufügen, helfen Sie mir und der gesamten IPFS-Community (InterPlanetary File System)!

P.P.S.

Um mehrere Sites auf Ihrem IPFS-Knoten zu erstellen, können Sie mehrere benannte Peer-IDs generieren. Zum Beispiel, um eine neue Hundeseite hinzuzufügen:

ipfs key gen --type = rsa --size = 2048 dog-site
ipfs add ./my-dog-site
ipfs name publish --key = dog-site 

Folgen Sie mir auf Twitter: https://twitter.com/jony_bang