Steem, il faut qu'on parle

in #fr7 years ago (edited)

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.


image.png
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"

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.

Sort:  

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% !

Calling @originalworks :)
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!

ezgif.com-resize.gif

To call @OriginalWorks, simply reply to any post with @originalworks or !originalworks in your message!

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 :

  • décentralisé les points d'accès (un client lourd peut être une solution)
  • alléger le full node afin d'en augmenter le nombre.

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

Super article technique TOUT en étant TRÈS accessible.
Merci @evildido.

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

Coin Marketplace

STEEM 0.26
TRX 0.20
JST 0.038
BTC 95295.37
ETH 3578.48
USDT 1.00
SBD 3.80