Realizzare servizi Byzantine Fault-Tolerant e Fault-Scalable: protocollo Query/Update (Q/U)

   page       attach   
abstract

In virtù della sua importanza nell’ambito dei sistemi distribuiti, le soluzioni prodotte dalla comunità scientifica al cosiddetto problema del consenso, soprattutto nel contesto dei protocolli Bizantine Fault-Tolerant (BFT), sono numerose e variegate. Con l’avvento della tecnologia delle blockchain e il vasto riscontro che la sta caratterizzando, l’interesse verso questi protocolli si è ulteriormente rinnovato. Sebbene molteplici, non esiste attualmente una soluzione unanimemente individuata come migliore in ogni contesto, quanto piuttosto un insieme di approcci che meglio si adattano ognuno ad esigenze specifiche. Q/U rappresenta una di queste soluzioni, ossia un protocollo client/server per la realizzazione di servizi BFT distribuiti su una rete asincrona attraverso un’interfaccia costituita da operazioni di query e di update, ciascuna delle quali necessita dell’approvazione da parte di un quorum di nodi prima di essere accettata ed eseguita. Individuato dagli autori come alternativa efficiente a protocolli ben più affermati, Q/U si focalizza sulla fault-scalability, ossia la capacità di tollerare un numero crescente di fallimenti senza un significativo decremento delle prestazioni. Oltre che studiare ed approfondire il problema del consenso e gli approcci per affrontarlo nel contesto dei sistemi distribuiti, obiettivo del progetto che questo report accompagna è comprendere e implementare Q/U anche mostrandone il funzionamento mediante la realizzazione di una semplice Replicated State Machine.

outcomes