Site statique sans serveur utilisant IPFS

TL; DR : IPFS vous permet d'héberger des sites statiques de manière distribuée, accessibles via des portes de mise en cache publiques (proxys inverses transparents) sur Internet, sans avoir à installer le programme pour le visiteur. Ces sites peuvent être distribués sans adresse IP statique routable («blanche») (cela fonctionnera pour NAT), ils restent opérationnels s'il n'y a pas de sites de distribution pendant une courte période (plusieurs heures), en raison du cache sur les portes. Vous pouvez lier votre domaine à des portes à volonté et vous pouvez ajouter des enregistrements DNS à plusieurs portes en même temps, pour augmenter la fiabilité et l'équilibrage de charge. D'autres utilisateurs IPFS peuvent télécharger le site et aider à la distribution.
IPFS est idéal pour les blogs statiques, les sites simples, les archives de fichiers (en remplacement de Bittorrent), et également pour transférer des fichiers volumineux à la fois sans les télécharger au préalable sur un service.

Qu'est-ce que IPFS?

IPFS est un système de transfert de fichiers peer-to-peer décentralisé similaire en principe à BitTorrent, mais avec la possibilité d'accéder via HTTP, pour le Web. Tous les fichiers téléchargés par l'utilisateur sont temporairement mis en cache par le démon IPFS et distribués aux autres utilisateurs qui en font la demande. Les fichiers importants peuvent être «attachés» (broches) au démon IPFS, puis ils ne disparaîtront pas du cache.
Les fichiers ajoutés à IPFS reçoivent des hachages globaux qui ne changent pas lorsque le fichier est ajouté à nouveau. L'adressage dans le réseau est effectué par des identifiants de contenu (CID) , à l'intérieur desquels se trouve un multicash . Dans le contexte d'IPFS, ils pointent vers un fichier, un répertoire, des métadonnées ou un lien symbolique immuable ou changeant.

Au stade actuel de développement, le projet ne fonctionne entièrement qu'avec des données statiques, mais il existe déjà un support expérimental pour un protocole tel que publisher-subscribe (publication / abonnement), ainsi qu'une implémentation IPFS sur Javascript qui fonctionne dans un navigateur, qui vous permettra à l'avenir de créer des sites dynamiques (par exemple, blogs de commentaires) avec interaction en temps réel (par exemple, chats).

L’un des principaux avantages d’IPFS par rapport à d’autres technologies similaires est l’accès aux ressources de l’Internet via les grilles installées par les entreprises et les passionnés de technologie. Ils vous permettent de parcourir des sites et de télécharger des fichiers sans installer IPFS sur votre ordinateur. La plus grande porte est de Cloudflare , elle vous permet également d'émettre un certificat HTTPS gratuit pour le domaine.

Pourquoi IPFS est-il nécessaire et où l'utiliser?

Le réseau vous permet de distribuer et de télécharger des données de manière efficace, distribuée et décentralisée, y compris à partir d'un navigateur. Je vois les vraies applications suivantes pour le projet:

  1. Hébergement sans abri gratuit de sites Web statiques sur votre ordinateur personnel, sans adresse IP dédiée (pour NAT), sans domaine ou avec un domaine;
  2. Hébergement non contrôlé par la censure de sites à haut risque qui peuvent être bloqués par le gouvernement ou des sociétés tierces au sein du DMCA;
  3. Distribution de données changeant ou ajoutant périodiquement qui ne peuvent pas être efficacement distribuées via Bittorrent (vous devrez recréer constamment le fichier torrent et demander à tous les distributeurs de le télécharger à nouveau, ce qui conduit à la fragmentation des graines)
  4. Une alternative à CDN, qui ne nécessite pas de paramètres du côté du «fournisseur CDN».

Comment créer un site dans IPFS?

C'est plus facile qu'avec un hébergement régulier! Pensez à héberger un site statique simple.

L'option la plus simple consiste à utiliser l'utilitaire graphique Siderus Orion .
Installez l'utilitaire, démarrez-le, cliquez sur Fichier → Ajouter un répertoire, sélectionnez le répertoire contenant les fichiers du site.

Après un certain temps, une fenêtre apparaît avec des informations sur le contenu importé:
image

