Outils du site

Outils pour utilisateurs


p2p:ipfs (lu 2749 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
p2p:ipfs [le 10/01/2019 à 01h13]
111110101011
p2p:ipfs [le 10/12/2020 à 01h23] (Version actuelle)
111110101011 [Authentification]
Ligne 3: Ligne 3:
 ===== Présentation ===== ===== Présentation =====
  
-IPFS (Inter Planetary File System) est un P2P sous licence libre qui vise à proposer un web décentralisé, à l'instar de [[p2p>ZeroNet]]. Contrairement à [[p2p>I2P]] ou [[p2p>Freenet]], IPFS n'est pas anonymisant, mais des solutions pourraient être apportées, notamment par un couplage avec [[wpfr>Tor_(réseau)|Tor]]. Cette ambition orientée «web» n'interdit pas de s'en servir pour faire du partage de fichiers potentiellement volumineux.+IPFS (InterPlanetary File System) est un P2P sous licence libre qui vise à proposer un web décentralisé, à l'instar de [[p2p>ZeroNet]]. Contrairement à [[p2p>I2P]] ou [[p2p>Freenet]], IPFS n'est pas anonymisant, mais des solutions pourraient être apportées, notamment par un couplage avec [[wpfr>Tor_(réseau)|Tor]]. Cette ambition orientée «web» n'interdit pas de s'en servir pour faire du partage de fichiers potentiellement volumineux.
  
-Pour arriver à ses fins, IPFS réutilise des technologies à succès et s'en inspire ou les combine : [[wpfr>Git]], [[p2p>BitTorrent]], [[p2p>kademlia_reseau|Kademlia]], [[p2p>Bitcoin]], [[wp>Smart_File_System|SFS]]((Smart File System est un système de fichiers journalisé initialement implémenté sur Amiga qui gère les écritures de méta-données de façon transactionnellece qui permet de revenir à des états préalables sains en cas d'erreur d'écriture.)).+Pour arriver à ses fins, IPFS réutilise des technologies à succès et s'en inspire ou les combine : [[wpfr>Git]], [[p2p>BitTorrent]], [[p2p>kademlia_reseau|Kademlia]], [[p2p>Bitcoin]], [[wp>Self-certifying_File_System|SFS]]((Self-Certified File System un système de fichiers réseau similaire à NFS, mais dont les chemins d'accès aux fichiers contiennent la clé publique de la machinepermettant de s'assurer de leur authenticité)).
  
 IPFS est développé par [[https://protocol.ai|Protocol Labs]], une start-up de San Francisco pour qui les protocoles qui ont permis de batir le réseau internet doivent être libres et ouverts. Il s'agit naturellement d'un logiciel libre, l'implémentation de référence est écrite en langage Go et est disponible pour la plupart des systèmes d'exploitation (Linux, Mac OS X, Windows). La boite développe aussi FileCoin, une solution de stockage avec rémunération, ainsi que libp2p, qui est la couche réseau utilisée par IPFS, IPLD, qui décrit le modèle de données pour un web décentralisé, et Multiformats. IPFS est développé par [[https://protocol.ai|Protocol Labs]], une start-up de San Francisco pour qui les protocoles qui ont permis de batir le réseau internet doivent être libres et ouverts. Il s'agit naturellement d'un logiciel libre, l'implémentation de référence est écrite en langage Go et est disponible pour la plupart des systèmes d'exploitation (Linux, Mac OS X, Windows). La boite développe aussi FileCoin, une solution de stockage avec rémunération, ainsi que libp2p, qui est la couche réseau utilisée par IPFS, IPLD, qui décrit le modèle de données pour un web décentralisé, et Multiformats.
Ligne 11: Ligne 11:
 IPFS cherche vraiment à remplacer (ou au moins trouver un modèle alternatif) au web centralisé essentiellement basé sur HTTP(S). Les adresses utilisées dans ce web décentralisé pointent non pas vers un emplacement (comme l'adresse IP d'un hôte) mais vers un contenu, identifié par un hash appellé **cid** (comme Content Identifier). Ce contenu peut être hébergé de façon décentralisée, comme avec BitTorrent, ce qui permet à l'auteur de ce contenu de ne pas avoir à l'héberger lui-même. La réplication des données confère au réseau une résilience et un rôle de protection contre la censure. IPFS cherche vraiment à remplacer (ou au moins trouver un modèle alternatif) au web centralisé essentiellement basé sur HTTP(S). Les adresses utilisées dans ce web décentralisé pointent non pas vers un emplacement (comme l'adresse IP d'un hôte) mais vers un contenu, identifié par un hash appellé **cid** (comme Content Identifier). Ce contenu peut être hébergé de façon décentralisée, comme avec BitTorrent, ce qui permet à l'auteur de ce contenu de ne pas avoir à l'héberger lui-même. La réplication des données confère au réseau une résilience et un rôle de protection contre la censure.
  
-L'un des atouts actuels de IPFS par rapport à d'autres solutions de web décentralisé comme [[p2p>ZeroNet]] ou [[p2p>Dat]] est qu'il s'intègre relativement bien avec le web ordinaire : pas besoin d'un navigateur particulier, ni d'installer le logiciel pour consulter un contenu stocké sur le réseau puisqu'il existe un certain nombre de passerelles (dont une fournie par Cloudflare). IPFS peut même tirer partie de l'infrastructure existante de DNS pour s'offrir des adresses simples à lire et utiliser, voir DNSLink plus bas.+On peut naviguer sur IPFS avec un navigateur web ordinaire. Celui-ci se branche sur le [[def>daemon|démon]] IPFS en tâche de fond. 
 + 
 +Fin 2018, le projet [[https://github.com/ipfs/go-ipfs/commits/master|poursuit son développement]] de façon soutenue 
 + 
 +===== Fonctionnement ===== 
 + 
 +==== Authentification ====
  
 Si IPFS souhaite remplacer le web, il doit aussi remplacer HTTPS. Ca tombe bien, le protocole https est embourbé dans un vieux problème qui est celui des certificats et que IPFS pourrait évacuer. La confiance que l'on peut avoir dans une connexion sécurisée par https dépend d'un certificat, qui lui-même dépend des Autorités de Certifications (CA) embarquées dans votre système d'exploitation et dans votre navigateur. Ce système est réputé imparfait pour son approche top-down : le privilège d'être une autorité de certification n'est accordé qu'à certaines entreprises ou organismes, qui ont le pouvoir de certifier que les clés utilisées durant le chiffrement appartiennent bien au site consulté. Ce service de certificats a longtemps été monnayé, et cause de désagréments pour les personnes hébergeant des sites préférant s'en dispenser. L'arrivée des certificats //Let's encrypt// a permis de rendre plus accessible ce système, mais le modèle reste imparfait car les certificats restent manipulables par les nombreuses autorités dont il est illusoire de penser qu'elles sont toutes dignes de confiance. Ces autorités de certification ont donc un rôle ambigü, qui peuvent en faire par exemple des alliés privilégiés de la surveillance d'État rendue publique par Edward Snowden. Si IPFS souhaite remplacer le web, il doit aussi remplacer HTTPS. Ca tombe bien, le protocole https est embourbé dans un vieux problème qui est celui des certificats et que IPFS pourrait évacuer. La confiance que l'on peut avoir dans une connexion sécurisée par https dépend d'un certificat, qui lui-même dépend des Autorités de Certifications (CA) embarquées dans votre système d'exploitation et dans votre navigateur. Ce système est réputé imparfait pour son approche top-down : le privilège d'être une autorité de certification n'est accordé qu'à certaines entreprises ou organismes, qui ont le pouvoir de certifier que les clés utilisées durant le chiffrement appartiennent bien au site consulté. Ce service de certificats a longtemps été monnayé, et cause de désagréments pour les personnes hébergeant des sites préférant s'en dispenser. L'arrivée des certificats //Let's encrypt// a permis de rendre plus accessible ce système, mais le modèle reste imparfait car les certificats restent manipulables par les nombreuses autorités dont il est illusoire de penser qu'elles sont toutes dignes de confiance. Ces autorités de certification ont donc un rôle ambigü, qui peuvent en faire par exemple des alliés privilégiés de la surveillance d'État rendue publique par Edward Snowden.
  
-Dans les initiatives de web décentralisé, la cryptographie est utilisée comme alternative à ce modèle de certificats.+Dans les initiatives de web décentralisé, d'autres modèles cryptographiques sont envisagés. 
 +==== Adressage et intégrité des ressources ====
  
 D'abord, les ressources que vous consultez sont identifiées, on l'a dit, par des cid, qui permettent de vérifier que le résultat qui vous est servi est bien celui correspondant au hash (principe de l'intégrité). Le contenu ne sera donc pas modifié malintentionellement durant son voyage dans le réseau. D'abord, les ressources que vous consultez sont identifiées, on l'a dit, par des cid, qui permettent de vérifier que le résultat qui vous est servi est bien celui correspondant au hash (principe de l'intégrité). Le contenu ne sera donc pas modifié malintentionellement durant son voyage dans le réseau.
 +
 +IPFS utilise la DHT (merkle tree).
  
 L'utilisation de cid a plusieurs inconvénients. L'utilisation de cid a plusieurs inconvénients.
Ligne 31: Ligne 40:
  
 D'autre part, la ressource sur laquelle pointe cette adresse ne peut pas être modifiée ni mise à jour. Si j'ai envie de rajouter une moustache à Ada, je devrai vous communiquer un nouveau lien. Ce n'est pas très pratique si mes envies de dessiner sont fréquentes. Cet inconvénient a deux solutions proposées : DNSLink, et IPNS (voir plus bas). D'autre part, la ressource sur laquelle pointe cette adresse ne peut pas être modifiée ni mise à jour. Si j'ai envie de rajouter une moustache à Ada, je devrai vous communiquer un nouveau lien. Ce n'est pas très pratique si mes envies de dessiner sont fréquentes. Cet inconvénient a deux solutions proposées : DNSLink, et IPNS (voir plus bas).
 +
 +==== Stockage des ressources ====
  
 IPFS utilise une blockchain pour stoquer les liens IPFS. Les données en elles-mêmes ne sont donc pas stockées dans la blockchain. IPFS utilise une blockchain pour stoquer les liens IPFS. Les données en elles-mêmes ne sont donc pas stockées dans la blockchain.
- 
-IPFS utilise la DHT (merkle tree). 
  
 Comme dans un essaim BitTorrent, les données sont échangées entre les pairs, donc si vous partagez quelque chose, et que d'autres personnes le récupèrent, elles deviendront seeders à leur tour, ce qui permet aux ressources de rester accessibles même après que vous vous soyiez déconnecté du réseau. Plus exactement, cela maximise les chances qu'elle soit en ligne. Comme dans un essaim BitTorrent, les données sont échangées entre les pairs, donc si vous partagez quelque chose, et que d'autres personnes le récupèrent, elles deviendront seeders à leur tour, ce qui permet aux ressources de rester accessibles même après que vous vous soyiez déconnecté du réseau. Plus exactement, cela maximise les chances qu'elle soit en ligne.
Ligne 43: Ligne 52:
  
 Une autre façon d'influer sur la permenance d'une donnée est d'utiliser le «pinning» sur une donnée qui se situe dans votre cache de données. Votre noeud dispose en effet d'un stockage limité pour stocker les données que vous sollicitez. Si ce cache est rempli, il supprimera les données anciennes. Le pin sert donc à indiquer qu'une ressource ne doit pas être supprimée du cache. Le pinning peut être sollicité auprès de noeuds autres que les votres, mais il faut pour cela passer par un mécanisme extérieur à IPFS, ce type de service est toutefois [[https://docs.ipfs.io/guides/concepts/pinning/#pinning-services|envisagé]] dans la doc, et des personnes se mettent en place avec leurs propres conditions, souvent en lien avec un système de monétarisation, comme [[https://www.eternum.io/|ce site]] ou bien [[https://twitter.com/ipfspin/status/1053376847596187648|cette personne]] sur twitter. L'hébergement redevient un service payant, bien que pas nécessairement : libre à la communauté de choisir ce qu'elle héberge, et de favoriser tel ou tel contenu. Une autre façon d'influer sur la permenance d'une donnée est d'utiliser le «pinning» sur une donnée qui se situe dans votre cache de données. Votre noeud dispose en effet d'un stockage limité pour stocker les données que vous sollicitez. Si ce cache est rempli, il supprimera les données anciennes. Le pin sert donc à indiquer qu'une ressource ne doit pas être supprimée du cache. Le pinning peut être sollicité auprès de noeuds autres que les votres, mais il faut pour cela passer par un mécanisme extérieur à IPFS, ce type de service est toutefois [[https://docs.ipfs.io/guides/concepts/pinning/#pinning-services|envisagé]] dans la doc, et des personnes se mettent en place avec leurs propres conditions, souvent en lien avec un système de monétarisation, comme [[https://www.eternum.io/|ce site]] ou bien [[https://twitter.com/ipfspin/status/1053376847596187648|cette personne]] sur twitter. L'hébergement redevient un service payant, bien que pas nécessairement : libre à la communauté de choisir ce qu'elle héberge, et de favoriser tel ou tel contenu.
- 
-Fin 2018, le projet [[https://github.com/ipfs/go-ipfs/commits/master|poursuit son développement]] de façon soutenue.  
  
 ===== Comparaison avec le web : IPFS, DNSLink et IPNS  ===== ===== Comparaison avec le web : IPFS, DNSLink et IPNS  =====
Ligne 91: Ligne 98:
 Il vous suffit d'indiquer le hash de la ressource à laquelle vous désirez accéder pour qu'elle vous soit servie par HTTP, directement dans votre navigateur. Il vous suffit d'indiquer le hash de la ressource à laquelle vous désirez accéder pour qu'elle vous soit servie par HTTP, directement dans votre navigateur.
  
-Cloudflare propose une telle passerelle, mais d'autres existent.+Cloudflare propose une telle passerelle (et on ne vous en recommande pas l'usage car cet acteur s'accapare un lourd pouvoir d'observation du traffic internet), mais d'autres existent.
  
 Ce type de passerelle est une commodité, et a l'avantage de rendre disponible une ressource pour des personnes non familières à IPFS, qui n'ont pas besoin d'installer ou de comprendre le logiciel. Ce type de passerelle est une commodité, et a l'avantage de rendre disponible une ressource pour des personnes non familières à IPFS, qui n'ont pas besoin d'installer ou de comprendre le logiciel.
- 
 ===== Usages ===== ===== Usages =====
  
Ligne 143: Ligne 149:
   * OpenBazaar, plateforme d'achats fonctionnant avec des cryptomonnaies.   * OpenBazaar, plateforme d'achats fonctionnant avec des cryptomonnaies.
   * Et d'autres trucs, comme des applications utilisant [[p2p>bitcoin|Ethereum]].   * Et d'autres trucs, comme des applications utilisant [[p2p>bitcoin|Ethereum]].
 +
 +Autre initiative, [[https://textile.io/|Textile]] est une collection d'outils permettant l'usage d'IPFS dans votre application (si j'ai bien compris).
  
 ===== Liens ===== ===== Liens =====
Ligne 150: Ligne 158:
   * Journal DLFP qui en parle : http://linuxfr.org/news/ipfs-un-protocole-revolutionnaire-pour-un-hebergement-p2p-resilient-a-la-censure   * Journal DLFP qui en parle : http://linuxfr.org/news/ipfs-un-protocole-revolutionnaire-pour-un-hebergement-p2p-resilient-a-la-censure
   * Un autre article de vulgarisation sur IPFS : https://lucas.bourneuf.net/blog/ipfs.html (si vous connaissez déjà p2pfr et êtes familiers avec les notions de notre [[:glossaire]], il est probable qu'une bonne partie des explications de l'article soit superflue)   * Un autre article de vulgarisation sur IPFS : https://lucas.bourneuf.net/blog/ipfs.html (si vous connaissez déjà p2pfr et êtes familiers avec les notions de notre [[:glossaire]], il est probable qu'une bonne partie des explications de l'article soit superflue)
 +  * Un récapitulatif technique d'IPFS (en anglais) : https://medium.com/@seraya/ipfsf-abd5fccf528
 +  * Rien à voir, les cours de Michel Foucault restaurés, hébergés sur IPFS : https://freefoucault.eth.link/ - utilise une passerelle web qui re-centralise, Michel tu vaux mieux !
  
   * P2P similaires : [[p2p>Dat]]   * P2P similaires : [[p2p>Dat]]
p2p/ipfs.1547079225.txt.gz · Dernière modification: le 10/01/2019 à 01h13 de 111110101011