Responsabilité développeurs et teneurs de nœuds

Salutations à tous

Ce que je pense comprendre:

  1. Les développeurs sont à l’initiative de proposition d’évolution des règles de la G1 ( Duniter, blockchain).
  2. Pour que ces évolutions soient fonctionnelles il faut que 66% des teneurs de nœuds accepte la mise à jour.

Questions

Est ce que je me trompe?

Tout le monde peut-ils gérer un ou plusieurs nœuds ?

Que ce passe t-il pour les nœuds qui refusent la mise à jour ?

Alors pas que, c’est n’importe-qui sur le forum technique, et si la proposition fait consensus au sein des principaux développeurs des serveurs blockchain alors elle est adoptée et ajoutée a la « roadmap » des évolutions des règles a venir. Ce process peut déjà prendre plusieurs mois mais ce n’est que la 1ère étape.
Un changement validé par consensus peut mettre plus d’1an avant d’être effectivement implémenté dans une mise a jours.

En réalité c’est plus compliqué que cela, il y a 2 étapes distinctes selon la façon dont est implémentée l’évolution.

  1. L’activation intelligente de l’évolution en fonction d’un % de membres dans la fenêtre courante ayant inscrit un certain flag dans leurs blocks. Le quorum appliqué est inscrit dans le code donc c’est de développeur qui décide. => Cette étape n’est pas toujours présente. Elle est nécessaire dans les cas ou l’application des changements au compte-goutte au rythme des mises a jours peut causer des fork entre les nœuds.

  2. Évolution activée (via l’étape 1 ou directement dés la mise a jours): il y a alors 2 cas possibles :

  3. a) Incompatibilité des blocs ou/et des index: les nœuds n’ayant pas l’évolution empêchent mécaniquement le changement s’il sont majoritaires, ils se désynchronisent s’il sont minoritaires. si un partie de la communauté souhaite poursuivre sans les changement elle doit forker le code et l’on se retrouve avec 2 monnaies différentes.

  4. b) Les blocs et index sont compatibles: les 2 versions peuvent en théorie quo-éxister sur le réseau pour une durée indéterminée, on garde donc une seule monnaie et tout le monde est content.

Et encore je simplifie énormément, certains changement peuvent avoir des impacts curieux voir inattendus s’il ne sont appliqués que partiellement même si les blocks et index sont compatibles.

Pour assurer la stabilité de la monnaie il faut idéalement que tout le monde suive les mises a jours, voila pourquoi les changements de protocole ne se font pas a la légère, c’est un process qui prend beaucoup de temps et qui se fait au consensus sur le forum technique.

Le quorum des 66% est a titre indicatif, c’est lié au fait qu’a tout instant t un tiers des membres calculant sont exclus du calcul. Donc dans le pire des cas, si tout les membres exclus sont sur la même version, il faut avoir la moitié des deux tiers restant pour être majoritaire.
Dans la pratique on ne peut pas déterminer a partir de quel quota une branche va forcément l’emporter., car de nombreux facteurs différents entre en compte, et que la pow est fondamentalement aléatoire.

Ici on ne parle que des nœuds membres, tu peut en gérer plusieurs mais il ne seront perçu que comme un seul puisque les blocks émis par ces nœuds sont signés par le même membre.
Donc on a bien 1 membre calculant = 1 voix, mais la majorité simple n’est pas suffisante a cause du tiers exclus.

Plein de cas sont possibles selon les différences entre les versions et a quels point elles sont répandues sur le réseau, cela peut aller d’une simple désynchronisation des nœuds pas a jours jusqu’à une déstabilisation de la monnaie.

En tout les cas il conviens de dissocier les causes de nœuds pas a jours :

  1. Pas a jours par oubli, peut gêner le bon fonctionnement de la monnaie voir causer son arrêt dans le pire des scénarios. D’ou le fait qu’un « teneur de nœud » a la responsabilité de se maintenir a jours.
  2. Pas a jours pour cause de désaccord réel et profond avec les changements, vu le très grand délai entre les les discutions sur un changement et son implémentation puis son activation, si l’on a des objections a un changement il faut les exprimer sur le forum technique tant qu’il en est encore temps.
    S’il ne s’agit que d’un ou deux membres isolés la communauté ne vas probablement pas revenir en arrière. Par contre si le désaccord n’est plus négligeable au sein des membres calculant et que des objections constructives et argumentés sont publiées, les développeurs peuvent très bien revenir en arrière dans une nouvelle mise a jours qui défera les changements fait (ou implémentera une alternative proposée par ceux qui n’étaient pas d’accord).

In finé, la G1 est notre monnaie a tous, elle quo-appartient a tout ses membres, qui même s’il ne sont pas calculant peuvent faire remonter leurs éventuels désaccord aux membres calculant. Et l’on peut toujours revenir sur un changement si la majorité est convaincue qu’il faut revenir dessus.

Les développeurs n’ont que le pouvoir législatif, les membres calculant ont le pouvoir exécutif :slight_smile:

3 « J'aime »

Grand merci pour tes explications :+1:
Cela permet de sensibiliser à la monnaie libre avec conviction.

Le fait que lors d’une évolution, un seul nœud puisse bloquer le fonctionnement fait un peu peur.

Heureusement ce n’est pas le cas :slight_smile:

1 « J'aime »

En k de non consensus, les règles d’un « fork » blockchain s’appliquent?

Oui, elles s’appliquent.

1 « J'aime »

Je ne suis pas certain d’avoir saisi la question :sweat_smile:

S’il n’y a pas de consensus c’est qu’il y a au moins 2 branches ou plus. Chaque noeud est de son point de vue sur la bonne branche et se sont les autres qui sont sur un « fork ». Aucune branche n’est plus légitime qu’une autre a priori, et en effet chaque branche applique ses propres règles, mais cette situation cause des instabilités et n’est pas durable, si on ne touche pas au code, chaque branche a 3 destins possibles :

  1. Les nœud qui sont sur cette branche changent de branche via l’algorithme de résolution des fork, du coup elle disparaît.
  2. Les nœuds qui sont sur cette branche se désynchronisent du réseau et se retrouve bloqués dans un état non-fonctionnel, c’est comme s’il n’existaient plus.
  3. Cette branche est rejoins par les autres via l’algo de résolution de fork ou par sync manuelle, elle deviens le consensus rétabli.

Un 4ème destin possible est que les nœud d’une branche appliquent une mise a jours différente afin de se désolidariser du réseau historique et continuer leur chemin a part pour toujours : on se retrouve avec 2 monnaies fonctionnelles ayant des règles différents.

1 « J'aime »

Tu as très bien saisie les questions. J’ai des notions novices du fonctionnement des bases de données blockchain. Merci, grand merci pour tes réponses développées. J’essaye aussi d’avoir une notion correcte des différents points de souveraineté sur les évolutions possibles de la G1 et de sa toile de confiance. Encore merci.

1 « J'aime »