Allez dans l'onglet «Fichiers», faites un clic droit sur le hachage → Ouvrir dans le navigateur:
image

Si tout a été fait correctement, le site s'ouvrira via la porte siderus.com:
https://siderus.io/ipfs/QmU8rJjkXbfkPqEE3Dr8GiUMKF1vPnnNUKWdaB5DsZDfJ7/

C'est tout, votre site statique est accessible aux autres utilisateurs pendant que vous continuez à exécuter le programme, ou pendant qu'il reste dans le cache de la porte.

Une option de console alternative - téléchargez le client go-ipfs officiel, décompressez, initialisez et lancez-le tel qu'il est écrit sur le site :
ipfs init ipfs daemon 

Ensuite, ajoutez notre répertoire avec les fichiers du site:
 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 

Le dernier hachage est le hachage du répertoire, et nous en avons besoin.

Nous compilons un lien pour ouvrir le répertoire par le portail manuellement, de la forme:
 https:///ipfs/ 

Par exemple:
https://cloudflare-ipfs.com/ipfs/QmU8rJjkXbfkPqEE3Dr8GiUMKF1vPnnNUKWdaB5DsZDfJ7

Comment lier un hachage IPFS à un domaine?

Pour rendre un site Web accessible par le domaine https://uncleoutrage.com/ , et non par un lien long et laid, vous devez ajouter plusieurs enregistrements DNS:

  1. Enregistrements A et AAAA pointant vers l'adresse IP de la porte ou enregistrement CNAME pointant vers le nom de domaine de la porte;
  2. Enregistrement TXT "_dnslink", avec un contenu comme "dnslink = / ipfs / HASH".

Dans mon cas, j'ai ajouté des entrées A et AAAA pointant vers les adresses IP de cloudflare-ipfs.com et l'enregistrement TXT "_dnslink.uncleoutrage.com":
 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" 

Vous pouvez obtenir un certificat HTTPS auprès de Cloudflare pour le domaine lié, vous devez le demander sur la page spéciale de réception de certificat .
Si vous n'avez pas besoin de la prise en charge HTTPS, vous pouvez ajouter plusieurs enregistrements A / AAAA à différentes portes à la fois, la liste actuelle des portes de travail est disponible sur le forum du projet .
En cas de mise à jour du site, vous devrez mettre à jour l'enregistrement TXT du domaine.

Comment ne pas mettre à jour un enregistrement TXT avec les mises à jour du site?

IPFS vous permet de générer un identifiant de hachage statique spécial qui pointe vers un hachage changeant - IP N S. Dans le client graphique, cliquez simplement sur Fichier → Publier sur IPNS et spécifiez votre ID d'homologue dans le lien ou dans l'enregistrement TXT du domaine, et non le hachage obtenu lors de l'ajout du répertoire. Par exemple:
 https://cloudflare-ipfs.com/ipns/QmV97DGqaaTVn54RH9CLTi9hxXfr57gJQ4zGtyHcVbtfH6 

Cependant, l'enregistrement IPNS doit être mis à jour (publié) toutes les quelques heures manuellement, et ils résolvent beaucoup plus lentement / ipfs /.

Soit dit en passant, IPNS peut résoudre non seulement les CID, mais aussi les enregistrements dnslink pour un domaine - un site peut être ouvert en utilisant un lien comme https://cloudflare-ipfs.com/ipns/uncleoutrage.com .

Conclusion

Si vous voulez en savoir plus sur IPFS, lisez la série d'excellents articles ivan386 . Ils sont geek, et ils ne disent presque jamais pourquoi une personne ordinaire pourrait avoir besoin d'IPFS (sinon cet article ne l'aurait pas été).

Vous voulez aider à distribuer des sites IPFS ou être informé que le domaine est lié à une porte IPFS? Installez un module complémentaire de navigateur (pour Firefox , pour Chrome ) qui redirige les sites IPFS vers votre nœud local.

Depuis plusieurs mois, Anti-Ban distribue des téraoctets de fichiers PAC par jour via IPFS à l'aide de la porte Cloudflare. Il fonctionne de manière stable et économise considérablement le trafic du serveur.

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


All Articles