Peerfuse 0.0 - Le système de fichier distribué pair-à-pair

Posté par  . Modéré par Mouns.
Étiquettes :
0
13
mai
2008
Ligne de commande
Après quelques mois de développement, la version 0.0 de Peerfuse, le système de fichier distribué pair-à-pair, est disponible.

Écrit en C++ avec la bibliothèque FUSE, cette version 0.0 est une première étape afin de faire connaître le projet. Bien que beaucoup de choses restent encore à faire, cette version est une ébauche fonctionnelle qui suggère la base de notre concept.

Les personnes intéressées par le projet, souhaitant discuter du projet ou y contribuer, sont les bienvenues sur le salon #peerfuse@irc.freenode.net et/ou peuvent s'inscrire à la liste de discussion.
Peerfuse est divisé en deux sous-projets :
  • peerfuse-net pour un réseau sur Internet. Les utilisateurs disposent ainsi d'un espace d'échange de fichiers de données, telles que des vidéos, photos, musiques, programmes, images CD de distributions Linux, etc. Nous bénéficions ainsi d'un espace de partage unique et hiérarchisé.

  • peerfuse-lan pour un réseau avec ses propres machines. Il permet par exemple de partager une partition /usr entre divers machines. Ainsi chacune de ces machines possède virtuellement un grand nombre d'applications, et elles ne sont récupérées que lorsqu'on les utilise effectivement.

Il est possible d'utiliser peerfuse-net afin de se connecter à Peerfuse.net, le réseau officiel, afin de tester les fonctionnalités de Peerfuse.

Peerfuse se veut être un système orienté sécurité.
En effet, les connexions se font par SSL et il est nécessaire de se faire délivrer un certificat signé par une autorité de certification, permettant d'assurer l'authenticité de chaque pair, et de se faire bénéficier d'un identifiant unique (UID).

L'espace de partage de Peerfuse est commun à tout le monde, bien que n'étant pour le moment pas encore implémenté, un système de permissions basé sur l'UID pour peerfuse-net, ou sur les utilisateurs unix pour peerfuse-lan.
L'utilisation de cryptographie permettra d'atteindre un niveau de sécurité intéressant, permettant la création de groupes et l'application des permissions Unix (par exemple, mettre des permissions rwxrwx--- sur un ensemble de dossiers afin que celui-ci ne soit lisible que par un groupe et ce, même si un message est relayé par un pair qui n'appartient pas au groupe, etc).

