DUP : la notion de fenêtre courante

Je crois que tu es le 1er à poser la question. La fenêtre est donnée par le champ IssuersFrame du document Block présent depuis DUP 0.3, et qui avait pour but de rendre la taille de fenêtre variable, alors qu’elle était fixée à blocksRot auparavant.

Pour faire simple : la fenêtre a une taille initiale de 1. Puis, chaque fois qu’un nouvel émetteur de bloc apparaît dans cette fenêtre, celle-ci grandit de 5 unités en 5 blocs, 1 unité par bloc qui passe. De même, chaque fois qu’un émetteur disparaît de la fenêtre, celle-ci perd 5 unités de taille en 5 blocs.

On a donc une taille de fenêtre qui varie en fonction du nombre d’émetteurs de blocs.

Techniquement, depuis DUP 0.3, les blocs ont ces nouveaux champs :

IssuersFrame: ISSUERS_FRAME
IssuersFrameVar: ISSUERS_FRAME_VAR

A chaque bloc(t), on a IssuersFrame(t) = IssuersFrame(t - 1) + variation. Cette variation dépend uniquement de IssuersFrameVar(t - 1) :

  • si IssuersFrameVar est > 0 : IssuersFrame(t) = IssuersFrame(t - 1) + 1
  • si IssuersFrameVar est < 0 : IssuersFrame(t) = IssuersFrame(t - 1) - 1
  • si IssuersFrameVar est = 0 : IssuersFrame(t) = IssuersFrame(t - 1) + 0

Quant à IssuersFrameVar, c’est la variable tampon du nombre d’unités à impacter sur IssuersFrame qui est donc incrémentée/décrémentée de 5 à chaque bloc émetteur qui apparaît/disparaît.

Exemples :

Block: 1
Issuer: A
IssuersFrame: 1
IssuersFrameVar: 0

Block: 2
Issuer: A
IssuersFrame: 1
IssuersFrameVar: 0

Block: 3
Issuer: B            <-- Nouvel émetteur !
IssuersFrame: 1
IssuersFrameVar: 5   <-- Tampon +5

Block: 4
Issuer: B
IssuersFrame: 2      <-- On incrémente la taille de fenêtre
IssuersFrameVar: 4   <-- On décrémente le tampon

Block: 5
Issuer: A
IssuersFrame: 3
IssuersFrameVar: 3

...

« D’accord, et pourquoi utiliser la valeur “5” pour faire varier la fenêtre ? »

Réponse : j’ai pris ce nombre au hasard, mais le résultat est le suivant : on a en moyenne 5 occasions par membre calculant de réussir à émettre un bloc dans la fenêtre courante. Je n’ai pas pris 1, 2 ou 3 car cela me semble intuitivement trop petit, et je n’ai pas souhaité aller au-delà de 5 car alors chaque nouvel émetteur ajoute une grande inertie.

1 Like