IPFS InterPlanetary File System
IPFS (InterPlanetary File System) est un protocole de stockage de fichiers distribué qui permet de stocker et accéder à des fichiers à travers un réseau pair-à-pair. Il utilise une adressage basé sur les hash des fichiers pour identifier de manière unique les fichiers, ce qui permet une résistance aux erreurs de transmission et une sécurité accrue. Il vise à remplacer les systèmes de stockage centralisés par un système décentralisé et distribué.
Techniquement, IPFS fonctionne en utilisant un réseau pair-à-pair pour stocker et accéder aux fichiers. Les fichiers sont divisés en morceaux appelés “blooms” qui sont ensuite identifiés par un hash unique. Ces hash sont utilisés pour créer des adresses uniques pour chaque fichier, appelées “CID” (Content Identifier).
Lorsqu'un utilisateur veut accéder à un fichier, il envoie une demande à travers le réseau IPFS en utilisant la CID. Les nœuds du réseau recherchent ensuite les blooms correspondants au hash et les rassemblent pour reconstituer le fichier original. Les blooms peuvent être stockés sur plusieurs nœuds différents, ce qui permet une résilience accrue et une distribution de charge.
Il existe également des protocoles de mise en cache et de routage pour gérer efficacement les demandes et les réponses sur le réseau, ainsi que des protocoles de sécurité pour s'assurer que les données restent privées et intègres.
En résumé, IPFS utilise un système de stockage distribué qui repose sur des hash uniques pour identifier les fichiers, un réseau pair-à-pair pour stocker et accéder aux fichiers, des protocoles de mise en cache, de routage et de sécurité pour gérer efficacement les demandes et réponses sur le réseau.
IPFS utilise un système de recherche de pair à pair pour localiser les fichiers. Lorsqu'un utilisateur envoie une demande pour un fichier en utilisant sa CID, cette demande est propagée à travers le réseau à différents nœuds. Les nœuds envoient ensuite des demandes à leurs pairs connectés pour localiser les blooms correspondants au hash.
Cependant, il existe des protocoles qui permettent d'utiliser des annuaires pour stocker des CIDs de manière centralisée pour faciliter la recherche de fichiers. Ces protocoles permettent de stocker des CIDs dans un annuaire centralisé et de les utiliser pour la recherche de fichiers, cependant ils ne sont pas obligatoires pour utiliser IPFS. Certains projets tels que “IPNS” (InterPlanetary Name System) permettent de créer des alias de hash pour des adresses IPFS pour une recherche plus simple pour les utilisateurs.
Le projet IPFS est porté par la fondation Protocol Labs, une organisation à but non lucratif basée aux États-Unis. Protocol Labs est un groupe de recherche et de développement qui se concentre sur la création de protocoles et de technologies pour améliorer l'Internet. IPFS est un des projets majeurs de Protocol Labs, qui a également d'autres projets tels que : Filecoin, libp2p, IPLD, multiformats, entre autres. IPFS a été créé en 2014 par Juan Benet, qui est également fondateur et PDG de Protocol Labs. Depuis sa création, le projet a reçu un financement conséquent de différents investisseurs et est devenu un projet open-source très populaire, utilisé par de nombreux projets et entreprises.
PeerTube est un projet open-source qui a pour but de fournir une plateforme de streaming vidéo décentralisée et respectueuse de la vie privée. Il utilise IPFS pour stocker les vidéos de manière distribuée sur plusieurs nœuds, ce qui permet de réduire la charge sur les serveurs centraux et d'améliorer la résilience du système. Les utilisateurs peuvent également héberger leurs propres nœuds PeerTube pour contribuer à la distribution des vidéos. Cela permet également de limiter les risques de censure en rendant plus difficile pour les tiers de supprimer les vidéos.
En utilisant IPFS, PeerTube se distingue des plateformes de streaming centralisées comme YouTube ou Vimeo qui utilisent des serveurs centraux pour stocker et distribuer les vidéos, et qui ont donc un point unique de défaillance, et sont plus soumis aux risques de censures.
Il existe de nombreux projets et solutions qui utilisent IPFS pour différentes raisons. Voici quelques exemples :
- Storj: une plateforme de stockage décentralisée qui utilise IPFS pour stocker les fichiers de manière distribuée.
- Textile: une plateforme de stockage et de partage de photos décentralisée qui utilise IPFS pour stocker les photos de manière sécurisée et privée.
- Eternum: un jeu en ligne qui utilise IPFS pour stocker les données de jeu de manière distribuée.
- Fleek: une plateforme de développement web décentralisée qui utilise IPFS pour stocker les sites web de manière distribuée.
- Filecoin: un projet qui utilise IPFS pour stocker les fichiers de manière distribuée, et qui utilise un marché pour récompenser les utilisateurs qui hébergent des fichiers.
Il y a aussi des projets qui utilisent IPFS en combinaison avec d'autres protocoles décentralisés tels que blockchain pour offrir des solutions à des problèmes spécifiques. Des entreprises utilisent IPFS pour améliorer les performances de leurs applications et services, ou pour offrir des solutions de stockage distribué.
IPFS est un protocole ouvert, donc il est possible de l'utiliser de différentes manières, et il est en constante évolution, donc de nouvelles utilisations pourraient apparaître.
Sites et références
— Cédric ABONNEL dit Cédrix & CPT, sur une idée de Saturnin (saturnin) - Édition initiale du Sunday 22 January 2023