Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Do not change leader when doing reconfiguration

Aperta
#420 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
go

Direzione di ricerca

Inizia tracciando come viene calcolato l'ID del leader a partire dall'ID della view e dal numero di nodi, quindi esamina i metadati della view e i percorsi di riconfigurazione. L'implementazione di questa proposta è completata quando l'identità del leader rimane persistente attraverso le aggiunte o le rimozioni di nodi, avanza in caso di modifiche della view e seleziona il leader successivo quando quello corrente viene rimosso.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement

As the amount of nodes increases, f increases, so the likelihood of having nodes that are unreachable/crashed increases as well.

The leader ID is currently calculated as the index of the node in the position v % n when v is the view ID and n is the node count.
Due to the way we calculate this leader ID, the leader ID might change when we do a reconfiguration that adds or removes nodes.

If we change the leader ID but this node might be offline/unreachable at that time, it means that doing a reconfiguration might cause downtime (view change).

To circumvent this problem, I propose that we persist the leader ID in the view metadata, and:

  • Increment modulo n this leader ID when we do a view change
  • Persist this leader ID, when we do a reconfiguration, unless the leader itself is removed, and in that case we just pick the next leader ID.
Lingua principale
Go
Stelle
110
Fork
40
Merge medio
1g 6h
PR unite (30g)
14

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di hyperledger/SmartBFT

Tutte le issue di hyperledger/SmartBFT

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.