Wiki ZooBC
Faire tourner un nœud

Le rythme d’admission

ZooBC admet les nouveaux nœuds dans son registre des nœuds un à la fois, selon une minuterie volontairement lente. La part de production de blocs d’un opérateur est sa part des sièges : le rythme auquel des sièges peuvent être obtenus est donc le rythme auquel quiconque peut gagner du pouvoir sur la chaîne. Le protocole fixe ce rythme, et chacun peut le surveiller.

Pourquoi lentement

En preuve de travail, une part de la production de blocs s’achète aussi vite que du matériel ; en preuve d’enjeu, aussi vite que des pièces. Dans ZooBC, cette part doit être admise, un nœud par cycle d’admission, à une cadence fixée par le protocole. Une prise de contrôle soudaine, par exemple pour annuler un paiement, est donc impossible par principe, et pas seulement coûteuse (ce contre quoi protège la preuve de participation).

Cette lenteur n’a rien à voir avec la vitesse de la chaîne. Un nouveau nœud peut démarrer à partir d’un instantané récent au lieu de tout l’historique, personne ne fait passer d’entretien aux opérateurs, et la chaîne produit un bloc toutes les 15 secondes, quel que soit son nombre de nœuds.

La formule

Le délai entre deux admissions est la base divisée par le nombre de sièges comptés, maintenue entre un minimum et un maximum :

delay = clamp(base ÷ counted seats, minimum, maximum)

Sur le mainnet, la base est de 600 jours, le minimum de 7 jours et le maximum de 90 jours. Le testnet utilise les mêmes valeurs. Le premier nouveau venu peut être admis 7 jours après la genèse. La minuterie lit les horodatages des blocs et admet au plus un nœud par cycle, jamais dans le bloc qui l’a mis en file d’attente. C’est la file d’attente qui décide quel nœud est admis.

Le délai jusqu’à l’admission suivante est fixé au moment où un nouveau venu est admis, en comptant les sièges présents avant lui.

Quels sièges comptent

  • Les sièges de genèse comptent pour 11 au plus (une valeur de genèse, 11 sur chaque chaîne).
  • Les nouveaux venus comptent en totalité.
  • Les sièges suspendus ne comptent dans aucun des deux groupes.

Ce plafond empêche une genèse nombreuse d’ouvrir rapidement le registre. Sans lui, une chaîne lancée avec 100 sièges de genèse calculerait 600 ÷ 100 = 6 jours, relevés au minimum de 7 jours, et admettrait un nouveau venu chaque semaine dès le départ. Avec le plafond, le compte démarre à 11, et le calendrier est le même que sur une chaîne à 11 sièges. Exclure les sièges suspendus fait que seuls les sièges qui travaillent fixent le rythme.

100 sièges de genèse passent par un entonnoir qui en compte au plus 11, les nouveaux venus comptent en totalité, les sièges suspendus ne comptent pas, ce qui donne 600 ÷ 11 ≈ 54,5 jours sur les deux frises
100 sièges de genèse passent par un entonnoir qui en compte au plus 11, les nouveaux venus comptent en totalité, les sièges suspendus ne comptent pas, ce qui donne 600 ÷ 11 ≈ 54,5 jours sur les deux frises

Le calendrier

Si la file ne se vide jamais et que personne ne part, les nouveaux venus arrivent comme suit :

Nouveau venuArrive vers
1erle jour 7
2ele jour 61,5
7ele jour 278
11ele jour 408

Cela fait 9 nouveaux venus la première année, 25 à la fin de la deuxième, 54 au bout de 3 ans et environ 155 au bout de 5 ans. À partir de 86 sièges comptés, 600 ÷ 86 est inférieur à 7 jours, et le minimum prend le relais : les admissions deviennent hebdomadaires à partir du 77e nouveau venu environ, quelque 3,5 ans après la genèse. Un candidat qui remporterait absolument toutes les admissions ne détiendrait son 12e siège, de quoi dépasser en nombre les 11 sièges de genèse, que vers le jour 437.

Les nouveaux venus sur cinq ans depuis la genèse : 9 après la 1re année, 25 après la 2e, 54 après la 3e, environ 155 après la 5e, hebdomadaires à partir d’environ 3,5 ans
Les nouveaux venus sur cinq ans depuis la genèse : 9 après la 1re année, 25 après la 2e, 54 après la 3e, environ 155 après la 5e, hebdomadaires à partir d’environ 3,5 ans

Tant que le terme de base décide, le registre croît d’une fraction fixe par unité de temps, car chaque admission ajoute un siège et le délai est la base divisée par le nombre de sièges. Doubler le registre prend donc environ base × ln 2, soit à peu près 416 jours sur le mainnet, quelle que soit sa taille.

Cas particuliers

  • Un petit registre. Tant que le nombre de nœuds actifs reste inférieur à min_registry_size (7 sur le mainnet), le délai maximal est plafonné à 7 jours.
  • Après une longue interruption, la minuterie admet un nœud, puis reprend sa cadence normale.
  • Le devnet, la chaîne de développement, utilise la même formule avec une base de 180 secondes, un minimum de 60 secondes et un maximum de 300 secondes : ses admissions sont donc espacées de quelques minutes.

Toutes les données d’entrée sont sur la chaîne, si bien que chacun peut recalculer la date de la prochaine admission.

Voir aussi