nouvelle version du système de fichiers décentralisé (InterPlanetary File System), créant un stockage de fichiers mondial versionné, déployé sous la forme d'un réseau P2P constitué de systèmes participants. IPFS combine des idées précédemment mises en œuvre dans des systèmes tels que Git, BitTorrent, Kademlia, SFS et Web, et ressemble à un unique « essaim » BitTorrent (pairs participant au partage), échangeant des objets Git. Pour accéder au FS mondial, IPFS peut utiliser le protocole HTTP ou monter un FS virtuel /ipfs à l'aide du module FUSE. Le code de référence est écrit en Go et sous les licences Apache 2.0 et MIT. De plus, une implémentation du protocole IPFS en JavaScript, qui peut fonctionner dans le navigateur.
La caractéristique d'IPFS est l'adressage par contenu, où le lien d'accès à un fichier est directement lié à son contenu (comprenant un hachage cryptographique du contenu). IPFS dispose d'un support intégré pour le versionnage. L'adresse d'un fichier ne peut pas être renommée sans raison, elle ne peut changer qu'après modification du contenu. De même, il est impossible de modifier un fichier sans changer son adresse (l'ancienne version restera à son adresse d'origine, tandis que la nouvelle sera accessible via une autre adresse, car le hachage du contenu du fichier changera). Étant donné que l'identifiant de fichier change à chaque modification, des services sont fournis pour lier des adresses permanentes tenant compte des différentes versions du fichier,), ou de fixer un alias à l'instar des systèmes de fichiers traditionnels et de DNS ( (Mutable File System) et ).
À l'instar de BitTorrent, les données sont stockées directement sur les systèmes participants, qui échangent des informations en mode P2P, sans lien avec des nœuds centralisés. Lorsqu'un fichier avec un contenu spécifique est requis, le système trouve les participants ayant ce fichier et le livre depuis leurs systèmes en morceaux via plusieurs flux. Après avoir téléchargé le fichier sur leur système, le participant devient automatiquement l'un des points de redistribution. Pour identifier les participants du réseau sur lesquels le contenu souhaité est présent, une table de hachage distribuée ().
En substance, IPFS peut être considéré comme une réincarnation distribuée du Web, avec un adressage basé sur le contenu plutôt que sur l'emplacement et les noms arbitraires. En plus du stockage de fichiers et de l'échange de données, IPFS peut être utilisé comme base pour créer de nouveaux services, par exemple pour organiser le fonctionnement de sites non liés à des serveurs ou pour créer des réseaux distribués. .
IPFS aide à résoudre des problèmes tels que la fiabilité du stockage (si le stockage d'origine tombe en panne, le fichier peut être téléchargé à partir des systèmes d'autres utilisateurs), la lutte contre la censure de contenu (pour bloquer, il faudra bloquer tous les systèmes d'utilisateurs qui ont une copie des données) et la facilitation de l'accès en l'absence de connexion Internet directe ou en cas de mauvaise qualité de la connexion (les données peuvent être téléchargées via les participants les plus proches dans le réseau local).
Dans la version , les performances et la fiabilité du fonctionnement ont été considérablement améliorées. Le réseau public basé sur IPFS a dépassé les 100 000 nœuds, et les modifications dans IPFS 0.5 reflètent l'adaptation du protocole pour fonctionner dans de telles conditions. Les optimisations ont principalement porté sur l'amélioration des mécanismes de routage de contenu, responsables de la recherche, de l'annonce et de l'extraction des données, ainsi que sur l'augmentation de l'efficacité de la mise en œuvre. (DHT), fournissant des informations sur les nœuds ayant les données recherchées. Le code associé à la DHT a été pratiquement entièrement réécrit, ce qui a considérablement accéléré les opérations de recherche de contenu et de détermination des enregistrements IPNS.
En particulier, la vitesse des opérations d'ajout de données a doublé, l'annonce de nouveau contenu sur le réseau a augmenté de 2,5 fois,
l'extraction de données de 2 à 5 fois, et la recherche de contenu de 2 à 6 fois.
Les mécanismes de routage et d'annonce remaniés ont permis d'accélérer le fonctionnement du réseau de 2 à 3 fois grâce à une utilisation plus efficace de la bande passante et à la transmission de trafic en arrière-plan. La prochaine version prévoit l'introduction d'un transport basé sur le protocole QUIC, ce qui permettra d'obtenir encore plus de gains de performance grâce à la réduction des latences.
Le fonctionnement a été accéléré et la fiabilité du système IPNS (Inter-Planetary Name System), utilisé pour créer des liens permanents vers du contenu changeant, a été amélioré. Un nouveau transport expérimental pubsub a permis d'accélérer la livraison des enregistrements IPNS de 30 à 40 fois lors des tests sur un réseau de mille nœuds (un simulateur P2P a été spécialement développé pour les expériences) ). La performance de la couche
Badger, utilisée pour interagir avec le système de fichiers de l'OS, a été multipliée par environ deux. Grâce au support des opérations d'écriture asynchrone, Badger fonctionne désormais 25 fois plus vite que l'ancienne couche flatfs. L'amélioration des performances a également touché le mécanisme , utilisé pour le transfert de fichiers entre nœuds.
Parmi les améliorations fonctionnelles, on note l'utilisation de TLS pour chiffrer les connexions entre clients et serveurs. Le support des sous-domaines dans le passerelle HTTP est apparu — les développeurs peuvent héberger des applications décentralisées (dapps) et du contenu web dans des sous-domaines isolés, qui peuvent être utilisés avec des adresses hash, IPNS, DNSLink, ENS, etc. Un nouvel espace de noms /p2p a été ajouté, dans lequel les données liées aux adresses de pairs ont été déplacées (/ipfs/peer_id → /p2p/peer_id). Le support des liens «.eth » basés sur la blockchain a été ajouté, ce qui élargira l'application d'IPFS dans les applications décentralisées.
La startup Protocol Labs, qui soutient le développement d'IPFS, développe également parallèlement le projet , qui est une super-structure sur IPFS. Si IPFS permet aux participants de stocker, demander et transférer des données entre eux, Filecoin se développe en tant que plateforme basée sur des technologies blockchain pour le stockage permanent. Filecoin permet aux utilisateurs disposant d'espace disque inutilisé de le fournir à réseau en échange d'une récompense, tandis que ceux qui ont besoin d'espace de stockage peuvent l'acheter. Si le besoin en espace disparaît, l'utilisateur peut le vendre. Ainsi, un marché d'espace de stockage se forme, où les paiements se font en tokens , générés par le biais du minage.
Source : opennet.ru
