Translate

domenica 28 ottobre 2018

BLOCKCHAIN - SISTEMI DISTRIBUITI, IL CONSENSO DI RAFT Part.4

Alla ricerca di un comprensibile algoritmo di consenso.

Raft è un protocollo per implementare il consenso distribuito.


Il consenso di Raft, è un algoritmo di consenso progettato appositamente per essere facile da capire, ( più facile per certi aspetti di quello di PAXOS ) e funzionale al suo scopo. Questo protocollo scompone il codice in sottoproblemi indipendenti tra loro e affronta ogni “pezzo” singolarmente.

Lo scopo principale di Raft è quello di rendere il consenso disponibile ad un pubblico sempre più vasto e quest’ultimo successivamente sarà in grado di sviluppare nuovi sistemi basati sul consenso.



Ogni istanza di Raft ha un leader eletto, che comunica direttamente con il cliente.

> Il leader è responsabile  dell'invio di messaggi ad altri nodi all'interno il cluster e per il mantenimento della replica del registro e di tutto ciò che accade.
> Il leader accetta una richiesta del client, quindi supervisiona tutti gli altri nodi per accertarsi che anche loro hanno seguito la richiesta; e quindi il log di quella richiesta viene replicato.
> Il leader guida l'intero consenso fino a quando fallisce o si ferma, nel qual caso un nuovo leader prende il suo posto.

In questi termini l'algoritmo di consenso procede in parziale sincronia.

Il leader ha il compito di inviare messaggi "heartbeat" ad altri nodi, dicendo a tutti che è online.
Questi "heartbeat"  vengono inviati a intervalli regolari - come un vero e proprio battito cardiaco.
Qualora i nodi non sentono il battito cardiaco, potrebbero desumere che che il leader è morto o fallito, fermato, o si è schiantato - e quinid loro iniziano un nuovo ciclo elettorale.

Questo coinvolge tutti i nodi che iniziano un timer interno, a partire da quando lo realizzano non ricevono più heartbea.

Ora per capire davvero bene come funziona il consenso di RAFT, ti consigli odi andare alla seguente pagina:  http://thesecretlivesofdata.com/raft/, dove troverai un esempio davvero esaustivo per capire esattamente come funziona il consenso di RAFT.

Nota dell'autore. Se sei arrivato fino a qui, grazie ! Se vuoi supportare questo documento ( con note e / o miglioramenti ) oppure mi vuoi suggerire errori e/o omissioni, aggiunte da fare, ti invito a lasciare un commento ed una nota di miglioramento, attraverso l'apposito campo " commenti " .

Ti ringrazio.

Write By     Andrea Belvedere
Follow me. https://twitter.com/AndreaBelvedere