Practical Byzantine Fault Tolerance

   page       attach   
abstract

Il progetto ha lo scopo di studiare l’algoritmo di consenso PBFT (Pratical Byzantine Fault Tolerance), un algoritmo introdotto nel 1999 che garantisce la Byzantine Fault Tolerance, ovvero la capacità di un sistema distribuito di raggiungere il consenso nonostante alcuni suoi nodi siano irraggiungibili, impossibilitati a rispondere o tentino di propagare informazioni errate. I nodi del sistema sono organizzati in sequenza, senza l’ausilio di un cordinatore centrale, e co- municano tramite messaggi adottando un protocollo di comunicazione basato su 3 principali fasi: PREPREPARE, PREPARE e COMMIT. La correttezza di ogni fase del protocollo viene garantita mediante l’utilizzo di Quorum, rappresentati dai vari messaggi scambiati dalle repliche, grazie ai quali per ogni richiesta vengono rilasciati dei certificati che permettono l’avanzamento.

Contestualmente allo studio dell’algoritmo verrà analizzato il meccanismo di Proactive Reco- very dello stesso PBFT, che consente alle repliche attive di innescare proattivamente e periodi- camente dei processi di riavvio al fine di scongiurare o risolvere eventuali failure e recuperare lo stato aggiornato del servizio.

Verrà infine presentato un proof of concept, sviluppato in linguaggio Java ed eseguibile me- diante interfaccia a riga di comando, in grado di replicare il funzionamendo dell’algoritmo nei suoi aspetti di primaria importanza.

outcomes