La file d’attente
Chaque nouveau nœud attend dans une file d’attente publique entre son enregistrement et son admission. La file décide qui est admis ensuite ; la minuterie d’admission décide quand. L’ordre met en balance l’engagement et la patience : ce qui compte, c’est la mise multipliée par le temps déjà attendu.
L’ordre
Les nœuds en file d’attente sont classés selon leur mise multipliée par le nombre de blocs pendant lesquels ils ont attendu. En cas d’égalité, la hauteur d’enregistrement la plus ancienne l’emporte, puis l’identifiant de nœud le plus bas. Un nœud en file d’attente peut augmenter sa mise à tout moment et conserve l’attente qu’il a accumulée ; l’augmentation ne coûte que les frais de la transaction et exige la même preuve de propriété que l’enregistrement (enregistrer un nœud).
Comme il s’agit d’un produit, pour dépasser quelqu’un qui a attendu dix fois plus longtemps, vous devez bloquer dix fois plus.
Les nœuds en file d’attente n’ont pas de score de participation. Un nœud reçoit le score par défaut de 20 % lorsqu’il est admis, et la minuterie d’admission fait entrer un nœud à la fois, si bien que deux nœuds n’entrent jamais ensemble.
Se manifester : la présence
Un siège est destiné à un nœud qui travaille ; un nœud en file d’attente doit donc montrer qu’il est en ligne une fois dans chaque fenêtre de 5 760 blocs (un jour). Tout signe du nœud sur la chaîne compte, par exemple une attestation qu’il a signée. S’il n’y en a aucun, le logiciel du nœud envoie de lui-même une transaction QueueAttendance (type 59). Ses frais sont prélevés sur la mise, sans jamais la faire passer sous le minimum, et vont au fonds de longévité.
Une fenêtre sans aucun signe remet à zéro l’attente du nœud. Sur toute son attente, un nœud peut manquer l’équivalent d’un cycle d’admission en fenêtres : max(2, délai d’admission maximal ÷ un jour), soit 90 fenêtres sur le mainnet, où le délai maximal est de 90 jours. La 91e fenêtre manquée l’évince de la file. Pour être admis, un nœud doit aussi avoir été présent lors de la dernière fenêtre évaluée.
Quitter la file coûte 10 %
Retirer un nœud en file d’attente coûte 10 % de sa mise, même quand le propriétaire utilise la transaction prévue à cet effet, RemoveNodeRegistration. Une éviction pour défaut de présence coûte les mêmes 10 %. Dans les deux cas, les 90 % restants reviennent au propriétaire (immédiatement après une éviction), et les 10 % vont au fonds de longévité, qui rémunère les nœuds qui travaillent (fonds). Rien n’est brûlé (ZBC n’est jamais brûlé).
Cette pénalité existe à cause du minimum d’entrée. Un nouveau venu doit bloquer au moins la moitié de la mise médiane des nœuds déjà en file d’attente. Sans pénalité de sortie, quelqu’un pourrait placer une grosse mise dans la file pour faire monter ce minimum pour tous les autres, puis la retirer gratuitement.
Quand tous les nœuds actifs sont suspendus
La file sert aussi de réserve. Si tous les nœuds actifs sont suspendus, le nœud en file d’attente le mieux placé qui a été présent peut produire un bloc, et ce bloc l’admet immédiatement. La chaîne peut donc repartir même quand tout le registre est devenu silencieux.
Consulter la file
La file est publique. GET /api/v1/nodes?status=queued liste chaque nœud en file d’attente avec sa mise et sa hauteur d’enregistrement, si bien que n’importe qui peut calculer l’ordre et voir qui est le suivant.