On prépare une revue assez large des différentes techno de stockage distribué car c’est vrai que c’est une question qui revient souvent. On a donc connaissance de Ceph, Riak CS, Openstack Swift, Minio, OpenIO, GlusterFS, SeaweedFS, Tahoe-LAFS, IPFS, Freenet, HDFS, etc. En attendant, pas mal des différences avec ces projets sont expliquées dans les commentaires de ce fil Hacker News.
Pour IPFS et Content-based addressing, je ne suis pas expert donc c’est peut-être imprécis. Il me semble que ce sont des techniques qui s’adressent à du contenu public : les autres nœuds du réseau peuvent, si ils le souhaitent, mettre en cache le contenu.
Premier point : si ils le souhaitent, si personne n’est intéressé par mon contenu, il n’y aura pas de copie dans le réseau, et donc je risque de perdre mes données en cas de défaillance de mon noeud.
Deuxième point : on doit stocker du contenu privé comme des emails, des photos privées partagées dans notre outil de chat, etc. Ces contenus privés n’ont pas vocation à se retrouver sur le réseau.
Le projet IPFS est conscient de ces 2 limitations et propose IPFS Cluster avec 2 modes : un strong consistency avec Raft, un autre eventual consistency. Le premier, avec Raft, aura les mêmes problèmes que Minio (cf notre benchmark), le second, à cause de l’eventual consistency, ne fonctionnera pas avec les applications existantes (quand tu créer un fichier, il n’est pas visible tout de suite). Avec Garage, on arrive à fournir le bon niveau de cohérence sans avoir à recourir à Raft.
Après, rien ne t’empêche d’interconnecter une instance Garage au reste du réseau IPFS à travers la passerelle ipfs/go-ds-s3.
Et tu peux très bien décider d’exposer une instance Garage à travers Tor, il te suffit de configurer un Onion Service (avant ça s’appelait Hidden Service) dans la configuration de ton daemon Tor. Si des personnes ici sont intéressées, je peux donner les étapes détaillées.
Ton lien « S4 » semble être un assemblage de technologies : Tor, IPFS, ipfs/go-ds-s3, minio, docker, etc. selon le schéma du dépôt. Dans ce schéma, tu peux remplacer Minio par Garage de manière assez transparente, et tu ne perds rien au passage tout en profitant des qualités et défauts de Garage, et voilàaaa
Par contre je ne peux m’empêcher de penser que les performances d’un tel empilement de technologies sur un pauvre raspberry pi doivent être abyssalement mauvaises, je déconseille fortement de se lancer dans de tel projets pour des services importants ^^