Wiki ZooBC
Proof of Participation

Tours manqués, suspension et expulsion

Un siège du registre des nœuds se conserve en faisant le travail. Un nœud tiré pour produire un bloc et qui ne le livre pas coûte 15 secondes à la chaîne et compte un tour manqué. Chaque tour sauté déclenche aussi une horloge : le nœud est manquant jusqu’à son prochain bloc propre, ne gagne rien et perd du score de participation. Quatre tours manqués d’affilée le retirent du tirage (suspension), et un score de zéro lui enlève son siège (expulsion). Cette page décrit ce parcours, tel qu’il fonctionne à partir de la version 0.5.8.

Tours manqués

Quand un bloc est produit, chaque nœud qui avait été tiré pour un tour antérieur de cette hauteur et qui n’a pas produit est un producteur sauté et compte un tour manqué. Le compteur de tours manqués du nœud qui a produit le bloc est remis à zéro.

La raison n’a pas d’importance. Un nœud hors ligne, un nœud trop lent et un nœud en ligne qui a retenu son bloc sont traités de la même façon. Un tour sauté est un tour sauté. (Retenir un bloc est d’ailleurs le seul moyen par lequel un producteur pourrait tenter d’influencer la graine ; voir la graine du bloc.)

Manquant : aucun revenu, un score en baisse

De tout tour sauté jusqu’à son prochain bloc propre, un nœud est manquant. Tant qu’il est manquant :

  • il ne gagne rien : ni ticket de la loterie coinbase, ni part des frais, ni part de longévité ;
  • son score de participation baisse de 5 points (sur 100) par unité, répartis uniformément sur les blocs de l’unité.

L’unité vaut max(n, 2 880 blocs), où n est le nombre de nœuds sélectionnables. En dessous de 2 880 nœuds, l’unité vaut 2 880 blocs, soit 12 heures. Sur un registre plus grand, l’unité croît avec n, parce que le tour de chaque nœud ne revient qu’environ une fois tous les n blocs. Sur le devnet, le plancher de l’unité est de 120 blocs (30 minutes) : tout le parcours y est donc 24 fois plus rapide.

Les reçus que signe le nœud et un ping (décrit plus bas) ne mettent pas fin à l’état manquant. Seul son propre bloc suivant y met fin. Ainsi, un nœud qui manque un tour et produit rapidement son bloc suivant perd un peu de revenu et une parcelle de score ; un nœud qui reste absent continue de perdre.

Suspension

Au quatrième tour manqué d’affilée, un nœud est suspendu :

  • il quitte le tirage des producteurs, si bien que ses tours de rôle cessent de coûter un tour à tout le monde ;
  • il conserve son siège dans le registre, mais compte comme manquant : il ne gagne rien et son score continue de baisser ;
  • il sort du décompte des sièges du rythme d’admission et de tous les décomptes aux deux tiers, sauf de la liste des signataires de la chaîne dorsale (voir les règles des deux tiers).

Une courte interruption ne suspend jamais un nœud : s’il a produit un bloc à lui au cours des 20 derniers blocs, un quatrième tour manqué ne le suspend pas (le tour manqué est tout de même compté).

Pour revenir, le logiciel d’un nœud suspendu envoie un ping : une attestation de vivacité émise avec la propre clé du nœud, avec des frais de 0, au plus une par fenêtre de 120 blocs, valide uniquement de la part d’un nœud suspendu. Il s’agit d’une transaction QueueAttendance (type 59), le même type que celui qu’envoie un nœud en file d’attente pour montrer qu’il est en ligne. Le ping ramène le nœud dans le tirage à titre probatoire. Il n’efface jamais les tours manqués et n’arrête jamais la perte de score ; cela ne se produit que lorsque le nœud produit un bloc à l’un de ses prochains tours.

Diagramme d’états : un nœud actif est suspendu à son quatrième tour manqué d’affilée ; un ping le remet dans le tirage à titre probatoire ; son propre bloc le rend de nouveau actif ; depuis la suspension ou la période probatoire, un score de zéro l’expulse.
Diagramme d’états : un nœud actif est suspendu à son quatrième tour manqué d’affilée ; un ping le remet dans le tirage à titre probatoire ; son propre bloc le rend de nouveau actif ; depuis la suspension ou la période probatoire, un score de zéro l’expulse.

Expulsion

Quand le score d’un nœud atteint zéro, le nœud est expulsé. Son siège est fermé, 90 % de sa mise bloquée retourne à son propriétaire et 10 % va au fonds de longévité (le ZBC n’est jamais brûlé ; voir pourquoi aucun ZBC n’est brûlé). L’expulsion ne laisse jamais moins de trois nœuds actifs ; quand ce plancher s’applique, la «  dernière apparition  » décide qui est épargné en premier. Un reçu signé par le nœud et qui figure dans un bloc le marque comme vu ; il ne modifie rien d’autre que cette marque de «  dernière apparition  ».

Chaque nœud démarre à 20 % : la durée pendant laquelle un nœud silencieux tient dépend donc de son score au moment où il se tait.

Score quand le nœud se taitMoins de 2 880 nœuds5 760 nœuds10 000 nœuds
20 % (le score de départ)2 jours4 jours6,9 jours
60 %6 jours12 jours20,8 jours
100 %10 jours20 jours34,7 jours

Remonter est trois fois plus lent que chuter : en dessous de 2 880 nœuds, un nœud qui produit tous ses blocs avec leurs reçus passe de 0 à 100 % en 30 jours, et de 20 % à 100 % en 24. La confiance est lente à gagner et rapide à perdre.

Score en fonction des jours, en dessous de 2 880 nœuds : des nœuds silencieux tombent de 100, 60 et 20 % à zéro en 10, 6 et 2 jours ; un nœud qui travaille monte de 0 à 100 % en 30 jours.
Score en fonction des jours, en dessous de 2 880 nœuds : des nœuds silencieux tombent de 100, 60 et 20 % à zéro en 10, 6 et 2 jours ; un nœud qui travaille monte de 0 à 100 % en 30 jours.

Règles connexes

  • Un propriétaire qui retire un nœud alors qu’il est manquant ou suspendu perd 10 % de la mise (voir quitter le registre).
  • Un nouveau nœud ne gagne rien tant qu’il n’est pas mature : il lui faut 4 unités après son admission et un bloc à lui (voir les revenus d’un nœud).
  • Une double signature avérée compte comme un tour manqué et rend le producteur manquant jusqu’à son prochain bloc propre (voir l’équivocation).
  • Chaque nombre de ce parcours (les 5 points, l’unité, le score de départ) est un paramètre de genèse de la chaîne.

Voir aussi