Outils du site

Outils pour utilisateurs


Panneau latéral

P2PFR:Wiki

p2p:dat (lu 3809 fois)

Ceci est une ancienne révision du document !


Dat

Dat est un protocole de transfert de fichier, ayant des similitudes avec BitTorrent et git (dans la conception technique), et rsync ou Dropbox (dans l'usage). L'implémentation de référence est écrite en Javascript/Node.js, et est publiée sous licence MIT (ou BSD 3-clauses selon les composants).

On remarque déjà que, bien que le projet soit relativement jeune et discret, les pages de leurs sites sont plutôt propres, et la documentation fournie témoigne d'une direction plutôt claire, ce qui pourrait effectivement rendre Dat accessible aux moins techniciens. Les sponsors et financeurs sont assez visibles, on peut supposer que cela ait encouragé les développeurs à peaufiner ces aspects afin que le logiciel soit accessible au plus grand nombre.

Dat possède déjà plusieurs clients, dont l'un en ligne de commande. Les captures d'écran de la page Github de l'outil illustrent bien l'usage. Le client permet notamment la copie, la synchronisation, ainsi que le versionnage1) d'un lot de fichiers.

Un navigateur web nommé Beaker intègre Dat, ce qui lui permet de tirer partie des données décentralisées pour, par exemple, alléger le trafic réseau sur le serveur web, voire héberger intégralement des sites de façon décentralisée. Reste à voir quelles contraintes techniques sont posées sur le dit site (statique ?).

Dat est perçu comme un vaste réseau de données décentralisé. Les scénarios d'usage donnés en exemples sur leur site suggèrent que le logiciel puisse être utilisé pour partager des jeux de données au sein de la communauté scientifique. Mais bien entendu la technologie reste neutre à l'égard des usages et il est possible d'utiliser Dat comme bon nous semble.

Fonctionnement

Découverte des pairs

D'après le FAQ, Dat utilise plusieurs mécanismes : UDP multicast pour la découverte des noeuds sur le LAN, ainsi que DHT pour les noeuds sur internet, ou bien une solution centralisée à base de versions modifiées de DNS.

Dat ne souhaite pas être limitant à ce niveau et se propose d'être extensible si d'autres procédés de découverte de noeuds s'avèrent pertinents.

Accès à une ressource

Pour accéder à une ressource, il faut en connaître la clé, c'est à dire disposer du lien.

Les liens se présentent sous la forme suivante : dat://clé_du_lien_sous_forme_de_hash.

Le modèle ressemble jusque là fortement à BitTorrent, mais avec plusieurs nuances.

L'une d'elles qui est assez intéressante, c'est la gestion des versions des fichiers. Concrètement, cela signifie que pour une clé dat:// donnée, on va pouvoir récupérer la dernière version publiée des données, mais aussi les suivantes (ou les précédentes).

Cas pratique : je mets à disposition un documentaire, que j'ai sous-titré. Je le partage. Et plus tard je me rend compte avoir fait des fautes dans les sous-titres, et bien je peux repartager une nouvelle version des sous-titres, sans pour autant devoir recréer une nouvelle clé. Pour comparaison, avec les torrents, les données sont «figées» et la moindre modification de l'un des fichiers invalide le torrent correspondant. On peut ainsi garder en synchronisation des jeux de données qui évoluent dans le temps.

Un autre point de divergence avec BitTorrent, c'est une précaution supplémentaire de dat:// par rapport à l'usage de la DHT.

Sur BitTorrent, ce qui circule sur la DHT, ce sont les hashs complets des ressources. C'est problématique car tous les noeuds du réseau à travers lesquels votre requête circule apprennent quelle est votre demande. Avec BitTorrent, on peut donc surveiller toutes les requêtes qui passent par nous.

Avec Dat, ce qui circule sur la DHT, c'est une autre forme de hash (algorithme blake2b) calculé à partir de la clé Dat, qu'on appelle la «Discovery Key», ce qui évite de divulguer la clé Dat.

HyperDB

Il s'agit d'une base de données distribuée, qui se présente comme un système de fichiers hiérarchisé et arborescent, sur lequel plusieurs noeuds peuvent écrire si la permission leur a été donnée. L'intégrité est garantie par un système de clés publiques/privées.

Description : https://github.com/mafintosh/hyperdb/blob/master/ARCHITECTURE.md

Le papier décrit comment les données sont conservées dans le temps (par indexation), et comment l'arborescence peut être parcourue afin de trouver rapidement la valeur de la donnée souhaitée.

Liens

logiciel p2p libre dat windows mac linux

1)
= conserver un historique des anciennes versions du fichier, comme le propose Git.
p2p/dat.1539880892.txt.gz · Dernière modification: le 18/10/2018 à 18h41 de 111110101011