Interroghiamo lo stato della blockchain con Python

Python Blockchain bitcoin

Iniziamo oggi una serie di articoli che ci porteranno ad imparare come utilizzare Python per visualizzare i dati sulle diverse blockchain.

Si sente parlare sempre più spesso di crittovalute, blockchain, bitcoin, investimenti, trading. La maggior parte delle informazioni che vengono assimilate appaiono pessimistiche, ma questo è dovuto soprattutto alla scarsa informazione associata con tali argomenti.

Lungi dal voler fare una trattazione approfondita dell’argomento, cercheremo con questo articolo (e con i seguenti) di spiegare in qualche modo cosa abbiamo davanti, e come poter interagire con poche righe di Python.

Questo primo articolo sarà necessariamente più teorico, ma alla fine presenterà come sempre un breve listato in Python con il quale potrete sbizzarrirvi a cercare informazioni senza dover necessariamente registrarvi su qualche piattaforma esterna. In altri termini, mostreremo uno dei valori principali dell’adozione di questo sistema, la trasparenza.

Prepariamo il nostro Raspberry PI, quindi, carichiamo Thonny e continuiamo la lettura.

Cos’è una blockchain

Una blockchain è un database distribuito condiviso tra i nodi di una rete di computer. Come database, una blockchain memorizza le informazioni elettronicamente in formato digitale. Le blockchain sono meglio conosciute per il loro ruolo cruciale nei sistemi di criptovaluta, come Bitcoin, per mantenere un registro delle transazioni sicuro e decentralizzato. L’innovazione con una blockchain è che garantisce la fedeltà e la sicurezza di un record di dati e genera fiducia senza la necessità di una terza parte fidata.

Una differenza fondamentale tra un database tipico e una blockchain è come sono strutturati i dati. Una blockchain raccoglie informazioni in gruppi, noti come blocchi, che contengono insiemi di informazioni. I blocchi hanno determinate capacità di archiviazione e, una volta riempiti, vengono chiusi e collegati al blocco precedentemente riempito, formando una catena di dati nota per l’appunto come blockchain. Tutte le nuove informazioni che seguono il blocco appena aggiunto vengono compilate in un nuovo blocco appena formato, che verrà quindi accodato a sua volta alla catena non appena riempito.

A ogni blocco della catena viene assegnato un timestamp esatto quando viene aggiunto alla catena.

Cos’è un exchange

Un exchange (o borsa valori) è un mercato in cui vengono scambiati titoli, materie prime, derivati e altri strumenti finanziari. La funzione principale di un exchange è garantire un commercio equo e ordinato e l’efficiente diffusione delle informazioni sui prezzi per qualsiasi negoziazione di titoli su quel sistema. Un exchange offre pertanto una piattaforma con la quale mettere in collegamento gli investitori.

In ambito crittovalute, un exchange rappresenta uno scambio di criptovalute, o un cambio di valuta digitale. Si tratta di un’attività che consente ai clienti di scambiare criptovalute o valute digitali con altri asset, come denaro fiat convenzionale o altre valute digitali.

Interrogare una blockchain attraverso un exchange

La caratteristica di un exchange digitale consiste nel fornire ai propri clienti una serie di strumenti digitali, che garantiscano l’accesso alle funzioni necessarie per investire sui mercati delle crittovalute.

blockchain python

Dal momento che esistono diverse blockchain, numerosissimi pacchetti per l’investimento e funzionalità critiche legate alla sicurezza, spesso chi entra per la prima volta in questo mercato ricerca sicurezza, garanzie, robustezza prima di scambiare parte dei propri averi in crittovaluta. Gli exchange più importanti forniscono queste caratteristiche, al costo di una minore “libertà di azione” che si esprime di solito in un maggiore controllo delle transazioni ed in una (minima) tassa o fee richiesta per eseguire alcune operazioni.

E poi?

A questo punto scarichiamo la libreria Python ccxt, e iniziamo a divertirci!

Analizziamo il programma.

Nelle prime due righe importiamo il modulo time (ci servirà in futuro per eseguire i calcoli al volo) ed il modulo ccxt, la nostra libreria di interfaccia con le blockchain attraverso exchange.

Procediamo quindi a caricare una lista relativa agli exchange: ciascun elemento complesso conterrà un dizionario con tutte le informazioni estratte da un dato exchange online, necessarie per valutare ed eseguire statistiche e grafici sull’andamento delle nostre crittovalute di riferimento. Lo analizzeremo con cura nel prossimo articolo. Ciò che invece utilizzeremo oggi è il nome dell’exchange, al quale è assegnato il relativo dizionario.

In particolare, il metodo .fetchTicher(‘valuta1/valuta2’)[‘last’] viene richiamato per tutte le coppie di valute che desideriamo controllare all’interno di un exchange, per poi passare all’exchange successivo.

Le righe dalla 15 alla 19 infatti recuperano il valore attuale delle diverse coppia di valute, mentre il ciclo for, impostato alla riga 14, cicla sugli exchange che abbiamo predefinito in riga 5.

La riga 20, infine, si occuperà di formattare correttamente i valori acquisiti da ciascun exchange.

Il risultato è dato dalla seguente tabella, ed è aggiornabile senza problemi attraverso un timer o uno script.

Blockchain exchange python

E’ facile notare come sia semplice parametrizzare il programma per fargli accedere tutti gli exchange che desideriamo, per permetterci di scegliere quale offra le condizioni di investimento migliori. L’unica cosa alla quale occorre porre attenzione è che non tutti gli exchange possiedono tutte le coppie di valute. Nel caso la coppia prescelta non fosse presente nell’oggetto richiamato dall’exchange attraverso il metodo fetch, il programma andrà in errore. Occorrerà quindi scrivere una routine try…except per bloccare l’errore ed avvertire l’utente.

La prossima settimana analizzeremo con più calma cosa contiene esattamente l’oggetto richiesto da ccxt, e come trarne spunto per altre interessanti attività di indagine statistica.

VI aspetto tra sette giorni!

 

Join our groups on Telegram…

… and don’t forget our social channels!

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.