Translate

martedì 30 ottobre 2018

BLOCKCHAIN - CONSENSO FEDERATO Part. 9

In un sistema distribuito, il quorum è un insieme di nodi sufficiente per raggiungere un accordo.

Cosa accadrebbe se non ci fidassimo necessariamente dei nodi nel quorum?
Come potremmo ancora raggiungere il consenso?

Diciamo che fai parte di un sistema distribuito decentralizzato, ma non puoi scegliere ancora di quali nodi fidarti. Come puoi a tu e i tuoi pari raggiungere un consenso senza fare affidamento su un nucleo centrale.

È qui che entra in gioco il concetto di un accordo bizantino federato.

lunedì 29 ottobre 2018

BLOCKCHAIN - CASPER Part. 8

Appunti  ...

Casper vuole essere il successore intenzionale di GHOST.

La transizione della rete Ethereum da PoW a PoS è stata sulla tabella di marcia e nel Libro giallo sin dal lancio del protocollo. Sebbene sia efficace nel raggiungere un consenso decentrato, PoW consuma un'incredibile quantità di energia, non ha finalità economiche e non ha una strategia efficace per resistere ai cartelli.

Eccessivo consumo di energia, problemi di parità di accesso all'hardware di data mining, centralizzazione dei pool di data mining e un mercato emergente di ASIC forniscono ciascuno una motivazione distinta pe migrare alle transizioni il più presto possibile.

Il protocollo GHOST è la soluzione di Ethereum ai suoi tempi di blocco veloci, potrebbe accadere che vi siano validi blocchi  verificati da parte della rete che finiscono per essere scartati perché hanno perso la gara di propagazione.

BLOCKCHAIN- SISTEMI DISTRIBUITI PROOF OF STAKE " Tendermint " Part. 7

appunti  ...

Tendermint è stato il primo meccanismo di consenso Proof-of-Stake basato su BFT, creato da Jae Kwon e la sua squadra nel 2014.

Per dare un po 'di contesto storico, Tendermint portava con sé il rigore accademico di più meccanismi di consenso tradizionali come PBFT, Paxos e Raft in uno spazio che al momento era per lo più dominato da nuovi meccanismi di consenso blockchain, ovvero Proof-of-Work e altri meccanismi di consenso di Nakamoto.

COME FUNZIONA
In Tendermint abbiamo un set di validatori globalmente noto e predefinito. Il Consenso procede in tre turni, e ad ogni round, deve votare più di ⅔ dell'intero set di validatori per il blocco proposto, per procedere al turno successivo.

BLOCKCHAIN - SISTEMI DISTRIBUITI, la differenza tra POW e POS. Part.6


appunti personali ...

E' possibile comprendere sia la Proof of Work e Proof of Stake, semplicemte esaminando quali risorse sono consumate per il manteimento del consenso di rete.

Nella Proof of Work, i minatori hanno il potere di voto che è proporzionale alla quantità di calcolo, e questo corrisponde esattamente al potere che possiedono.



domenica 28 ottobre 2018

BLOCKCHAIN - I SISTEMI DISTRIBUITI, Pratica tolleranza ai guasti bizantini o PBFT Part. 5

nota: abbiamo visto che gli algoritmi di  Paxos e Raft non sono di default tolleranti ai guasti bizantini.

L'algoritmo PBFT gestisce meno di ⅓ errori bizantini, ma alla condizione:  3f + 1 nodi totali
dove f ( errore bizzantino ) 1 ( corrisponde a un NODO ).

L'algoritmo PBFT  è costituito da TRE fasi: Pre - preparazione, Preparazione e Commit
L' algoritmo PBFT inizia quando il client invia una richiesta al nodo primario.

Si ponga l'atenzione sulla seguente condizione, dove ricordando PAXOS era come quando  il Proponente propone nuovi decreti ad altri legislatori del Parlamento Paxos in base alle richieste del popolo.

Nell'esempio che segue il nodo principale è DERRICK

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.

BLOCKCHAIN - I SISTEMI DISTRIBUITI, L'ALGORITMO DI PAXOS Part. 3


Il problema del consenso distribuito

Paxos garantisce che i nodi sceglieranno sempre e solo un singolo valore (quindi garantisce la safety), ma non garantisce che un valore verrà scelto se la maggioranza dei nodi non sono disponibili (progress).


L'algoritmo di PAXOS prende origine dalla storia del parlamento di PAXOS ( Grecia ) 

- Ciascun membro aveva un registro in cui annotare tutte i decreti approvati.
- I decreti approvati erano numerati (in ordine crescente).
- I parlamentari, così come i messaggeri, potevano entrare ed uscire dal parlamento a piacere.
- I messaggeri potevano anche uscire prima di consegnare un messaggio affidatogli, “magari per un viaggio di sei mesi” o “andar via per sempre e il messaggio non veniva consegnato.
- Ma quando in Camera, parlamentari e messaggeri erano dediti al lavoro ed
eseguivano prontamente i loro compiti.
- C’era molto rispetto e fiducia tanto che si tendeva a far passare ogni decreto proposto
- Ogni legislatore di Paxos mantneva un libro mastro, dove registrava tutto ciò che è succedeva

sabato 27 ottobre 2018

BLOCKCHAIN - BYZANTINE FULL TOLLERANCE NEI SISTEMI DISTRIBUITI Part. 2

Il problema del consenso .

La tolleranza è la caratteristica che definisce un sistema che tollera la classe di insuccessi che appartengono al problema dei generali bizantini.

Famoso scritto nel 1982 da Lamport, Shostak e Pease, descrive lo stesso scenario, dove più di due generali devono concordare prima di attaccare il loro nemico comune. La complicazione aggiunta qui è che uno o più generali possono essere dei traditori , nel senso che possono mentire sulla loro scelta (per esempio dicono di essere d'accordo ad attaccare alle 09:00 ma invece non lo fanno).

BLOCKCHAIN - IL CONSENSO DEI SISTEMI DISTRIBUITI Part.1

Per capire la tecnologia blockchain abbiamo bisogno di approfondire il cuore di ciò che sembra blockchain da una prospettiva tecnica: i sistemi distribuiti.

La blockchain per esempio rappresenta un tipo specifico di sistema distribuito...

Quindi la domanda che ti devi fare è: che cos'è un sistema distribuito?

Per iniziare possiamo dire che i sistemi distribuiti contengono due particolari categorie di componenti.

La prima categoria viene definita "nodi", possono assomigliare come concetto ai BITCOIN nella Blockchain, oppure alle CPU nel caso di un Server 

>> I nodi sono pensati per rappresentare macchine o processi separati
     (ES. simile ai core della CPU nel tuo laptop o ai bitcoin nella blockchain ) .

>> La seconda categoria viene definita "trasmissione di messaggi", rappresentati come frecce, o  "spigoli" come vengono chiamati nel contesto di teoria dei grafici.

   Es. il loro scopo è quello di dimostrare che le informazioni possono muoversi tra macchinari.

Domanda >>. "Perché i sistemi distribuiti sono importanti? /   Cosa c'è che non va  in un singolo sistema? " e .. cosa centra la BLOCKCHAIN ?