Enfin, il est possible d'utiliser Peerfuse en mode déconnecté, permettant d'avoir accès, même en étant déconnecté du réseau, aux diverses données qui sont dans le cache (que l'on a donc déjà lu), et d'y faire des modifications. Lors de la prochaine reconnexion au réseau, une synchronisation sera faite.

Il est à noter qu'il est possible de compiler Peerfuse en mode serveur (ne crée pas de point de montage, et donc ne dépend pas de Fuse). Le but est par exemple de créer un pair permanent sur le réseau, et de mettre à disposition un cache utile pour la redondance. À ce sujet, un système de création de redondance automatique sera mis en place. Lorsqu'un pair mettra à disposition un fichier sur le réseau, d'autres pairs vont récupérer ce fichier dans leur cache disponible.

Aller plus loin

  • # Peerfuse se veut être un système orienté sécurité

    Posté par  (site web personnel) . Évalué à 1.

    Pour ceux qui comme moi lisent les dépêches linuxfr en diagonale, il faut bien comprendre que Peerfuse est encore en gros chantier. Pour l'instant, il n'y aucune sécurité : aucun contrôle d'accès (on peut lire n'importe quel fichier sur le disque dur) et code peu testé. Cette version est destinée aux développeurs qui veulent contribuer, pas aux gens qui veulent partager leurs fichiers.
    • [^] # Re: Peerfuse se veut être un système orienté sécurité

      Posté par  . Évalué à 7.

      Oui, je confirme tu lis les news en diagonale. Je vais donc essayer de réexpliquer spécialement pour toi.

      Peerfuse 0.0 fait de l'authentification par certficat X509 en se basant sur la librairie OpenSSL.
      Quand tu as voulu te connecter au réseau de test Peerfuse.net, tu as dû générer une clé privée, ainsi qu'une requête de certificat que tu as envoyée Romain. A partir de cette requête, Romain a généré un certificat(qu'il a signé avec sa CA), qu'il t'a renvoyé, sans lequel tu n'aurais pas pu te connecter au réseau. Tu trouveras plus d'informations sur l'authentification par certificat sur Wikipedia : http://en.wikipedia.org/wiki/X.509

      Ensuite, toute les données transmises sur le réseau sont cryptées (toujours grâce à OpenSSL). Toute les données reçues sont cryptées avec ta clé publique et seule ta machine peut les décrypter à l'aide de ta clé privée (comme avec OpenSSH).

      Maintenant, une fois que tu es connecté au réseau, la gestion des permissions du système de fichiers virtuels(et non pas du disque dur) n'est pas encore implémentée, autrement dit, tout les fichiers que tu copies sur le partage Peerfuse sont lisibles et modifiables par les peers connectées (et donc authentifiés) au réseau. D'où le numéro de version 0.0, pour lequel nous indiquons de ne pas stocker de donneés importantes.
      Notre projet sort sa 1ère version, donc en effet nous n'avons pas fait de tests à grande échelle.

      J'espère que tu as bien compris ce qui était implémenté et ce qui ne l'etait pas... Après on n'a peut-être pas la même conception de la sécurité ...
  • # Ca ressemble à Omemo ?

    Posté par  . Évalué à 1.

    C'est un peu le même principe que Omemo ? Ou je me trompe ?

    http://www.omemo.com/
    • [^] # Re: Ca ressemble à Omemo ?

      Posté par  . Évalué à 2.

      Plus ou moins, j'ai regardé très rapidement, et ce qui ressort avant tout c'est que :

      - C'est uniquement pour Windows
      - C'est du VB
      - Il n'y a aucune documentation.

      Ensuite, l'accès se fait par une interface web, contrairement à Peerfuse qui a comme but d'établir un point de montage. Donc il n'y a pas l'aspect système de fichier distribué.

      Bref, Omemo n'a rien à voir.
  • # Versioning...

    Posté par  (site web personnel) . Évalué à 4.

    Et la version suivante sera la O.O.O ?

    ou 0.00 ?
    Intéressant... tendre vers l'infiniment_petit. Un peu comme TeX qui tends vers pi, ou Metafont qui tends vers e_(nombre)
  • # Un sérieux concurrent : Pastis

    Posté par  . Évalué à 2.

    A noter qu'il existe déjà une solution de ce genre fait par l'équipe REGAL du LIP6 : http://regal.lip6.fr/spip.php?rubrique18
    • [^] # Re: Un sérieux concurrent : Pastis

      Posté par  . Évalué à 2.

      En effet, Pastis est une implémentation en java assez proche de ce qu'on souhaite implémenter dans pfnet. On étudie leurs publications pour reprendre les idées qui nous intéressent et si nécessaire on s'inspirera de leur code.
  • # Vivement que ca marche

    Posté par  . Évalué à 3.

    Bonjour.

    Je pense que peerfuse pourrait avoir beaucoup de succès auprès des distributions pour distribuer les packets. Hop, on ajoute une ligne au fstab pour ajouter un dépot.
    Je me demandais comment ca se passait pour les mirroirs : on monte un dossier perfuse dans un dossier que l'on partage ensuite par http / ftp et on obtient... un mirroir toujours à jour (??) pour les utilisateur de http / ftp et un peer qui a du débit sur le réseau p2p.

    Ca me semble possible avec mes maigres connaissances, ou suis-je a coté de la plaque ?

    La dualité web / p2p me semble aussi sympas à étudier. Pour toutes les pages statiques tout du moin ^^

    Enfin, je me disait que pour des applications particulières (celui qui ne veut pas administrer un PC, une box multimédia internet, ordissimo, neufboxPC ...) ça peut être intéréssant de partager tout le système de fichier (en lecture seule) qui est géré par une boite/l'entreprise... Seul mon dossier personnel est local, et encore... ^^

    Ca permettrait aussi des nouveaux types de distribs de tests : on crée une mini distrib qui doit être installée sur une partition pour garder en cache ( et surtout seeder un peut^^), et elle monte un dossier peerfuse sur / avec toute une flopée de fichiers disponibles pour tester les logiciels disponible dans /home, mis à jour automatiquement.
    Ceci aurait besoin d'un systeme de snapshot je pense, pour permettre de modifier localement sans perturber l'image de base mais continuer à seeder l'ancienne version. Mais j'imagine que lvm peut faire ca, à moins que fuse ne puisse être gérée par lvm.

    Je me demandais donc, vu le premier point, si les distributions ne pourraient pas s'inverstir un peut dans peerfuse pour avoir un système au point le plus vite possible. Ca leur couterait certainement moins cher que de la BP...

    Je me demandais aussi à ce sujet si vous aviez entendu parlé du projet EDOS http://www.edos-project.org/xwiki/bin/view/Main/WebHome
    Ca me parrait assez lié. Avec mes gestionaires de code source distribués, si j'ai bien compris, la gestion à proprement parler se fait localement, le serveur n'est la que pour télécharger. Il suffirait d'adapter.

    Bon, arretons de réver, allons travailler.
    • [^] # Re: Vivement que ca marche

      Posté par  . Évalué à 3.

      Salut,

      On a déja pensé à l'idée de faire une distrib par dessus Peerfuse, l'idée aurait plus été d'avoir tout les paquets disponibles d'installés sur le système de fichier. Lorsque l'utilisateur lance une application pour la 1ère fois, les fichiers nécessaires sont dupliqués dans le cache et donc aux cours des utilisations suivantes les performances redeviennent proches d'une dirtrib normale.
      Les points bloquants pour réaliser ça sont multiples: pfnet ne gère pas les droits de manières standards pour héberger et pflan supporterait mal la montée en charge pour gérer tout les éventuels utilisateurs (enfin ça devrait s'arranger).
      Après on manque de temps pour pouvoir gérer une distrib en plus du développement de Peerfuse. ;)
      EDOS à l'air assez orienté création de distribution, j'imagine que Peerfuse pourrait faire partie d'une de ses briques. Le sujet des distributions à l'air de pas mal t'intéresser, je t'invite à passer sur #peerfuse sur freenode.net si tu veux des précisions, ou pour discuter de solutions techniques. :)

      a+

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.