Il Blog di Lorenzo Vainigli

Una piccola blockchain in Erlang

8 Giugno 2020
Progetti Programmazione
1 minuto    21

This post is available in English

Erlang è uno dei linguaggi di programmazione funzionale che permette di costruire programmi concorrenti in modo abbastanza semplice; il suo paradigma basato su attori offre primitive per creare processi e farli comunicare tra loro in un modo che altri linguaggi non mettono a disposizione.

Un’altra peculiarità di Erlang, forse la più importante, è la possibilità di aggiornare il codice di un programma senza dover interrompere la sua esecuzione. Qui si trova una spiegazione di questa funzionalità.

Tra i software scritti in Erlang troviamo WhatsApp.

Una blockchain, parola molto in voga in questi anni, è una struttura dati che pone delle garanzie sull’autenticità dei dati che contiene. Infatti, una blockchain è una catena di blocchi di lunghezza variabile: si possono aggiungere blocchi solo in testa (o solo in coda) alla catena ma una volta aggiunti non possono essere più modificati, ma solo letti.

Durante il mio percorso universitario mi sono trovato a dover implementare una blockchain in Erlang. In questo caso si tratta di una blockchain distribuita su più nodi in una rete, quindi sono stati implementati algoritmi per lo scambio di informazioni tra i nodi (gossiping) e per la risoluzione di fork della catena.
L’intero codice del progetto, insieme ad una documentazione sul suo funzionamento, è disponibile in questa repository su GitHub.

Ringrazio il mio collega Lorenzo per la collaborazione nella realizzazione di questo progetto.

Lorenzo Vainigli

Appassionato fin da piccolo di computer, tecnologia e informatica. Sono laureato in Informatica all'Università di Bologna e adesso sto studiando per conseguire la laurea magistrale. Ogni tanto mi piace mettere in pratica le mie conoscenze creando qualcosa di nuovo. Qui racconto un po' di me.