nouvelle version du système de fichiers décentralisé (InterPlanetary File System), qui forme un stockage de fichiers versionné global, déployé sous la forme d'un réseau P2P formé 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 seul « essaim » BitTorrent (pairs participant à la distribution) échangeant des objets Git. Pour accéder au FS IPFS global, le protocole HTTP peut être utilisé ou le FS virtuel /ipfs peut être monté à l'aide du module FUSE. Le code d'implémentation de référence est écrit en Go et sous licences Apache 2.0 et MIT. En plus une implémentation du protocole IPFS en JavaScript qui peut s'exécuter dans le navigateur.
Clé IPFS est un adressage basé sur le contenu, dans lequel le lien pour accéder à un fichier est directement lié à son contenu (inclut un hachage cryptographique du contenu). IPFS a une prise en charge intégrée pour la gestion des versions. L'adresse du fichier ne peut pas être renommée arbitrairement ; elle ne peut changer qu'après avoir modifié le contenu. De même, il est impossible de modifier un fichier sans changer l'adresse (l'ancienne version restera à la même adresse, et la nouvelle sera accessible via une adresse différente, puisque le hachage du contenu du fichier changera). Considérant que l'identifiant du fichier change à chaque changement, afin de ne pas transférer de nouveaux liens à chaque fois, des services sont proposés pour relier des adresses permanentes qui prennent en compte les différentes versions du fichier (), ou en attribuant un alias par analogie avec les FS et DNS traditionnels ( (Système de fichiers mutable) et ).
Par analogie avec BitTorrent, les données sont directement stockées sur les systèmes des participants qui échangent des informations en mode P2P, sans être liées à des nœuds centralisés. S'il est nécessaire de recevoir un fichier avec un certain contenu, le système trouve les participants qui possèdent ce fichier et l'envoie depuis leurs systèmes en plusieurs parties dans plusieurs threads. Après avoir téléchargé le fichier sur son système, le participant devient automatiquement l'un des points de distribution. Pour déterminer les participants au réseau sur les nœuds desquels le contenu d'intérêt est présent table de hachage distribuée ().
Essentiellement, IPFS peut être considéré comme une réincarnation distribuée du Web, adressant par contenu plutôt que par emplacement et par noms arbitraires. En plus de stocker des fichiers et d'échanger des 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 services 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 résistance à la censure du contenu (le blocage nécessite de bloquer tous les systèmes des utilisateurs disposant d'une copie des données) et l'organisation des accès. en l'absence de connexion directe à Internet ou si la qualité du canal de communication est mauvaise (vous pouvez télécharger des données via des participants proches sur le réseau local).
En version une productivité et une fiabilité considérablement accrues. Le réseau public basé sur IPFS a dépassé la barre des 100 0.5 nœuds et les modifications apportées à IPFS XNUMX reflètent l'adaptation du protocole pour fonctionner dans de telles conditions. Les optimisations étaient principalement axées sur l'amélioration des mécanismes de routage de contenu responsables de la recherche, de la publicité et de la récupération des données, ainsi que sur l'amélioration de l'efficacité de la mise en œuvre. (DHT), qui fournit des informations sur les nœuds disposant des données requises. Le code lié au DHT a été presque entièrement réécrit, accélérant considérablement les opérations de recherche de contenu et de définition d'enregistrements IPNS.
En particulier, la vitesse d'exécution des opérations d'ajout de données a été multipliée par 2, annonçant de nouveaux contenus sur le réseau de 2.5 fois,
récupération de données de 2 à 5 fois et recherche de contenu de 2 à 6 fois.
Des mécanismes repensés de routage et d'envoi d'annonces ont permis d'accélérer le réseau de 2 à 3 fois grâce à une utilisation plus efficace de la bande passante et de la transmission du trafic de fond. La prochaine version introduira un transport basé sur le protocole QUIC, ce qui permettra des gains de performances encore plus importants en réduisant la latence.
Le travail du système IPNS (Inter-Planetary Name System), utilisé pour créer des liens permanents vers des contenus changeants, a été accéléré et accru en fiabilité. Le nouveau pubsub de transport expérimental a permis d'accélérer la livraison des enregistrements IPNS de 30 à 40 fois lors de tests sur un réseau à mille nœuds (un spécial a été développé pour les expériences ). La productivité des couches intermédiaires a été environ doublée
Badger, utilisé pour interagir avec le système d'exploitation FS. Avec la prise en charge des écritures asynchrones, Badger est désormais 25 fois plus rapide que l'ancienne couche flatfs. L'augmentation de la productivité a également affecté le mécanisme , utilisé pour transférer des fichiers entre les nœuds.
Parmi les améliorations fonctionnelles, on mentionne l'utilisation de TLS pour chiffrer les connexions entre clients et serveurs. Nouvelle prise en charge des sous-domaines dans la passerelle HTTP : les développeurs peuvent héberger des applications décentralisées (dapps) et du contenu Web dans des sous-domaines isolés pouvant être utilisés avec des adresses de hachage, IPNS, DNSLink, ENS, etc. Un nouvel espace de noms /p2p a été ajouté, qui contient des données liées aux adresses homologues (/ipfs/peer_id → /p2p/peer_id). Ajout de la prise en charge des liens « .eth » basés sur la blockchain, ce qui élargira l'utilisation d'IPFS dans les applications distribuées.
La startup Protocol Labs, qui soutient le développement d'IPFS, développe également le projet en parallèle. , qui est un module complémentaire à IPFS. Alors qu'IPFS permet aux participants de stocker, d'interroger et de transférer des données entre eux, Filecoin évolue en tant que plate-forme de stockage persistant basée sur la blockchain. Filecoin permet aux utilisateurs disposant d'espace disque inutilisé de le fournir au réseau moyennant des frais, et aux utilisateurs ayant besoin d'espace de stockage de l'acheter. Si le besoin d'un lieu a disparu, l'utilisateur peut le vendre. De cette manière, un marché de l'espace de stockage se forme, dans lequel les règlements s'effectuent en jetons. , généré par l’exploitation minière.
Source: opennet.ru
