Le système de fichiers interplanétaire (IPFS) est un réseau distribué de partage de fichiers peer-to-peer qui est bien placé pour devenir le fondement d’un nouveau Web décentralisé. Voici comment cela fonctionne et comment vous pouvez commencer à l’utiliser.
Un Internet décentralisé
Même s’il est global, le World Wide Web reste un centralisé réseau. Le stockage de données derrière Internet est principalement constitué de serveurs, physiques ou virtuels, dans des fermes de serveurs massives ou des plates-formes cloud. Ces installations appartiennent à une seule entreprise. Les serveurs sont détenus ou loués par d’autres sociétés et configurés et exposés pour être accessibles au monde extérieur.
Toute personne souhaitant accéder aux informations sur ces serveurs doit établir une connexion HTTPS depuis son navigateur vers le serveur approprié. Le serveur est au centre, servant toutes les demandes d’accès aux données qu’il détient.
Il s’agit bien sûr d’une simplification, mais cela décrit le modèle général. Pour permettre l’évolutivité et assurer la robustesse, les organisations peuvent mettre en jeu des serveurs miroirs et des réseaux de diffusion de contenu. Mais même dans ce cas, il existe encore un nombre relativement restreint et fini d’emplacements où les gens peuvent se rendre pour accéder à ces fichiers.
IPFS est une implémentation d’un décentralisé réseau. L’un des systèmes décentralisés les plus populaires est Git, le logiciel de contrôle de version. Git est un système distribué car chaque développeur qui a cloné un référentiel dispose d’une copie de l’intégralité du référentiel, y compris l’historique, sur son ordinateur. Si le référentiel central est effacé, n’importe quelle copie du référentiel peut être utilisée pour le restaurer. IPFS prend ce concept distribué et l’applique au stockage de fichiers et à la récupération de données.
IPFS a été créé par Juan Benet et est maintenu par Protocol Labs, la société qu’il a fondée. Ils ont pris la nature décentralisée de Git et les techniques distribuées et économes en bande passante des torrents et ont créé un système de classement qui fonctionne sur tous les nœuds du réseau IPFS. Et c’est ici maintenant, et ça marche.
Comment fonctionne l’IPFS
Le web décentralisé IPFS est composé de tous les ordinateurs qui y sont connectés, appelés nœuds. Les nœuds peuvent stocker des données et les rendre accessibles à toute personne qui en fait la demande.
Si quelqu’un demande un fichier ou une page Web, une copie du fichier est mise en cache sur son nœud. Comme de plus en plus de personnes demandent ces données, de plus en plus de copies en cache existeront. Les requêtes ultérieures pour ce fichier peuvent être satisfaites par n’importe quel nœud (ou combinaison de nœuds) sur lequel se trouve le fichier. La charge de fournir les données et de répondre à la demande est progressivement répartie entre de nombreux nœuds.
Cela nécessite un nouveau type d’adresse Web. À la place de basé sur l’adresse routage où vous devez connaître l’emplacement des données et fournir une URL spécifique à ces données, le Web décentralisé utilise basé sur le contenu routage.
tu ne dis pas où les données sont ; vous demandez Quel vous voulez, et il est trouvé et récupéré pour vous. Étant donné que les données sont stockées sur de nombreux ordinateurs différents, tous ces ordinateurs peuvent fournir des parties de données à votre ordinateur en même temps, comme un téléchargement torrent. Ceci est destiné à réduire la latence, à réduire la bande passante et à éviter les goulots d’étranglement causés par un serveur central unique.
S’éloigner du modèle centralisé signifie qu’il n’y a pas de point focal pour les pirates à attaquer. Mais la préoccupation immédiate de la plupart des gens sera l’idée que leurs fichiers, images et autres médias seront stockés sur les ordinateurs d’autres personnes.
Ce n’est pas tout à fait ça. IPFS n’est pas quelque chose auquel vous vous connectez et que vous téléchargez. Ce n’est pas une DropBox distribuée, commune. C’est quelque chose auquel vous participez, en hébergeant un nœud ou en payant pour utiliser un nœud fourni par un professionnel hébergé par un service cloud. Et à moins que vous ne choisissiez de partager ou de publier quelque chose, il ne sera accessible à personne d’autre. En fait, le terme « télécharger » est trompeur. Ce que vous faites réellement, c’est importer des fichiers dans votre propre nœud.
Si vous souhaitez qu’un fichier soit accessible à d’autres mais que vous devez limiter le contenu à quelques privilégiés, vous devez le chiffrer avant de l’importer. La transmission des données est cryptée dans les deux sens, mais les fichiers importés ne sont volontairement pas cryptés par défaut. Cela vous laisse le choix de la technologie de cryptage. IPFS ne pousse pas une forme de cryptage de stockage de fichiers comme cryptage « officiel ».
Comment les données sont stockées
Les données sont stockées dans des blocs de 256 Ko, appelés objets IPFS. Les fichiers plus volumineux sont divisés en autant d’objets IPFS qu’il en faut pour accueillir le fichier. Un objet IPFS par fichier contient des liens vers tous les autres objets IPFS qui composent ce fichier.
Lorsqu’un fichier est ajouté au réseau IPFS, il reçoit un ID de hachage unique de 24 caractères, appelé le ID de contenu, ou CID. C’est ainsi qu’il est identifié et référencé au sein du réseau IPFS. Le recalcul du hachage lors de la récupération du fichier vérifie l’intégrité du fichier. Si la vérification échoue, le fichier a été modifié. Lorsque les fichiers sont légitimement mis à jour, IPFS gère le gestion des versions de fichiers. Cela signifie que la nouvelle version du fichier est stockée avec la version précédente. IPFS fonctionne comme un système de fichiers distribué, et ce concept de gestion des versions fournit un degré d’immuabilité à ce système de fichiers.
Supposons que vous stockiez un fichier dans IPFS sur votre nœud et que quelqu’un appelé Dave le demande et le télécharge sur son nœud. La prochaine personne qui demandera ce fichier pourrait l’obtenir de vous, ou de Dave, ou d’une manière semblable à un torrent avec des parties du fichier provenant de votre nœud et du nœud de Dave. Plus il y a de personnes qui téléchargent le fichier, plus il y a de nœuds à intégrer et à aider avec les demandes de fichiers ultérieures.
Le nettoyage de la mémoire supprimera périodiquement les objets IPFS mis en cache. Si vous souhaitez stocker un fichier de manière permanente, vous pouvez épingler à votre nœud. Cela signifie qu’il ne sera pas nettoyé lors de la collecte des ordures. Vous pouvez payer pour le stockage sur des fournisseurs de stockage en nuage qui exposent vos données au réseau IPFS et les gardent épinglées en permanence, et il existe des services spécialement conçus pour héberger des sites Web accessibles par IPFS.
Si quelque chose sur votre site Web devient viral et génère des vagues massives de trafic vers votre site Web, les pages seront mises en cache dans tous les nœuds qui récupèrent ces pages. Ces pages mises en cache seront utilisées pour aider à répondre aux demandes de pages supplémentaires, vous aidant à surfer sur la vague et à satisfaire la demande.
Bien sûr, tout cela dépend d’un nombre suffisant de nœuds activés et disponibles, et avec suffisamment de données épinglées et mises en cache. Et cela nécessite des participants.
Comment installer IPFS
Les utilisateurs Windows peuvent télécharger et exécuter le fichier EXE trouvé sur la page de publication IPFS. Si vous êtes sur un Mac, téléchargez le fichier DMG et faites-le glisser dans Applications comme vous le feriez normalement. Si vous rencontrez des problèmes, consultez la documentation officielle.
À des fins de démonstration, nous allons parcourir l’installation sur Ubuntu. Il existe des packages Snap disponibles pour IPFS et pour le client de bureau IPFS sur n’importe quelle distribution Linux. Si vous installez simplement IPFS, vous disposerez d’un nœud IPFS entièrement fonctionnel que vous pourrez contrôler et administrer à l’aide d’un navigateur. Si vous installez le client de bureau, vous n’avez pas besoin d’utiliser le navigateur, le client fournit toutes les mêmes fonctionnalités.
Pour installer les Snaps, utilisez :
sudo snap install ipfs
sudo snap install ipfs-desktop
Vous devez maintenant exécuter la commande pour initialiser votre nœud.
ipfs init
Les commandes suivantes sont suggérées par IPFS si vous rencontrez des difficultés et que le démon ne s’exécute pas ou que vous ne pouvez pas vous y connecter. Sur tous les ordinateurs de test que nous avons essayés, ceux-ci étaient requis, vous pouvez donc aussi bien les publier maintenant :
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["webui://-", "http://localhost:3000", "http://127.0.0.1:5001", "https://webui.ipfs.io"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST"]'
sudo sysctl -w net.core.rmem_max=2500000
Avec ceux à l’écart, vous pouvez démarrer le démon IPFS.
ipfs daemon
Lorsque le démon se lance, il signale les deux adresses que vous pouvez utiliser pour vous y connecter. L’un est pour le bureau IPFS et l’autre pour l’interface utilisateur Web ou « webui » IPFS.
L’interface Web
Collez l’adresse webui http://127.0.0.1:5001/webui
dans votre navigateur pour vous connecter au frontal Web IPFS.
La page par défaut est l’écran « État ». Il s’agit d’un tableau de bord indiquant l’état et l’activité de votre nœud. Il indique la taille des fichiers que vous hébergez, ainsi que la taille totale des objets IPFS mis en cache que votre nœud héberge. Il s’agit de données provenant d’ailleurs dans le réseau IPFS. Le tableau de bord affiche également deux jauges en temps réel montrant le trafic IPFS entrant et sortant, et un graphique en temps réel montrant l’historique de ce trafic.
Pour passer à un autre écran, cliquez sur l’une des icônes dans la barre latérale gauche. L’écran « Fichiers » vous permet de voir les fichiers que vous avez importés dans IPFS. Vous pouvez utiliser le bouton bleu « Importer » pour rechercher des fichiers ou des dossiers sur votre ordinateur que vous souhaitez importer dans IPFS.
IPFS utilise des arbres de Merkle. Il s’agit d’un sur-ensemble très efficace d’arbres de hachage binaires, inventé en 1979 par Ralph Merkle. Si vous avez beaucoup d’arbres, vous avez une forêt. L’icône « Explorer » ouvre un écran qui vous permet de parcourir différents types d’informations stockées dans IPFS et sa forêt Merkle.
Il existe une archive de dessins animés du célèbre site Web XKCD. En cliquant sur cette option et en sélectionnant un dessin animé, vous obtenez le dessin animé que vous avez choisi via IPFS.
L’icône « Peers » ouvre une carte du monde qui indique où se trouvent vos connexions IPFS dans le monde.
En quelques minutes, nous avons eu des connexions depuis l’Australie, la Biélorussie, la Belgique, le Canada, la Chine, la Finlande, la France, l’Allemagne, le Japon, la Malaisie, les Pays-Bas, la Norvège, la Pologne, le Portugal, la Roumanie, la Russie, Singapour, la Corée du Sud, la Suède, Taïwan, La Turquie, le Royaume-Uni et bien sûr les États-Unis.
Preuve positive, s’il en fallait, qu’IPFS a généré un buzz mondial. Vous ne vous connecterez pas à tous les nœuds disponibles, bien sûr. Ce serait inefficace.
Le client de bureau IPFS
Recherchez IPFS Desktop dans le lanceur d’applications de votre système. Sur GNOME, avec le démon IPFS arrêté, appuyez sur votre touche « Super » et tapez « ipfs ». Vous verrez l’icône bleue du cube IPFS.
Cliquez sur cette icône et le client de bureau démarrera. Il démarrera le démon lui-même.
L’apparence et les fonctionnalités du client de bureau sont exactement les mêmes que celles de l’interface Web, mais cette fois, il s’exécute en tant qu’application autonome.
Une fonctionnalité supplémentaire fournie par l’application est un indicateur d’application dans la zone de notification.
Cela vous donne un accès rapide à un menu d’options et à un indicateur lumineux de l’état de votre nœud. Le voyant est vert pour un fonctionnement normal, rouge pour une erreur et jaune pour le démarrage.
Que ce passe t-il après?
Rien ne va soudainement remplacer le Web centralisé existant, mais avec le temps, les choses vont évoluer. Peut-être que l’IPFS est un aperçu de ce vers quoi il pourrait évoluer.