La sortie du système de fichiers décentralisé IPFS 0.8 (InterPlanetary File System) a été présentée. Il constitue un stockage de fichiers versionné à l'échelle mondiale, déployé sous la forme d'un réseau P2P, formé par des systèmes de participants. IPFS combine des idées précédemment mises en œuvre dans des systèmes comme Git, BitTorrent, Kademlia, SFS et le Web, et ressemble à un « essaim » unique de BitTorrent (les pairs participant au partage), échappant des objets Git. IPFS se distingue par une adressage basé sur le contenu plutôt que sur la localisation, avec des noms arbitraires. Le code de l'implémentation de référence est écrit en Go et est distribué sous les licences Apache 2.0 et MIT.
Dans la nouvelle version :
- Il est désormais possible de créer des services externes pour l'ancrage (pinning) des données des utilisateurs, garantissant que des informations importantes soient conservées. Les données ancrées par le service peuvent avoir des noms distincts, différents de l'identifiant de contenu (CID). La recherche de données peut se faire tant par nom que par CID. Pour traiter les requêtes d'ancrage, une API du service de pinning IPFS a été proposée, pouvant être utilisée directement dans go-ipfs. En ligne de commande, la commande « ipfs pin remote » est suggérée : ipfs pin remote service add mysrv https://my-service.example.com/api-endpoint myAccessToken ipfs pin remote add /ipfs/bafymydata —service=mysrv —name=myfile ipfs pin remote ls —service=mysrv —name=myfile ipfs pin remote rm —service=mysrv —name=myfile
- Les opérations de pinning et unpinning des données sur le nœud local sont accélérées. L'augmentation des performances et la réduction de la mémoire consommée sont particulièrement visibles lors de l'exécution d'opérations de sortie ou de modification sur des systèmes avec un grand nombre de pins.
- Lors de la création de liens « https:// » pour les passerelles, il est maintenant possible de transmettre des noms DNSLink à l'aide de sous-domaines. Par exemple, pour charger le nom « ipns://en.wikipedia-on-ipfs.org », en plus des liens précédemment pris en charge « https://dweb.link/ipns/en.wikipedia-on-ipfs.org », il est désormais possible d'utiliser des liens « https://en-wikipedia—on—ipfs-org.ipns.dweb.link », dans lesquels les points des noms d'origine sont remplacés par le symbole « - », et les symboles « - » existants sont échappés par un autre symbole similaire.
- Le support du protocole QUIC a été étendu. Pour améliorer les performances, il est désormais possible d'augmenter les buffers de réception pour UDP.
Rappelons que dans IPFS, le lien d'accès à un fichier est directement lié à son contenu et inclut un hachage cryptographique du contenu. L'adresse d'un fichier ne peut pas être renommée arbitrairement, elle ne peut changer qu'après un changement de contenu. De même, il est impossible de modifier un fichier sans changer son adresse (l'ancienne version restera à l'adresse précédente, tandis que la nouvelle sera disponible à une autre adresse, car le hachage du contenu du fichier changera). Étant donné que l'identifiant du fichier change à chaque modification, des services sont fournis pour lier des adresses permanentes, prenant en compte les différentes versions du fichier (IPNS), ou pour fixer un alias en analogie avec les systèmes de fichiers traditionnels et DNS (MFS (Mutable File System) et DNSLink).
À l'instar de BitTorrent, les données sont stockées directement sur les systèmes des participants, qui échangent des informations en mode P2P, sans liaison à des nœuds centralisés. Lorsqu'il est nécessaire d'obtenir un fichier avec un contenu spécifique, le système trouve les participants qui possèdent ce fichier et le transmet par morceaux depuis leurs systèmes en plusieurs flux. Une fois le fichier téléchargé sur son système, le participant devient automatiquement l'un des points de distribution. Pour identifier les participants sur les nœuds où se trouve le contenu intéressant, une table de hachage distribuée (DHT) est utilisée. Pour accéder au système de fichiers global, IPFS peut utiliser le protocole HTTP ou monter un système de fichiers virtuel /ipfs à l'aide du module FUSE.
IPFS aide à résoudre des problèmes tels que la fiabilité du stockage (si le stockage d'origine est rendu indisponible, le fichier peut être téléchargé à partir des systèmes d'autres utilisateurs), la résistance à la censure de contenu (pour bloquer, il faudrait intercepter tous les systèmes des utilisateurs qui ont une copie des données) et l'organisation d'un accès en l'absence de connexion directe à Internet 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). 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 développer des applications distribuées.

Source : opennet.ru
