ZeroNet, Web Decentralizzato con BitTorrent

INTRODUZIONE

Erano gli anni della guerra fredda e gli Stati Uniti crearono una rete militare chiamata ARPANET che doveva assicurare la trasmissione di informazioni in caso di attacco nucleare.
Finita la guerra fredda, ARPANET era una rete funzionante e si dimostrò utile per le comunicazioni tra università americane. Era appena nato internet!

Fin dagli anni 60 ai giorni nostri la rete ha sempre funzionato con un paradigma client / server.

Adesso con l'avvento di strutture decentralizzate (prima fra tutti la rete del Dark Web Tor) si è pensato di spostare questo paradigma anche per i siti internet.

Oggi vi voglio far conoscere un progetto avviato e funzionante che sfrutta la rete BitTorrent per funzionare. Il progetto si chiama ZeroNet

Come specificato precedentemente un sito internet risiede in un server e tutti noi, attraverso i nostri browser, accediamo ai contenuti (siamo appunto client)

Per rendere però la struttura decentralizzata occorre essere sia client che server nello stesso tempo e visitando i vari siti internet all'interno della rete ZeroNet non facciamo altro che incrementare la decentralizzazione perchè anche noi scaricheremo i contenuti del sito e faremo da server verso altri peers (nodi).

INSTALLAZIONE

Per installare ZeroNet occorre seguire i passi descritti nella pagina ufficiale. Io per questo articolo seguirò i passi per la distribuzione Linux Ubuntu / Debian

    // aggiorno la lista dei software installabili nel mio sistema
    $  sudo apt-get update
    // installo due software essenziali per ZeroNet
    $  sudo apt-get install  msgpack-python python-gevent
    // scarico l'ultimo sorgente
    $  wget https://github.com/HelloZeroNet/ZeroNet/archive/master.tar.gz
    // scompatto il file
    $  tar xvpfz master.tar.gz
    // entro nella cartella creata al momento dell'estrazione dei file
    $ cd ZeroNet-master
    // avvio ZeroNet
    $ python2 zeronet.py
 
Dopo un paio di secondi potete aprire il browser al sito http://127.0.0.1:43110 e dovrebbe spuntare una schermata del genere


PUBBLICHIAMO UN SITO

Proviamo a pubblicare un contenuto all'interno della rete ZeroNet.

Come prima cosa occorre creare la coppia di chiave pub/priv per pubblicare i contenuti

zeronet.py siteCreate

Il risultato di questo comando è il seguente (ho nascosto la priv key)


Come vedete è stato creato un sito di default all'interno della cartella data/12E7445ubTVAMe79pdcEWMhPHrjb42w8vY

(dove 12E7445ubTVAMe79pdcEWMhPHrjb42w8vY corrisponde alla mia chiave pubblica)

Aprendo il browser all'indirizzo
http://127.0.0.1:43110/12E7445ubTVAMe79pdcEWMhPHrjb42w8vY 
potrò vedere il mio sito autogenerato

E se volessi modificarlo?

Gli step da effettuare sono semplici:

Entro nella cartella, modifico il file html (aggiungendo pure un immagine png)



Firmo il contenuto con il comando

zeronet.py siteSign 12E7445ubTVAMe79pdcEWMhPHrjb42w8vY 

E dopo aver inserito la mia private key il gioco è fatto!


CONCLUSIONI

Sfruttando la rete peer to peer di BitTorrent il principio che sta alla base è molto semplice:

  • Tutti i siti internet all'interno di ZeroNet saranno sempre vivi, gratis, fin quando ci sarà almeno un peer che conterrà il sito.
  • La velocità di navigazione è determinata al peer collegato quindi può essere immediata o molto lenta.

Commenti

Post popolari in questo blog

Hadoop, how to create a single node cluster using docker

Apache Spark - Try it using docker!

Hyperledger composer - Try it using bluemix