Wiki di ZooBC
Proof of Participation

Turni mancati, sospensione ed espulsione

Un seggio nel registro dei nodi si mantiene facendo il lavoro. Un nodo estratto per produrre un blocco che non lo consegna costa alla catena 15 secondi e conta un turno mancato. Ogni turno saltato avvia anche un orologio: il nodo è mancante fino al suo prossimo blocco, non guadagna nulla e perde punteggio di partecipazione. Quattro turni mancati di fila lo tolgono dall'estrazione (sospensione), e un punteggio pari a zero gli toglie il seggio (espulsione). Questa pagina descrive questo percorso, così come funziona dalla versione 0.5.8.

Turni mancati

Quando viene prodotto un blocco, ogni nodo che era stato estratto per un round precedente di quella altezza e non ha prodotto è un produttore saltato e conta un turno mancato. Il nodo che ha prodotto il blocco vede azzerato il proprio contatore dei turni mancati.

Il motivo non conta. Un nodo che era offline, uno che è stato troppo lento e uno che era online ma ha trattenuto il blocco vengono trattati allo stesso modo. Un turno saltato è un turno saltato. (Trattenere un blocco è anche l'unico modo con cui un produttore potrebbe tentare di influenzare il seed; vedi seed del blocco (VRF).)

Mancante: nessun reddito, punteggio in calo

Da qualsiasi turno saltato fino al suo prossimo blocco, un nodo è mancante. Finché è mancante:

  • non guadagna nulla: nessun biglietto della lotteria coinbase, nessuna quota delle commissioni e nessuna quota di longevità;
  • il suo punteggio di partecipazione scende di 5 punti (su 100) per unità, distribuiti uniformemente sui blocchi dell'unità.

L'unità è max(n, 2.880 blocchi), dove n è il numero di nodi selezionabili. Sotto i 2.880 nodi l'unità è di 2.880 blocchi, 12 ore. In un registro più grande l'unità cresce con n, perché il turno di ciascun nodo torna solo circa una volta ogni n blocchi. Su devnet il minimo dell'unità è di 120 blocchi (30 minuti), quindi lì l'intero percorso è 24 volte più veloce.

Le ricevute che il nodo firma e un ping (descritto più avanti) non chiudono lo stato di mancante. Lo chiude solo il suo prossimo blocco. Così un nodo che salta un turno e produce presto il suo blocco successivo perde un po' di reddito e una briciola di punteggio; un nodo che resta assente continua a perdere.

Sospensione

Al quarto turno mancato di fila, un nodo viene sospeso:

  • esce dall'estrazione dei produttori, così i suoi turni smettono di costare un round a tutti;
  • mantiene il suo seggio nel registro, ma conta come mancante, quindi non guadagna nulla e il suo punteggio continua a scendere;
  • esce dal conteggio dei seggi del ritmo di ammissione e da ogni conteggio dei due terzi, tranne la lista dei firmatari della catena spine (vedi regole dei due terzi).

Una breve assenza non sospende mai un nodo: se ha prodotto un proprio blocco negli ultimi 20 blocchi, un quarto turno mancato non lo sospende (il turno mancato viene comunque conteggiato).

Per tornare, il software di un nodo sospeso invia un ping: un'attestazione di attività dalla chiave del nodo stesso, con una commissione pari a 0, al massimo una per finestra di 120 blocchi, valida solo se inviata da un nodo sospeso. È una transazione QueueAttendance (tipo 59), lo stesso tipo che un nodo in coda invia per mostrare di essere online. Il ping riporta il nodo nell'estrazione in prova. Non cancella mai i turni mancati né ferma la perdita di punteggio; questo avviene solo quando il nodo produce un blocco a uno dei suoi turni successivi.

Diagramma di stato: un nodo attivo viene sospeso al quarto turno mancato di fila; un ping lo rimette nell'estrazione in prova; un suo blocco lo rende di nuovo attivo; dalla sospensione o dalla prova, un punteggio pari a zero lo espelle.
Diagramma di stato: un nodo attivo viene sospeso al quarto turno mancato di fila; un ping lo rimette nell'estrazione in prova; un suo blocco lo rende di nuovo attivo; dalla sospensione o dalla prova, un punteggio pari a zero lo espelle.

Espulsione

Quando il punteggio di un nodo arriva a zero, il nodo viene espulso. Il suo seggio si chiude, il 90 % del suo stake bloccato torna al proprietario e il 10 % va al pool di longevità (ZBC non viene mai bruciato; vedi ZBC non viene mai bruciato). L'espulsione non lascia mai meno di tre nodi attivi; quando si applica questo minimo, è l'«ultima volta visto» a decidere chi viene risparmiato per primo. Una ricevuta firmata dal nodo che compare in un blocco lo segna come visto; non muove nient'altro che questo segno di «ultima volta visto».

Ogni nodo parte dal 20 %, quindi il tempo per cui un nodo silenzioso resiste dipende dal suo punteggio nel momento in cui tace:

Punteggio quando il nodo smette di rispondereSotto i 2.880 nodi5.760 nodi10.000 nodi
20 % (il punteggio iniziale)2 giorni4 giorni6,9 giorni
60 %6 giorni12 giorni20,8 giorni
100 %10 giorni20 giorni34,7 giorni

Risalire è tre volte più lento che scendere: sotto i 2.880 nodi, un nodo che produce tutti i suoi blocchi con le relative ricevute passa da 0 a 100 % in 30 giorni, e dal 20 % al 100 % in 24. La fiducia si guadagna lentamente e si perde in fretta.

Punteggio in funzione dei giorni sotto i 2.880 nodi: i nodi silenziosi scendono da 100, 60 e 20 % a zero in 10, 6 e 2 giorni; un nodo che lavora sale da 0 a 100 % in 30 giorni.
Punteggio in funzione dei giorni sotto i 2.880 nodi: i nodi silenziosi scendono da 100, 60 e 20 % a zero in 10, 6 e 2 giorni; un nodo che lavora sale da 0 a 100 % in 30 giorni.

Regole collegate

  • Un proprietario che rimuove un nodo mentre è mancante o sospeso perde il 10 % dello stake (vedi uscire dal registro).
  • Un nuovo nodo non guadagna nulla finché non è maturo: 4 unità dopo l'ammissione e un blocco proprio (vedi maturità e guadagni).
  • Una doppia firma dimostrata conta come turno mancato e rende il produttore mancante fino al suo prossimo blocco (vedi doppia firma (equivocazione)).
  • Ogni numero di questo percorso (i 5 punti, l'unità, il punteggio iniziale) è un parametro genesi della catena.

Vedi anche