• Stockage décentralisé

  • Il s'agît bien entendu d'un avis personnel.

    Qu'est-ce que Sia ?

    Sia est un système de stockage décentralisé un peu particulier.
    Après l'avoir utilisé pendant un bon moment, je pense que mon avis sera relativement objectif, même si je ne sais pas tout.
    Vous ne trouverez d'ailleurs pas beaucoup d'informations de qualité sur internet.

    Il me semble important d'en parler, d'un point de vue utilisateur car il faut bien comprendre son fonctionnement et ses limites.

    Sia est un système tout à fait passionnant et relativement ancien.
    Vous pouvez être 2 fonctions :
    - un loueur (renter) : vous louez un espace décentralisé pour y stocker vos données
    - un hébergeur (host) : vous allouez un espace sur votre machine, pour y stocker les données des autres (des renters)
    Vous pouvez être les deux en même temps.
    A chaque fonction son logiciel : renterd, hostd.


    L'idée est relativement simple : vous devez acheter des Siacoins via Kraken puis les transférer sur votre wallet Sia, pour pouvoir vous servir du système et commencer à stocker des données dans l'écosystème.
    J'élimine tout de suite l'aspect rentabilité en vous disant que Sia est plus un réseau de gens souhaitant rendre service que de gens qui investissent pour gagner 3 ronds.
    Mettre à disposition un espace de stockage pour les autres n'est absolument pas rentable ! C'est un acte altruiste ou de foi ! Passez donc votre chemin si vous escomptez devenir millionnaire.

    Après avoir acquis des Siacoins et les avoir transféré, vous souhaitez stocker des données sur le réseau Sia.
    Comment ça fonctionne ?
    Là, ça se corse un peu.
    Vous allouez une somme en Siacoins pour votre "engagement" à louer un espace de stockage d'une certaine taille pour une durée déterminée (la fameuse "allowance").
    Cette allocation permet au système de ne pas vider votre wallet de Siacoins, en contrôlant, en fonction de la somme que vous avez précisée, la limite de dépense que ne devra pas dépasser le système.

    Vous devez bien comprendre un point essentiel : le découpage en 40Mo !
    Chaque fois que vous voudrez téléverser un fichier sur le réseau Sia, celui-ci sera découpé (s'il est plus gros que 40Mo) ou arrondi (s'il est plus petit que 40 Mo) en tranches de 40 Mo.
    Que faut-il entendre par là ?
    Soyons très clairs : si vous téléversez un fichier de 10 ko (un fichier texte par exemple), le système Sia considèrera alors que votre fichier pèse en réalité 40 Mo et vous facturera 40 Mo !
    Le logiciel ne vous avertit d'ailleurs pas lorsque vous téléversez des milliers de petits fichiers !!
    Vous ne comprendrez donc pas ce qui vous arrive lorsque les téléversements se bloqueront et que vous devrez réhausser votre allowance en permanence.


    Téléversez 150 fichiers de 10 ko, et vous payerez en réalité pour 6 Go de stockage (au lieu de 1,5 Mo)...
    Imaginez maintenant avec 2000 ou 3000 fichiers textes...

    Première conclusion donc : Sia est plus un système d'ARCHIVAGE à mon sens, qu'un système d'accès rapide.
    Et si vous souhaitez vous en servir, vous devrez préférablement compresser ensemble les petits fichiers pour vous rapprocher au maximum de 40Mo par fichier ou alors disposer de fichiers compressés beaucoup plus gros que 40Mo.

    Ce problème est identique sur d'autres plateformes, comme STORJ, dont le découpage est lui de 64Mo.
    Sia a bien entendu tenté de corriger ce problème en ajoutant une fonctionnalité permettant de gérer des paquets de 40Mo en mettant en cache les fichiers à copier sur le nuage avant... Mais ce n'est pas sans conséquences sur les ressources de votre machine !

    Il est donc préférable d'envisager de préparer un peu les données à y stocker. (A minima de compresser entres eux des fichiers trop petits).

    Sur Sia, on paie pour :
    - le stockage chez les hébergeurs (normal)
    - les "contrats" avec les hébergeurs (oui, quand vous utilisez leur espace de stockage, vous établissez un contrat virtuel, et c'est payant.. même si ce n'est pas cher)
    - le téléversement (attention, ça grimpe vite en fonction de la masse de données à téléverser)
    - le téléchargement (encore une fois, c'est pas vraiment conçu pour que vous retéléchargiez toutes vos données tous les 4 matins !)

    Ces coûts sont à prendre en compte, car ils s'additionnent au tarif de stockage par To !
    Si vous prévoyez de stocker beaucoup de données (plusieurs To), allez-y PROGRESSIVEMENT !!
    Inutile d'indiquer dans votre configuration que vous allez stocker 30To du premier coup, parce que vous allez mettre plusieurs semaines (voir mois) à les transférer et vous allez donc payer pour rien... Faîtes progressivement ! To par To ! Vous réhausserez votre configuration au fur et à mesure.

    Vous pouvez bien entendu utiliser les réglages avancés
    Gardez à l'esprit si vous prévoyez d'envoyer 2 To de données, qu'ils devront être pris en compte dans la partie "téléversement"... car vous allez effectivement devoir les téléverser !! et ça peut grimper vite et fort si vous ne le prévoyez pas dans votre calcul.


    Que se passe-t-il lorsque vous envoyez vos données ?
    L'application envoie les paquets et gère elle-même la redondance entre les hébergeurs.
    C'est un cas quasi-unique je crois. Aujourd'hui, c'est plutôt un noeud intermédiaire qui se charge de la répartition.

    La redondance par défaut est de 2 fois sur Sia, il existe donc 3 versions (ou presque... c'est rarement du 100%) de chaque fichier sur le réseau.
    Vous pouvez changer ce paramètre, y compris le nombre de fragments de chaque bloc de 40Mo (par défaut c'est 10). Mais attention car plus vous augmentez ces valeurs (redondance et fragments), plus votre machine va consommer de bande passante, de RAM et de CPU.



    La gestion de la bande passante. 
    Là, ça coince, bien qu'ils aient fait de gros progrès.
    D'abord, avant chaque nouvelle utilisation de Sia, il vous faut télécharger la blockchain (où la mettre à jour par rapport à ce que vous avez déjà)
    Lorsqu'on lance Sia pour la première fois, il faut attendre environ 6h pour charger les presque 50Go de la blockchain.. Impossible de faire quoique ce soit avec nos fichiers tant que la blockchain n'est pas chargée...
    Sia fonctionne ainsi. C'est une limite claire du système.

    Le point négatif de gérer soi-même la redondance, c'est justement que notre machine communique avec plusieurs dizaines d'hôtes en permanence.
    Mieux vaut disposer d'un abonnement internet fibre illimité et de NetLimiter installé pour limiter le débit où vous allez vous retrouver muselé par votre opérateur (j'ai reçu un charmant mail - très sympathique en plus - de mon opérateur associati m'informant du délire... je n'en revenais pas ! Mais je ne peux pas leur donner tort, la consommation était phénoménale..). Il est également possible de museler le débit sur la console web de renterd.
    Donc le limiteur de bande passante EST INDISPENSABLE avec Sia.
    Sachez qu'en dessous de 5MB/s, Sia fonctionnera mal et de nombreux téléversements échoueront, donc ne descendez pas en dessous !


    Une fois vos données hébergées et leur taux de réplication à 100% (le fameux "Health"), vous devez IMPERATIVEMENT lire le ReadMe concernant la récupération en cas de problème... car ce n'est pas simple du tout !! Il faut faire des dump des 2 bases de données (db.sqlite et metrics.sqlite) en utilisant les commandes sqlite et les sauvegarder très précieusement et régulièrement, autrement dîtes adieu à vos données ! 
    Car, (et c'est aussi une faiblesse du système), votre seed ne suffit pas pour récupérer vos données !
    Si par malheur votre machine crashe, ce sera fini ! Vous ne récupèrerez jamais vos données !
    Seuls ces fichiers, replacés et renommés dans une nouvelle installation de Sia renterd, vous permettront de récupérer vos fichiers.... Honnêtement, j'en suis resté un peu abasourdi la première fois. ça gagnerait à être simplifié !
    Lors d'une nouvelle installation, vous devrez utiliser le même seed, recharger toute la blockchain, refaire la même configuration et arrêter renterd à l'issue pour procéder au remplacement des fichiers db.sqlite et metrics.sqlite par vos dumps (que vous aurez renommés).



    Soyons pragmatiques ! Listons
    - Pour vous en servir, il faut acheter des Siacoins ! Et pour acheter des Siacoins, il faut un compte kraken... (vous devrez attendre 3 jours après votre premier achat de Siacoins avant de pouvoir les transférer sur votre Wallet Sia). Il est aujourd'hui difficile d'en acheter ailleurs que sur Kraken !
    On ne peut pas en acheter directement sur Sia.tech.
    A la différence de Storj (pour ne citer que lui) qui vous offre la possibilité de payer votre stockage décentralisé par CB (en plus de leurs propres coins), on sent tout de suite que Sia s'adresse à un public beaucoup plus averti.. 
    Il y a des progrès à faire pour ouvrir d'avantage l'écosystème.


    - Actuellement le premier lancement de l'application renterd sur votre machine nécessitera plus de 6h.
    En effet, l'application a besoin de télécharger la totalité de la blockchain avant de pouvoir fonctionner.
    Et cette blockchain grandit, donc le temps de chargement sera amené à s'allonger !
    Ils disent bosser dessus, j'attends de voir ! Cette blockchain fait actuellement 50Go (elle en faisait 47 il y a 2 ans) ! Vous devrez laisser le logiciel la télécharger intégralement avant de pouvoir vous identifier...
    Libre à vous ensuite de la déplacer sur un lecteur réseau hébergé ou une clef usb ailleurs, afin de gagner un peu de place ! Une fois cette blockchain chargée lors du premier lancement, le logiciel se synchronisera plus rapidement aux prochains lancements (de l'ordre de qques secondes à une minute... puisqu'il vous faudra télécharger les nouveaux bouts de la blockchain apparus entre-temps).
    Mais disons-le tout de suite, Sia n'est pas vraiment conçu pour être éteint ! D'où la bonne idée de dédier une machine exclusivement si vous faîtes beaucoup d'archivage.


    - Concernant le nombre de noeuds réels sur le réseau Sia : Il n'y en a guère plus de 350 allumés 24/24... sur plus de 84 000 annoncés sur https://hosts.siacentral.com/ ...
    Arrêtez moi si je me trompe, mais ça semble manquer d'optimisation tout ça. Il faudrait peut-être envisager de faire le ménage sur les seed inactifs... !


    - Sia peut se montrer très gourmand en ressources.
    Ils ont cependant fait de gros progrès dans la dernière mise-à-jour.
    Pour ceux qui ont l'habitude de cpubenchmark.net, ne visez aucune machine dont le score du CPU est inférieur à 10 000 où vous allez pleurer toutes les larmes de votre corps pour avoir déboursé des sous (et beaucoup de temps) en Siacoins pour rien. Idem pour la RAM, RIEN EN DESSOUS DE 16Go... On peut rapidement atteindre 80% de la RAM.

    - NetLimiter ! NetLimiter ! NetLimiter !
    Utilisez n'importe quelle solution de limiteur de bande passante. C'est impératif. Ne descendez pas en dessous de 5MB/s.
    J'ai également reçu des messages d'alerte de Kamatera (hébergeur de VMs) avec des demandes d'explication avant blocage de mon accès (en même pas 24h) concernant les transferts invraissemblables du serveur que j'avais monté pour faire un test plus sérieux (avec un gros serveur, genre 20 vCPU de dernière génération, 24Go de Ram etc.. pour envoyer 1To de données). Ils ont heureusement corrigé un peu le tir depuis, mais la gestion de la bande passante est ABSOLUMENT nécessaire.


    - Le téléversement des données à présent : Premièrement vous "allouez" un montant en Siacoins que vous souhaitez payer pour la durée de la location de l'espace de stockage sur les noeuds du réseau... Et vous allez avoir de drôles de surprises car malgré toute la précision des calculs que vous pourrez anticiper, ça va vite monter en flèche lors du téléversement (la faute à ce découpage/arrondi en 40Mo !) !!. Encore une fois, si vous avez un mini PC de quelques années d'âge (mais toutes ses dents), la moindre donnée envoyée prendra des plombes et fera chauffer le CPU à l'extrême si vous n'avez pas optimisé vos données !... Et je ne vous parle pas d'interrompre ce processus !! D'une part vous ne pourrez pas ! (et oui, on arrête pas un transfert Sia comme ça !!), d'autre part, bonjour la catastrophe après ! Sia n'est pas du tout tolérent aux changements !
    Et vous allez devoir prendre votre temps pour envoyer les données avec la console web, PETIT A PETIT, si vous n'utilisez pas rclone ou rclone-browser.
    Attendez que la réplication des données vous affiche les 100% (Health) avant d'envoyer autre chose !!! Ne brusquez pas ce système, vous allez le regretter et recommencer 20 fois absolument tout (et bonjour le pognon gaspillé)

    - Utilisez rclone, rclone-browser ou n'importe quel logiciel de montage de volume S3 compatible si vous ne voulez pas devenir dingue avec la console web de renterd... qui est une catastrophe !
    Vous allez expérimenter de graves problèmes avec la console web.
    Donc lancez renterd en tâche de fond (la version CLI), puis connectez votre logiciel S3 compatible (voir l'article pour connecter rclone-browser pour savoir comment faire) pour avoir un volume sur votre machine... c'est le jour et la nuit !

    - L'assistance utilisateur sur Discord : Je vois des centaines de messages passer chaque semaine... Moi, on ne m'a simplement jamais répondu quand j'ai poliment posé une simple question. Peu d'assistance donc. La communauté en a ras le bol des débutants. C'est un truc de geek, avec une communauté bizarre, démerdez-vous !

    - Quid de la stabilité ?
    C'est toujours une question sensible.
    Les membres hébergeurs du réseau Sia ne sont pas des entreprises ! Il existe donc un doute légimite.
    Ils peuvent arrêter leur activité du jour au lendemain, poussant votre renterd à répliquer les données ailleurs.

    Pour ma part, je n'ai pas expérimenté de problème de stabilité particulier. Certes, des contrats se changent constamment, mais je n'ai pas eu de pertes depuis que j'utilise une application S3 compatible (par contre avec la console web... ce fut une autre histoire !!!). Je trouve que le réseau est plutôt stable (par rapport à ce que j'ai lu par-ci par-là). C'est un très bon point.
    De toute façon, de la même manière qu'on ne conserve jamais une seule source de données, on n'utilise pas qu'un seul média pour archiver. A coupler avec autre chose (disque dur, bande magnétique, M-Disc etc...)


    En conclusion :
    Sia est un système tout à fait passionnant, qui respecte un esprit décentralisé étonnant, mais qui souffre de contraintes d'utilisation sévères pour un débutant.
    Si de nombreuses personnes se sont inquiétées de la santé de l'écosystème, ce dernier a opéré un renouveau, je ne vois donc aucun danger pour sa pérennité (sauf à ce que des restrictions de bande passantes débarquent un peu partout dans le monde... ne riez pas, c'est pour bientôt !).
    Sia n'est pas vraiment conçu pour les gens souhaitant une solution simple et accessible de tout appareil (en gros, une solution répondant aux standards actuels). Un bon informaticien saura rapidement contourner les difficultés et mettre en place quelque chose de solide avec Sia, mais un utilisateur lambda aura certainement beaucoup de mal.



    Bref, je m'en sers toujours actuellement (je continue de tester régulièrement), mais je ne peux pas, raisonnablement, le défendre face à des solutions beaucoup plus pratiques, comme Storj (même si je pense le système beaucoup plus sûr que storj)
    Un seul mot d'ordre donc : si vous souhaitez utiliser Sia pour de l'archivage, il faudra vous armer de rigueur et de nombreux essais.


    votre commentaire
  • L'interface UI de Sia renterd est quelque peu dérangeante car elle ne dispose pas d'outils de synchronisation.
    Par ailleurs, elle plante régulièrement dès qu'on lui ajoute un peu trop de documents, ne permet pas non plus de copier des dossiers (ce qui est incompréhensible) et gâche complètement l'expérience Sia.

    Nous partons du postulat que vous avez déjà installé Sia renterd (sur Windows par exemple.. mais ça fonctionne aussi sur Linux et sur FreeBSD), que vous avez créé un seed et ajouté des Siacoins à votre compte.
    (Rappel, pour obtenir des Siacoins, il vous faut un compte sur Kraken - par exemple).

    En gros, vous avez déjà un peu exploré le logiciel et tenté de stocker des fichiers dessus. Et probablement que vous vous êtes déjà arrachés la moitié des cheveux sur votre crâne.

    Pour pouvoir utiliser rclone ou rclone-browser avec renterd, il faut impérativement créer les accès S3 compatible et pour cela, rédiger un fichier de configuration dans le même dossier que l'exécutable (renterd.exe, qui se trouve dans le dossier bin du dossier décompressé sur Windows).
    En plus d'éviter de nous faire réécrire le mot de passe de console et le seed à chaque fois qu'on lance renterd, cela permet donc de créer ces accès S3.

    Voici le contenu du fichier renterd.yml :

    seed: INDIQUEZ-ICI LE SEED DE VOTRE COMPTE SIA
    http:
      password: AU-CHOIX
    autopilot:
      heartbeat: 5m
    s3:
      enabled: true
      disableAuth: false
      keypairsV4:
        NIMPORTE-QUOI-ENTRE-16-ET-128-CARACTERES: MOT-DE-PASSE-DE-40-CARACTERES-EXACTEMENT!

    - Le Seed, vous connaissez, c'est la phrase de récupération de votre Sia.
    - Le password, c'est le mot de passe que vous entrez à chaque fois que vous démarrez renterd (c'est le mot de passe de la console web)
    - Le NIMPORTE-QUOI-... ce sera votre access_key qui sera demandé par rclone lors de la création de la config
    - Le MOT-DE-PASSE-DE-40-CARACTERES... ce sera votre secret_key, également demandé par rclone.

    Une fois ce fichier créé, démarrez renterd, vous n'aurez alors plus besoin de créer le mot de passe de console web ni d'entrer le seed (c'est le but). Si ce n'est pas le cas, c'est que vous n'avez pas créé le fichier au bon endroit où qu'il y a un problème de permissions.

    Dans rclone, créer une nouvelle configuration, nommez-la comme vous voulez, puis lorsqu'on vous demande de choisir l'option de stockage (storage), tapez "s3" puis entrer.

    storage> s3

    Lorsqu'on vous demande de choisir le provider, tapez "Other" puis entrer

    provider > Other

    Lorsqu'on vous demande de choisir l'option env_auth, tapez "false" puis entrer

    env_auth> false

    Lorsqu'on vous demande d'entrer l'option access_key_id, tapez le NIMPORTE-QUOI-ENTRE-16-ET-128-CARACTERES puis entrer

    access_key_id> NIMPORTE-QUOI-ENTRE-16-ET-128-CARACTERE

    Lorsqu'on vous demande d'entrer l'option secret_access_key, tapez le MOT-DE-PASSE-DE-40-CARACTERES-EXACTEMENT! puis entrer

    secret_access_key>  MOT-DE-PASSE-DE-40-CARACTERES-EXACTEMENT!

    N'entrez rien pour l'option region

    Entrez http://127.0.0.1:8080 pour l'option endpoint

    N'entrez rien pour l'option location_constraint

    Entrez "private" pour l'option acl

    N'éditez pas les configurations avancées, validez la configuration complète (Yes this is OK) et quittez (q)

     

    La configuration est terminée.
    Si vous utilisez rclone-browser, alors vous verrez votre bucket et vos fichiers s'afficher.

    Je vous recommande également la lecture de la doc Sia : 
    https://docs.sia.tech/sia-integrations/s3-integrations/rclone

     


    votre commentaire
  • Rclone Browser n'existe plus sur Windows, mais pas de panique, rclone n'est pas complexe à mettre en oeuvre en lignes de commandes, et surtout, vous pourrez monter un volume réseau aisément !

    Pré-requis :
    - avoir créé un bucket sur Storj
    - avoir créé un accès CLI (avoir une API Key)
    - avoir téléchargé rclone pour windows (prenez la version tout en haut à gauche... 64bit, puis décompressez le dossier dans C:\Program Files\)
    - avoir téléchargé et installé WinFSP

     

    1) Configurez l'accès à votre bucket avec rclone.
    - Ouvrez un invite de commande (cmd), rendez-vous dans le dossier rclone dans "C:\Programmes\rclone-v1.63.1-windows-amd64"

    cd "C:\Program Files\rclone-v1.63.1-windows-amd64"

    - Lancez la config rclone

    .\rclone config

    Et suivez le tuto sur la configuration pour FreeBSD car la configuration est exactement la même.
    Quittez ensuite votre configuration, puis

     

    2) Montez un volume réseau :
    - Je vous suggère d'écrire un fichier .bat du nom de votre accès CLI sur le bureau afin de pouvoir lancer et arrêter votre volume réseau lorsque vous en avez besoin.

    D'abord créez un fichier texte sur votre bureau du nom de la connexion choisi :
    NOM-CHOISI.txt

    Mettez-y ceci dedans :

    cd "C:\Program Files\rclone-v1.63.1-windows-amd64"
    .\rclone mount NOM-CHOISI:/NOM-DE-VOTRE-BUCKET V: --volname \\NOM-DE-VOTRE-PC\NOM-DU-BUCKET --vfs-cache-mode writes

    Décortiquons :
    - NOM-CHOISI : si vous avez respecté les consignes dans l'article FreeBSD, alors ce nom est le nom de connexion que vous avez créé lorsque vous avez configuré rclone. C'est également le nom de votre accès CLI créé sur le site storj.io
    - NOM-CHOISI:/NOM-DE-VOTRE-BUCKET : Si votre bucket s'appelle "stockage" alors il faut mettre NOM-CHOISI:/stockage.
    - V: La lettre du lecteur réseau que vous choisissez (prenez celle que vous voulez, du moment qu'elle est dispo)
    - --volname \\....\.... c'est l'adresse de votre lecteur réseau. Comme il est en local sur votre machine, il vous faut récupérer le nom de votre machine (sysdm.cpl), enfin, je mets le nom du bucket (stockage), mais vous pouvez mettre n'importe quoi d'autre.
    - --vfs-cache-mode writes est indispensable.

    Une fois ce fichier texte écrit, refermez le bloc-notes, renommez le fichier et changez l'extension .txt en .bat

    Double-cliquez dessus, et un volume réseau apparaît aussitôt dans votre Poste de Travail (ne refermez pas la fenêtre de console qui s'ouvre, minimisez-là dans votre barre des tâches).
    Pour "démonter" le volume, fermez simplement cette fenêtre de console !


    votre commentaire


    Suivre le flux RSS des articles de cette rubrique
    Suivre le flux RSS des commentaires de cette rubrique