Outils du site

Outils pour utilisateurs


p2p:ipfs (lu 5210 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
Prochaine révision Les deux révisions suivantes
p2p:ipfs [le 10/01/2019 à 01h13]
111110101011
p2p:ipfs [le 26/09/2019 à 11h36]
111110101011
Ligne 5: Ligne 5:
 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 (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.
  
-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 transactionnelle, ce 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>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 transactionnelle, ce qui permet de revenir à des états préalables sains en cas d'erreur d'écriture.))((Euh, ah, il s'agirait plutôt de Self-Certified File System : l'identité d'une machine proposant un fichier est certifiée par sa clé publique)).
  
 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.+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é, la cryptographie est utilisée comme alternative à ce modèle de certificats.
 +
 +===== Adressage 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.
Ligne 31: Ligne 37:
  
 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.
Ligne 43: Ligne 51:
  
 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 150: Ligne 156:
   * 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
  
   * P2P similaires : [[p2p>Dat]]   * P2P similaires : [[p2p>Dat]]
p2p/ipfs.txt · Dernière modification: le 10/12/2020 à 01h23 de 111110101011