Et si aujourd'hui, on se relevait un peu les manches et qu'on s'attaquait à quelque chose de costaud ? Steemit Steem et ses limites.
Source : Wikimedia
A travers cet article, je souhaite partager avec vous mes interrogations et mes inquiétudes au sujet de l’environnement technique de la plateforme Steemit et de sa blockchain. Ce texte sera donc technique, mais je m’efforcerai de le rendre accessible à tous. Car comprendre même superficiellement la technique permet aux utilisateurs d’être véritablement partie prenante de cet écosystème (contrairement à Facebook et compagnie).
Lorsqu'on évoque les avantages d'une blockchain (ou registre distribué pour faire moins buzzword), on a l'habitude de les lister de la manière suivante.
Une blockchain permet :
- La décentralisation des processus de vérification des transactions
- La non répudiation des transactions
- La transparence de toutes les transaction
- L’historisation de toutes les transactions
- La réduction des coûts de transaction
La décentralisation est un pilier en ce sens qu'elle permet de disposer d'une base de données hautement disponible à moindre coût (hors processus de création des blocs) sans pour autant dépendre d'un tiers centralisé comme Google, Amazon et cloudflare.
Cet aspect est primordial, car nécessaire afin de devenir résistant à une quelconque censure.
Plus un réseau sera décentralisé et plus il sera résistant (au delta des règles de consensus).
Paradoxalement, Bitcoin et plus particulièrement son processus de création de blocs est devenu ultra élitiste (ce que Bitcoin gold tente maladroitement de résoudre). Heureusement, il reste toujours possible "facilement" d'installer un noeud issu de Bitcoin core.
Pour les néophytes, l'installation d'un noeud revient à créer une nouvelle copie du registre Bitcoin. On devient donc parti prenante du réseau.
Et Steem et Steemit dans tout ça ?
Malgré l'utilisation d'une blockchain, la décentralisation pose des problèmes à Steem.
Steemit inc en créant steemit.com a pris le choix d'appartenir au web "d'avant" en copiant une partie du paradigme de Facebook et consorts.
Pourquoi ? Car Steemit et modestement Busy sont des points d'accès beaucoup trop visibles et centralisés. Les articles sont référencés sur les moteurs de recherche à l'adresse steemit.com ainsi que les bookmarks, les liens sur les forums et les réseaux sociaux. Tout ça deviendra caduque en cas d'indisponibilité des plateformes... Les données existeront toujours, ce qui ne sera plus le cas des références pointant dessus (imaginez supprimer la table des matières d'une bibliothèque contenant des millions de livres).
Pour pallier à ça busy et Steemit utilisent respectivement cloudflare et Amazon Web Services.
Incroyable, la Blockchain qu'on pensait pouvoir résoudre intrinsèquement les problèmes de disponibilité et d'accès aux données se tourne finalement sur des solutions tierces et centralisées.
Pire encore, plus Steemit et Busy renforceront leurs infrastructures et plus nous dépendrons d'eux pour accéder à nos données.
On me rétorquera qu'il est toujours possible de créer sa propre instance de Steemit... Mais ça n'y change rien. Effectivement, j'héberge moi-même ma propre instance, mais lors des pannes de Steemit, je constate une nette baisse de la fréquentation. À quoi bon publier lorsque 90% des utilisateurs sont absents de la plateforme ?
D'autre part, un site miroir est forcément suspicieux.. Utiliseriez-vous votre posting key sur un miroir inconnu de Steemit ?
À mon sens, l'alternative serait de créer une application lourde multi plateforme et open source.
On supprimerait la dépendance à un service web centralisé… Mais ça ne résoudrait pas tout.
Steemd, le noeud du problème
Avant de commencer cette partie, je voudrais rappeler le rôle essentiel des "full node". En plus de contenir l'historique de toutes les transactions d'une blockchain, ils ont pour rôle de diffuser les transactions valides sur le réseau. Réduire leurs nombres reviens donc à affaiblir le réseau.
D’autre part, avoir un full node nous rends acteur et donc partie prenante du réseau. Nous participons à la sécurisation et le maintien de l’intégrité de la blockchain.
A présent, j’aimerais comparer les spécifications minimales nécessaire pour faire tourner les full node de Steem et Bitcoin.
Pour Bitcoin (https://bitcoin.org/en/full-node#minimum-requirements) :
- 145 Go de RAM
- 2 Go de RAM
- Une bande passante de 400 Kb/s
Pour Steem, j’ai plus de mal à trouver l’information, mais les configurations montrent qu’il faut prévoir 256 Go de RAM.
Et en pratique, voici la liste des "full nodes"
- https://steemd.steemit.com (Steemit Inc.)
- https://steemd.privex.io de @Privex
- https://steemd.pevo.science de @pharesim
- https://gtg.steem.house:8090 de @gtg
- https://rpc.steemliberator.com de @netuoso
- https://steemd.minnowsupportproject.org de @followbtcnews
- https://rpc.buildteam.io de @themarkymark
Sept noeuds pour Steem contre un peu plus de dix mille pour Bitcoin (core)…
Sans être un spécialiste, j’en déduis assez facilement que cette différence s’explique du fait des très hautes performances de la technologie Graphene. Par conséquent, la plus grande force de Steem serait également sa plus grande faiblesse.
Achille : Wikipedia
Qu’on ne s’y trompe pas, j’adore Steem et son écosystème. Les créateurs en prenant acte du monde réel, de nos sociétés, de la nature humaine et de l’individualisme (non @planetnamek, ce n’est pas un gros mot) ont mis en place un système incitatif certes imparfait, mais tellement prometteur ! Je suis d’ailleurs totalement fan de utopian.io.
En mettant en évidence les faiblesses de Steem, je souhaitais également approfondir les connaissances de la communauté francophone malheureusement assez éloigné de tout ça (hormis les witness).
J'espère très sincèrement que la communauté Steem (et pas seulement Steemit Inc) trouvera des solutions pour renforcer sa blockchain ainsi que les accès aux services associés.
encore une fois je lis tes posts avec 4 mois de retard ... très bonne réflexion, très profonde, une très bonne piste avec le client lourd (je suis pour, mais en facultatif). je crois bien avoir lu qu'ils ont remplacé Graphene depuis (possiblement parce que Dan Larimer a quitté Steemit Inc. ?)
Excellente réflexion !
J'aime bien l'idée du client lourd !
Ça n'empêche pas de garder les solutions web centralisé tout en proposant la possibilité d'acceder à la blockchain sans intermédiaire !
Une juste mise au point de la centralisation de l'accès au réseau Steem ! Upvoté à 100% !
img credz: pixabay.com
Nice, you got a 2.0% @minnowbooster upgoat, thanks to @planetenamek
Want a boost? Minnowbooster's got your back!
The @OriginalWorks bot has determined this post by @evildido to be original material and upvoted(2%) it!
To call @OriginalWorks, simply reply to any post with @originalworks or !originalworks in your message!
Merci pour ce partage, en effet on oublie le principe même d'une blockchain, la décentralisation.
Je pense que beaucoup sont venus sur steemit pour apprécier un système amélioré de partage d'idée, de blog personnalisé récompensé. C'est en soi une superbe idée.
Mais derrière tout cela, steem est avant tout un système décentralisé avec sa propre crypto (j'ai connu la crypto steem avant de connaitre ce système de partage de blog entre membres).
Apparaitre sur Google reviens à bloguer sur un référencement connu et contrôlé, mais je pense que si steemit veut grandir, il doit avant tout exister pour les personnes ne connaissant pas la technologie de la blockchain ou le monde de la crypto ; c’est un superbe moyen d’intégration dans ce monde jusqu’ici fermé au geek et aux nouveaux entrepreneurs.
Nous sommes actuellement entre deux eaux, mais n’oublions pas que nous ne sommes qu’au début d’une ère nouvelle.
Une fois que la communauté steemit sera conséquente et connu, peut-être que les améliorations nous emmènerons dans un system autosuffisant et vraiment décentralisé.
Je comprends ce que tu veux dire, mais en fait c'est bien maintenant que Steem doit résoudre ces défis.
Il y a déjà un lourd projet de mis à l'échelle pour pouvoir accueillir l'afflux de nouveaux utilisateurs. Si Steemit.com, c'est aussi parce que le noeud steemd.steemit.com est parfois à la rue.
Je suis d'accord avec toi, Steem doit résoudre ces problèmes pour perdurer et grandir.
C'est dans ces moments que nous pourrons voir le sérieux de équipe fondatrice .
Wait and see ....
Super article technique TOUT en étant TRÈS accessible.
Merci @evildido.
J'ai appris quelques trucs sur la blockchain Steem. Merci pour cet article et cette réflexion !
Oui tres bien expliqué Jonathan !
Avoir les applications tel steemit and busy centralisée c'est qq chose d'ennuyant et contre l'esprit general des blockchain, 100%
Pour steem, c'est vrai, les points de faiblesses sont aussi effrayants. Je pensai que chaque witness avait une full node, et il y en a plus que 200 d'eux. Ton note ici ca indique seulement 7 nodes, ce qui la rends aussi mal, vous etes sur de cet info?
Pour les nodes witness, les specifications sont moins que ca, j'ai juste lu un article par @zeartul ds lequel il explique avoir juste améliorer son node a 64 GB, c'est son dernier article.
Merci de nouveau pr cet article!
Un witness a besoin d'un witness node de 16 Go minimum. Un full, quand e regarde les configs ça parle plutôt de 256.
Apres ça dépend. Si tu as du SSD, tu peux mettre une partie de dedans. Build team a un setup de 256 Go.
Mais tu remarqueras que 64, c'est quand même de la configuration de serveur.
Article très intéressant et instructif :) Une solution pour ne plus dépendre de Cloudflare ni AWS ne serait-il pas de se tourner vers les autres projets de stockage de données utilisant la technologie blockchain ? Je pense notamment à Sia, mais il en existe plusieurs autres :) (en cherchant un peu j'ai vu iExec et Storj) Même IBM et Microsoft proposent maintenant des offres de "Blockchain-as-a-Service" ^^
Le BaaS est une fumisterie des gros fournisseurs pour surfer sur la vague du buzz Blockchain. Au final, c'est un service centralisé.
Steemit (le site et le noeud) utilise AWS pour son hébergement. La Blockchain steem est décentralisée à l'instar de Sia and co.
Ce qu'il faudrait c'est :
Oui, pour le Baas je me doute bien que c'est juste faire du business sur un truc à la mode ^^
Mais justement, héberger le site et les noeuds sur une base de données décentralisée ne revient pas à décentraliser les points d'accès ? quoique, oui, il faudrait du coup un client lourd ^^
Je pense que le noeud de la guerre, c'est un accès ultra rapide aux données de la Blockchain steem.
Ce qui explique le besoin en RAM. Impossible de décentraliser un noeud.
Bon article.
Je comprends le besoin de bande passante pour le réseau à cause de la fréquence de 3 secondes par block.
Cette utilisation mémoire est vraiment un gros soucis: ils mettent en gros 256 GB pour charger toute la blockchain en mémoire vive.
Problème de perf sur la partie DB ?
Je pense que ça vient du fait qu'il faut avoir l'accès le plus rapide aux données. J'ai vu un tuto pour witness node où il était possible d'utiliser la SSD.
Donc je pense que ça vient de là.
Bravo
j'admire le travail analytique mais j'ai vraiment du mal à me familiariser avec ce vocabulaire...
J'espère qu'un jour je serai à l'aise avec tout ça
À côté d'une telle analyse je me sens tout petit sur la plate-forme...
Entre la technique intouchable, les crypto monnaies incompréhensibles.... aïe
haaaaan. Je suis vraiment désolé. Du coup, je pense qu'il y a encore un effort de ma part pour le rendre plus accessible. J'ai un peu du mal à me rendre compte du niveau de maitrise de mes lecteurs.
Si tu m'en dis plus sur l'état de tes connaissances en quelques lignes, je pourrais peut-être adapté mon discours.
Je te remercie mais ne t'inquiète pas je suis vraiment novice et je n'ai pas baigné dedans depuis tout petit moi mon boulot c'est le corps humain la médecine la santé il faut seulement que je trouve le temps de découvrir un peu
Congratulations! This post has been upvoted from the communal account, @minnowsupport, by evildido from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, theprophet0, someguy123, neoxian, followbtcnews/crimsonclad, and netuoso. The goal is to help Steemit grow by supporting Minnows and creating a social network. Please find us in the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.
This post has received a 3.17 % upvote from @buildawhale thanks to: @evildido. Send at least 0.50 SBD to @buildawhale with a post link in the memo field for a portion of the next vote.
To support our daily curation initiative, please vote on my owner, @themarkymark, as a Steem Witness
Congratulations @evildido! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of upvotes
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
Plus Steem deviendra populaire et utilisé, plus il y aura de gens qui auront intérêt à operer un full node.
J'aimerais y croire mais quel intérêt à héberger un full node plutôt qu'un witness node ?
Je pense qu'il faudrait un "incentive"
Les témoins ont déjà un intérêt à héberger un full node. Les témoins qui le font peuvent possiblement s'attendre à recevoir plus de support que ceux qui n'en héberge pas.
Les témoins on intérêt à voir autant de node qu'il sera nécessaire d'avoir sans en opérer plus que nécessaire.
Merci beaucoup pour cet artcile, je comprends pas tout, tout! LOL! Mais je comprends que même si il y a des défauts, il semble y avoir un gros potentiel derrière.