Napster, Gnutella, Kazaa, BitTorrent, nous partageons des fichiers avec des outils sur Internet depuis un moment... Saviez-vous qu'ils s'appuient sur la technologie informatique peer-to-peer (p2p) ?
Dans un réseau peer-to-peer, tous les ordinateurs sont créés égaux, sont dotés des mêmes droits et coopèrent directement entre eux pour fournir un service. Pas de hiérarchie, pas d'intermédiaire, pas de chef d'orchestre.
Dans une infrastructure peer-to-peer, les utilisateurs partagent des ressources par le biais d'échanges directs entre ordinateurs, appelés « nœuds ». Les données sont distribuées entre les nœuds au lieu d'être envoyées à des serveurs pour traitement. Contrairement à la technologie informatique client-serveur, chaque nœud joue un rôle symétrique et autonome pour fournir à l'utilisateur final la solution attendue.
La complexité de la conception et de l'utilisation des systèmes peer-to-peer leur permet d'avoir leurs propres caractéristiques :
Tous les nœuds jouent un rôle similaire, agissant à la fois en tant que client et serveur. Ils récupèrent, distribuent et traitent le contenu.
Les systèmes poste à poste doivent être résistants aux connexions et aux départs de nœuds, alors qu'un système centralisé s'attend à ce que ses serveurs restent actifs à tout moment.
L'un des principaux défis d'un réseau p2p est de trouver le pair hébergeant les données demandées. Une technique bien connue consiste à utiliser une table de hachage distribuée (DHT), qui est un système décentralisé et distribué qui fournit un service de recherche similaire à une table de hachage. L'un des articles les plus cités sur ce sujet est « Kademlia : un système d'information pair à pair basé sur la métrique XOR » par Petar Maymounkov et David Mazieres. Cet article présente le Kademlia DHT, qui est devenu un DHT largement utilisé dans diverses applications peer-to-peer. Ces algorithmes sont très efficaces et évolutifs même avec un grand nombre de nœuds et de ressources.
Lorsque les nœuds sont surchargés ou quittent le réseau, le système peer-to-peer doit s'assurer que les services restent accessibles, disponibles et performants et que les données restent persistantes.
Dans un réseau pair à pair, il peut y avoir des millions de nœuds. À son apogée, Skype comptait plus de 300 millions d'utilisateurs. Ces réseaux doivent disposer d'outils de sécurité irréprochables qui ne se détériorent pas à mesure que la taille du réseau augmente.
Le stockage peer-to-peer de Hive repose sur ces principes fondamentaux. Il est basé sur le protocole IPFS open source pour la couche centrale du système de fichiers. Mais c'est bien plus que cela, nous avons développé des services et fonctionnalités supplémentaires pour fournir :
Aucune donnée privée ne quitte l'appareil de l'utilisateur final sous une forme claire. Le modèle de cryptage permet le partage de données entre plusieurs participants sans répliquer le contenu ni partager de clés.
Au fur et à mesure que les participants au réseau Hive stockent les données d'autres personnes, ils sont incités à le faire tant qu'ils continuent à fournir des preuves de l'intégrité du contenu.
Les algorithmes de placement peer-to-peer de Hive prennent en compte les exigences de confidentialité de l'utilisateur et les emplacements préférés pour le stockage et le traitement des données.
Lorsque les nœuds se déconnectent soudainement, les données qu'ils contiennent ne sont plus disponibles. Lorsqu'un tel événement se produit, Hive recréera les données perdues et les distribuera à d'autres nœuds pour garantir la durabilité des fichiers stockés.
On peut se demander pourquoi les technologies peer-to-peer, arrivées à maturité depuis le milieu des années 2000, ne sont plus utilisées. Eh bien, ils sont déjà omniprésents dans les jeux, le monde de la cryptographie et la distribution de contenu. Les mises à jour de Windows 10 sont distribuées à l'aide de technologies d'égal à égal.
Mais ce n'est que récemment que l'évolution de l'environnement technologique a permis au peer-to-peer d'atteindre son plein potentiel :
Dans les années à venir, il est inévitable que le calcul et le stockage abandonnent logiquement les serveurs distants centralisés au profit de systèmes distribués plus proches des utilisateurs finaux. La quantité de données produites et stockées sur Internet est énorme et augmente d'environ 20 % chaque année. La capacité mondiale de stockage de données est devrait atteindre 13 milliards de dollars d'ici 2024, contre 6,8 ZB aujourd'hui. Comme alternative aux immenses centres de données pour stocker toutes ces données, le système de stockage peer-to-peer de Hive s'appuiera sur les importantes capacités libres de nos appareils personnels en périphérie du réseau.