InterPlanetary File System

Le système de fichier interplanétaire (InterPlanetary File System (IPFS)), est un protocole pair à pair de distribution de contenu adressable par hypermédia, conçu à l'origine par Juan Benet[1]. L'implémentation principale d'IPFS est un logiciel libre[2] écrit en go.

IPFS

Informations
Créateur Juan Benet (d)
Développé par Protocol Labs
Dernière version 0.12.0 ()
Dépôt github.com/ipfs/ipfs
Écrit en Go
Système d'exploitation FreeBSD, Linux, macOS et Microsoft Windows
Type Protocole réseau
Système de fichiers
Hypermedia distribution protocol (d)
Réseau de diffusion de contenu
Licence Licence MIT
Site web ipfs.io

L'adjectif « interplanétaire » dans le nom évoque l'aspiration initiale du projet à pouvoir fonctionner de façon suffisamment décentralisée pour surmonter des difficultés liées à un morcellement du réseau même sur des distances astronomiques.

Description

IPFS est un système distribué de fichiers pair à pair qui ne dépend pas de serveurs centralisés. Son but est de connecter un ensemble d'équipements informatiques avec le même système de fichiers. D'une certaine manière IPFS est similaire au World Wide Web, à la différence qu'il peut être vu comme un essaim (Swarm) BitTorrent unique, qui échange des objets au sein d'un dépôt Git.

En d'autres termes, IPFS fournit un modèle de stockage par blocs adressable par contenu de haute capacité, utilisant des hyperliens pour l'accès. Ceci forme un graphe orienté acyclique de Merkle généralisé[3]. IPFS combine une table de hachage, un échange de blocs encouragé et un espace de noms auto-certifié. IPFS n'a pas de point unique de défaillance et les nœuds n'ont pas besoin de se faire mutuellement confiance[3].

Le système de fichiers peut être accédé de différentes manières, notamment via FUSE ou à travers HTTP. Il est possible d'ajouter un fichier local au système de fichier IPFS, le rendant de ce fait accessible au reste du monde. Les fichiers sont identifiés grâce à leur hash, permettant l'utilisation d'une mémoire cache, et distribués via Bitswap, une généralisation du protocole BitTorrent[4]. Il y combine également la table de hachage distribuée, (THD ou DHT) Kademlia[5], le système de contrôle de version Git et le système de fichier auto-certifiant (Self-certifying File System (en), SFS)[6]. Les utilisateurs lisant du contenu contribuent à servir ce contenu à d'autres utilisateurs sur le réseau.

IPFS utilise son propre système de noms de domaine appelé IPNS (Inter-Planetary Naming System), c'est un espace de nom global basé sur une infrastructure à clés publiques (ICP ou PKI) qui sert à construire une chaîne de confiance, qui est compatible avec les autres services de noms de domaine et peut lier des adresses de type DNS, .onion, .bit, etc. vers IPNS[3].

Concepts essentiels

CID

Le CID de ce logo Wikipedia est QmRW3V9znzFW9M5FYbitSEvd5dQrPWGvPvgQD6LM22Tv8D. On peut donc accéder au fichier de ce logo en HTTP via une passerelle publique ou via une instance locale d'IPFS.

IPFS, en tant que un système de fichier adressable par contenu, s'appuie sur un système d'identification de contenu. Chaque fichier est donc représenté par un identifiant typiquement calculé par une fonction de hashage, comportant si nécessaire un ou plusieurs préfixes spécifiant par exemple la fonction de hashage utilisée ou son encodage.

La chaîne de caractères obtenue est appelée CID, acronyme pour l'anglais Content IDentifier, signifiant « identifiant de contenu ».

IPNS

Le système de nom interplanétaire (InterPlanetary Name System (IPNS)) est un système permettant d'adresser un fichier ou un répertoire muable. Ce système est basé sur la cryptographie asymétrique, un nom IPNS étant essentiellement l'empreinte d'une clef publique.

Réception

Kyle Drake, le créateur du service d'hébergement Neocities, a exprimé la conviction que IPFS est le remplaçant de HTTP et de nombreux autres protocoles et solutions. Selon lui, « la manière dont HTTP distribue le contenu est fondamentalement imparfaite, et essayer d'améliorer les performances ou forcer les gens à utiliser des certificats SSL brisés est inutile. »[7]

Notes et références

  1. « IPFS README - Who designed it? » (consulté le )
  2. « ipfs/go-ipfs », sur GitHub (consulté le )
  3. « IPFS README » (consulté le )
  4. (en) « Architecture », sur Dépôt IPFS de Github
  5. (en) « IPFS - Specifications », sur compte GitHub de IPFS
  6. (en) Juan Benet, « IPFS - Content Addressed, Versioned, P2P File System (DRAFT 3) - 2. BACKGROUND », sur Compte github de IPFS
  7. Citation originale : « The way HTTP distributes content is fundamentally flawed, and no amount of performance tuneups or forcing broken CA SSL or whatever are going to fix that. » HTTP is obsolete. It's time for the distributed, permanent web, The Neocities Blog, 2015.

Liens externes

Voir aussi

  • Portail d’Internet
  • Portail des réseaux informatiques
  • Portail de l’informatique
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.