lancement d'un système de fichiers décentralisé (InterPlanetary File System), formant un stockage de fichiers global 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 le Web, et ressemble à un unique « essaim » de BitTorrent (les pairs participant au partage), échangeant des objets Git. IPFS se distingue par son adressage basé sur le contenu plutôt que sur le lieu de stockage et des noms arbitraires. Le code de l'implémentation de référence est écrit en Go et sous les licences Apache 2.0 et MIT.
La nouvelle version se distingue par l'inclusion par défaut d'un transport basé sur le protocole , qui constitue une surcouche du protocole UDP, prenant en charge le multiplexage de plusieurs connexions et fournissant des méthodes de cryptage équivalentes à TLS/SSL. Dans IPFS, le socket pour recevoir les connexions UDP est automatiquement lancé sur la même adresse et le même port réseau que le gestionnaire de transport basé sur TCP. QUIC est utilisé pour les connexions entrantes et sortantes, avec un retour à TCP en cas d'indisponibilité de QUIC lors de la connexion à de nouveaux nœuds.
La deuxième nouveauté importante est le support du transport sécurisé , sur le protocole et développé dans le cadre de , une pile réseau modulaire pour les applications P2P. Après l'établissement initial de la connexion, tout échange de données ultérieur entre participants est chiffré et protégé contre l'écoute.
NOISE a remplacé le transport , mais comme méthode de cryptage prioritaire pour les connexions entre nœuds, TLS 1.3 continue d'être utilisé. NOISE est assez simple à mettre en œuvre et se positionne comme un transport universel multiplateforme pouvant être implémenté dans divers langages de programmation.
La nouvelle version permet également d'ajouter des pages personnalisées « 404 Not Found » et ajoute un support optionnel pour la méthode de codage Base36, qui est optimale pour les données alphanumériques sans distinction de casse, telles que les noms de domaine (lors de l'utilisation de Base32, les clés Ed25519 IPNS dépassent de deux octets la limite de taille de sous-domaine, tandis qu'avec Base36, elles s'inscrivent dans la limite). De plus, une option a été ajoutée aux paramètres
««, qui définit la liste des nœuds pour la connexion, le maintien de la connexion et la reconnexion afin de déterminer les liens « collants » entre les pairs souvent utilisés.
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 du 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 l'adresse (l'ancienne version restera à l'ancienne adresse, tandis que la nouvelle sera accessible via 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 qui prennent en compte 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 (Pour accéder au système de fichiers global, IPFS peut utiliser le protocole HTTP ou être monté en tant que 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 hors service, le fichier peut être téléchargé à partir des systèmes d'autres utilisateurs), la résistance à la censure du contenu (pour bloquer, il faudra bloquer tous les systèmes des utilisateurs où une copie des données existe) et l'organisation de l'accès en l'absence de connexion directe à Internet ou en cas de mauvaise qualité de la connexion (il est possible de télécharger des donné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 créer des systèmes décentralisés. .
Source : opennet.ru
