Nouvelle version 0.50 ! Difficulté personnalisée et IPv6

Duniter passe en version majeure 0.50, prêt à exploiter le protocole DUP en version 0.5 !

Cette release est une première : elle inaugure la méthode de passage programmé du protocole en version supérieure. Concrètement, le passage est prévu demain 09/11/2016 à 14h00 BCT (temps blockchain) pour ceux ayant emboîté le pas de cette nouvelle version. A partir de cette heure, les nœuds commenceront à générer des blocs en version 5.

Alors, pour ceux ayant suivi les atterrissages sur Mars, vous allez pouvoir revivre un moment similaire. Espérons simplement que nous constaterons plus un Curiosity qu’un Schiaparelli. :slight_smile:

N.B.: Cette version change les règles monétaires et produira inévitablement un embranchement réseau pour ceux ne se mettant pas à jour.

Les changements apportés

Cette nouvelle version clôture 14 tickets, dont voici une liste rapide, puis des détails :

  • DUP 0.5
    • changement de la règle de difficulté : le mécanisme d’exclusion a été aboli
    • il existait une faille potentielle concernant les identités, le blockstamp n’était pas vérifié
  • Réseau
    • simplification de la configuration IPv4 et IPv6
    • un nœud peut désormais être configuré uniquement en IPv6
  • Paquet Debian
    • le n° de version du paquet est désormais correct
  • API
    • Ajout de la date de certification dans /wot/lookup

DUP 0.5

Le protocole a été modifié pour intégré un changement majeur : désormais, les nœuds ne sont plus exclus de la preuve de travail.

En effet auparavant, quand un nœud calculait un certain nombre de blocs, il se voyait tout bonnement exclu du calcul du prochain bloc. Cela signifiait qu’il existait des situations de minorité de blocage : en cas de fork majeur sur la monnaie, chaque fork n’était pas garanti de pouvoir continuer indépendamment.

Ce n’est désormais plus le cas. A partir de maintenant, Duniter repose exclusivement sur la personnalisation de la difficulté : plus un nœud trouve de blocs par rapport aux autres participants, plus sa difficulté augmente. Un point majeur est que cette difficulté dépend désormais de la médiane du nombre de blocs émis par membre, dans la fenêtre courante.

Concrètement, imaginons une blockchain calculée par 3 membres, ayant respectivement émis [3, 3, 10] blocs. Alors la médiane est de 3, et le membre ayant émis 10 blocs a une difficulté supérieure à la médiane ((10 + 1) / 3 = 3.66) de 366% pour le calcul de son prochain bloc. Plus il se situe au-dessus de la médiane, plus sa difficulté augmente.

Les 2 membres ayant émis 3 blocs, eux, n’ont pas de malus. De même que ceux ne participant pas encore aux calculs.

Configuration réseau

Suite à divers échanges sur le forum, j’ai souhaité revoir l’écran de configuration réseau pour plus de simplicité. Le voici :

Détails de la version

Lien vers la page de notes de version.

Mettre à jour sa version

8 « J'aime »

Très malin cette nouvelle règle pour la difficulté. Pressé de voir ce que ça va donner !

C’est bizarre d’avoir mis le domain name dans un ipv4 spécifiquement. Ya une raison particulière ?

C’est vrai, il peut être aussi bien IPv4 que IPv6. Du coup, peut-être ira-t-il dans une autre section dans une version ultérieure.

Mis à jour, merci @cgeek ! Sinon tu dors, des fois ? :grin:
RDV IRL dans quelques jours !

Oh oui je dors, ça permet d’agencer les idées à implémenter le lendemain :slight_smile:

Merci pour la mise à jour, et si d’autres font de même, TestNet va passer en 0.5 sans même le ressentir !

2 « J'aime »

c’est fait depuis quelques heures.

Marrant, j’avais pas encore lu vos messages que j’ai eu la même remarque et ais proposé une amélioration :slight_smile:

1 « J'aime »

Oui ! j’avais pas compris le changement de règle de la preuve de travail avec le ticket en anglais.
Et là c’est plus clair et ça a l’air top comme solution.
Par contre, comment est calculé ou choisi la fenêtre courante ?

J’ai également hâte de voir ce que ça va donner :smiley:

Updated my docker instance without any issues.

Good work!

1 « J'aime »

Waow ! Je n’ai plus qu’à cliquer sur “Accepter la pull request”.

Merci pour cette intervention Moul !

Merci. Je suis ravis d’avoir pu toucher au code un peu plus.
Bien que ça ne soit toujours pas le JavaScript :smile_cat:
Ça m’a permis de toucher au Jade, qui est bien pratique.

Un message a été déplacé vers un nouveau sujet : DUP : la notion de fenêtre courante

@modulix, @mmpio, @Tortue, @Smyds, @elois .
Hi, could you update your node as:

C’est un Curiosity !

http://duniter.org:8999/blockchain/block/53638

:grinning: :champagne: :tada: :fireworks:

5 « J'aime »

Merci @cgeek ! Cesium version 0.5.0 affiche maintenant les bonnes dates de fin de validité, pour chaque certification en attente.

Par ailleurs, j’ai pu réduire le temps de chargement d’une identité. Cool !

Cette version de Cesium inclue quelques nouveautés mineures concernant la place de marché.

2 « J'aime »

8 messages ont été intégrés dans un sujet existant : Block issuance distribution

Un message a été intégré dans un sujet existant : Block issuance distribution

Un message a été intégré dans un sujet existant : Block issuance distribution

Une mise à jour 0.50.1 est disponible.

Celle-ci corrige plusieurs bugs, dont un qui faisait forker le réseau chaque fois qu’une transaction était incluse dans un bloc (depuis la version 0.4).

Vous pouvez encore essayer, vous verrez que ça génère des forks ! Certes un peu moins maintenant que déjà 6 nœuds sont en 0.50.1 sur le réseau.

edit : n’utilisez pas cette version, elle crée des forks réseaux à cause d’une régression encore pire. Une mise à jour 0.50.2 arrive et devrait rétablir une stabilité totale.

1 « J'aime »

La 0.50.2 est sortie.

Votre nœud se rebranchera directement sur la blockchain des nœuds 0.50.0, il y a donc juste à se mettre à jour.

N’hésitez pas à le faire rapidement !

cc @inso, @gpsqueeek, @Pafzedog, @Tortue, @mmpio. Désolé, je vous spamme pour mes erreurs ! Mais c’est aussi pour avoir un beau réseau pour les journées des RML8.

1 « J'aime »