IPFS, à la base, c'est un système de fichier unique sur Internet, dont chacun peut avoir un petit bout. Ce système de fichiers peut être monté avec FUSE ou encore visualisé avec un gateway HTTP. Après, cela rend possible plein d'applications possibles.
Le système fonctionne à l'aide d'un graphe acyclique direct, un peu comme Git, où chaque noeud est immuable et est identifié par son hash. Dans ce système de fichiers, on peut accéder aux noeuds comme ça :
/ipfs/HASH : accès au noeud du graphe identifié par HASH
/ipfs/HASH/file : accès au lien "file" présent dans le noeud identifié par HASH
Au niveau web, cela signifie que nous pouvons majoritairement créer des sites statiques. Pas de base de donnée ou d'exécution coté serveur, il n'y a pas de serveur. Si on veut du dynamisme, cela se passe coté client, en javascript (ou autre, on peut imaginer utiliser XSLT aussi).
Cela veut dire réorganiser un peu notre conception du Web, pour le meilleur je pense. Si on a besoin de faire une aplication, au lieu de mettre en place a la va vite un serveur HTTP, on va a la place réfléchir a un protocole spécialisé. Et pour les choses simples, rien n'empêche d'utiliser IPFS comme une base de donnée pour stocker des données applicatives. Les commentaires d'un billet de blog par exemple.
Je vous ai dit que IPFS était en lecture seule, c'est partiellement vrai. En fait, il existe une suite au protocole, nommée IPNS, qui permet de changer le contenu d'un noeud. En fait, l'identifiant du noeud sera non pas le hash du contenu, mais le hash de la clef publique qui a été utilisée pour signer le contenu. Le détenteur de la clef privée pouvant a n'importe quel moment récrire le noeud en le signant avec sa clef privée.
Cela nous fait des chemins de type /ipns/KEYHASH/lien/lien
Et un dernier petit bonus pour la route, c'est prévu (ou peut être déjà réalisé) d'utiliser un enregistrement TXT dans les DNS pour faire un lien vers un objet IPFS/IPNS. Comme ça, on pourra directement accéder aux noeuds en utilisant un chemin tel que /ipfs/DOMAIN_NAME/link au lieu de devoir obligatoirement spécifier un HASH.
[^] # Re: javascript superstar
Posté par Mildred (site web personnel) . En réponse à la dépêche IPFS : Un protocole révolutionnaire pour un hébergement P2P, résilient à la censure. Évalué à 10.
IPFS, à la base, c'est un système de fichier unique sur Internet, dont chacun peut avoir un petit bout. Ce système de fichiers peut être monté avec FUSE ou encore visualisé avec un gateway HTTP. Après, cela rend possible plein d'applications possibles.
Le système fonctionne à l'aide d'un graphe acyclique direct, un peu comme Git, où chaque noeud est immuable et est identifié par son hash. Dans ce système de fichiers, on peut accéder aux noeuds comme ça :
Au niveau web, cela signifie que nous pouvons majoritairement créer des sites statiques. Pas de base de donnée ou d'exécution coté serveur, il n'y a pas de serveur. Si on veut du dynamisme, cela se passe coté client, en javascript (ou autre, on peut imaginer utiliser XSLT aussi).
Cela veut dire réorganiser un peu notre conception du Web, pour le meilleur je pense. Si on a besoin de faire une aplication, au lieu de mettre en place a la va vite un serveur HTTP, on va a la place réfléchir a un protocole spécialisé. Et pour les choses simples, rien n'empêche d'utiliser IPFS comme une base de donnée pour stocker des données applicatives. Les commentaires d'un billet de blog par exemple.
Je vous ai dit que IPFS était en lecture seule, c'est partiellement vrai. En fait, il existe une suite au protocole, nommée IPNS, qui permet de changer le contenu d'un noeud. En fait, l'identifiant du noeud sera non pas le hash du contenu, mais le hash de la clef publique qui a été utilisée pour signer le contenu. Le détenteur de la clef privée pouvant a n'importe quel moment récrire le noeud en le signant avec sa clef privée.
Cela nous fait des chemins de type /ipns/KEYHASH/lien/lien
Et un dernier petit bonus pour la route, c'est prévu (ou peut être déjà réalisé) d'utiliser un enregistrement TXT dans les DNS pour faire un lien vers un objet IPFS/IPNS. Comme ça, on pourra directement accéder aux noeuds en utilisant un chemin tel que /ipfs/DOMAIN_NAME/link au lieu de devoir obligatoirement spécifier un HASH.
Plus de détails par ici :