Pubblicità

Step 2: Come costruire una Blockchain?

Innanzitutto la scelta del Linguaggio di Programmazione è fondamentale. Di norma questi software sono scritti in GO&C++, ma è complesso e io non voglio confondermi e ne confondere voi. Quindi sono indeciso sull’uso di Javascript oppure di Python.

Fra i due io sto per optare su Python solo perché sto notando che possiede più librerie [(ossia pacchetti di strumenti già pronti all’uso con cui posso semplificarmi il lavoro una volta richiamati nello script che andrò a compilare a breve)(e vi mostrerò anche questo)
Più trasparenza di così non saprei..]

Comunque ho deciso, utilizzerò Python.

In ambito comunicazione web. Quindi penso sia logico creare il mio innocuo server web.

Cioè un software che mi permetterà di interfacciarmi con la rete internet. Voi per esempio già questo lo fate perché utilizzate programmi come Chrome, Firefox, Opera, Thor… comunque sono tutti Browser web.

Io creerò il mio. Inizialmente semplice e poi vedremo come ampliarlo.
Apriamo il Block Notes oppure qualsiasi altro programma per scrivere un codice:

Io uso Sublime Test
https://www.sublimetext.com/

…e seguitemi mentre creo un piccolo software che sfrutta il protocollo HTTP:

Ovviamente l’ho dato per scontato ma ho aperto una cartella; ho salvato questo file in .py nominandolo come meglio credevo e adesso sempre nella stessa cartella inserirò un altro file .html che mi permetterà di approcciarmi alla rete.

Sempre per spirito di completezza voglio darvi una spiegazione di ciò che ho scritto:

Intanto provo anche a testare lo script avviando il browser ma come accade sistematicamente …
Le cose non sono così lisce come sembrano. Quindi vedrò un po come risolvere questo intoppo.

Vediamo,provo un’altra forma di approccio:

Per evitare di fare qualche altro errore questa volta ho voluto consultare il sito web: https://www.html.it/

Come vedete questo mi ha permesso di organizzare lo script in un modo più ordinato.
Spiego:
Lo script inizia importando le classi HTTPServer e BaseHTTPRequestHandler dal modulo http.server. Quest’ultimo include anche le funzionalità che, su Python 2, sono state implementate dal modulo SimpleHTTPServer.

Dopo il costrutto import, implementiamo una classe che chiamiamo testHTTPServer_RequestHandler che estende le proprietà della classe BaseHTTPRequestHandler. Quest’ultima è in grado di intercettare tutte le richieste HTTP provenienti dall’esterno, mappandole su alcuni metodi “speciali”.

Nel nostro caso ho implementato ad esempio solo il metodo do_GET(), che viene eseguito tutte le volte che il server riceve una richiesta HTTP di tipo GET. Per rispondere a richieste HTTP di tipo POST ed HEAD sarà necessario implementare rispettivamente i due metodi do_POST() e do_HEAD().

Mi piace questo volervi rendere partecipi delle fasi del mio progetto, come se foste qui accanto a me e come me vi immergete nel suo dietro le quinte. Mi piace perché vi do dimostrazione con i fatti che le mie intenzioni sono buone, sia per interesse mio che vostro. Ho fatto un breve stacco dai concetti tecnici per alleggerire un po questa lettura, ora riprendo con la spiegazione analitica di ciò che sto realizzando.

Analizzando il metodo do_GET()

Ho potuto utilizzare altri costrutti ereditati dalle librerie che importato a pié di script.
Sono: self.send_response(200) che mi permetterà di inserire un testo di risposta nel header alla verifica della corretta esecuzione del server. Ovvio che in questa sezione è
possibile inserire diversi e molteplici Content_Type…Ma ciò che è opportuno non dimenticarsi mai è inserire prima della fine dell’header, il metodo self.end_headers() che di fatti sancirà il termine dell’esecuzione del processo di tutti i vari content_type presenti nell’header.

Infine nella sezione body della nostra interfaccia.html verrà implementato il metodo self.wfile.write() che mi permette di inserire un messaggio, esempio banale il classico Ciao Mondo!

Apro il Browser… faccio qualche prova ma ancora niente. Ancora mi da errore eppure questa volta ho appreso le nozioni dai guru dell’informatica. Il sito HTML.it è il migliore.

Tenace cerco di trovare la soluzione per superare l’ostacolo. Quindi ci andrò per logica:

Quando qualcuno apre il browser per connettersi ad internet di fatti comunica con un’altro computer. In questo caso, però, l’indirizzo ip: http://127.0.0.1 corrisponde all’host del nostro dispositivo. Cioè lo stesso che sto utilizzando adesso per creare il server e scrivere questo articolo. Questo tipo di connessione si chiama Localhost.

AGGIORNAMENTO:
Reduce dei troppi sbattimenti e tentativi non riusciti, non mi sto dando per vinto, no signore. Piuttosto sto varando l’idea di fare le cose bene, partendo dal principio. Ossia, ripassare le nozioni riferite ai Database. Quindi prima di cimentarmi sulla costruzione di un Database Distribuito, nel prossimo step tratterò di SQL.

Se devo fare le cose bene, devo curarne ogni dettaglio e avere coscienza e presa visione di ogni mattone che costituirà la mia Blockchain. …e in più, mi entusiasma il fatto di rendervi partecipi delle mie peripezie così possiate capire quanto impegno sto mettendoci, quanti sacrifici e anche quante batoste. Pertanto procediamo con l’avventura! …e con il prossimo Step:
https://avid3858875.altervista.org/step-3-structured-query-language/

Vai alla barra degli strumenti