• Marco Paolini

AstraKode Blockchain, la nuova piattaforma blockchain intuitiva e personalizzabile

Il 31 Ottobre 2021 la creatura di Satoshi Nakamoto compirà il suo tredicesimo compleanno. Sebbene raggiungerà a breve l'età da teenager, la blockchain incontra tuttora una certa difficoltà connessa al suo utilizzo, con notevoli ripercussioni rispetto ad un'adozione che continua a risultare lenta e limitata. L'idea alla base di AstraKode Blockchain (AKB) nasce proprio da tale necessità.


Una tecnologia complessa e non ancora matura

I motivi sono molteplici ed eterogenei, già ampiamente indagati e discussi all'interno del web (noi ne abbiamo parlato in maniera specifica nell'articolo "Barriere all'adozione della blockchain: il low-code come soluzione"). Un nostro sondaggio effettuato recentemente su un campione di 133 esperti in materia di blockchain ha confermato le già note barriere alla sua adozione, in particolare:

  • stack tecnologico molto ampio;

  • scarsità di risorse documentative;

  • difficoltà legate alla configurazione di un network;

  • tecnologia concettualmente complessa.

Analizzando l'"Hype Cycle for Blockchain Business" stilato da Gartner nel 2019, è possibile rendersi immediatamente conto che tra il 2020 e il 2030 attraverseremo le due fasi maggiormente profittevoli del ciclo di vita di una innovazione tecnologica (illustrato dalla c.d. curva a campana di Rogers, sulla destra), toccando quindi la parte più alta della curva.

Nell'arco del prossimo decennio la blockchain raggiungerà lo stadio di maturità, consentendole un'ampia adozione, se non capillare, all'interno di numerosi settori. Sebbene la previsione firmata Gartner scaturisce da studi e calcoli molto accurati, si tratta pur sempre di ipotesi. Non tanto relative al raggiungimento di un'adozione di massa (anche noi siamo convinti che prima o poi avverrà) ma più che altro ai tempi in cui questa potrà concretizzarsi. Come già affermato le barriere sono numerose... In che modo, allora, è possibile ridurle accelerando contemporaneamente la diffusione della blockchain?


AstraKode Blockchain, o semplicemente "AKB"



AKB è una soluzione PaaS (Platform as a Service) attraverso la quale è possibile progettare e sviluppare reti blockchain e smart contract in modo semplice e rapido grazie ad un approccio low-code. Il principale obiettivo della piattaforma è quello di facilitare la realizzazione di soluzioni blockchain di qualsiasi livello, in particolare enterprise, fornendo strumenti in grado di alleggerire la complessità insita nei tre meccanismi principali di tale processo: progettazione del network, sviluppo di smart contract e successiva distribuzione. Strumenti quali:

  • Network Composer: ambiente di sviluppo visivo tramite il quale è possibile progettare e personalizzare una rete blockchain.

  • Smart Contracts IDE: ambiente di sviluppo visivo dedicato agli smart contract, finalizzato a impostarne la logica (funzionalità non ancora operativa). L'approccio low-code permette ad entrambi gli ambienti di sviluppo di essere dotati di elementi grafici configurabili e di processi guidati, in grado di astrarre e automatizzare molti aspetti complessi legati alla programmazione tradizionale, come l'autodocumentazione, il monitoraggio e la validazione del progetto blockchain.

  • Cloud deployment: ambiente dedicato all'integrazione con i principali fornitori di servizi cloud per agevolare l'implementazione dei progetti blockchain creati con AKB.

  • Community integrata: attraverso questo utile strumento l'utente ha la possibilità di partecipare alla discussione sul progetto, chiedere supporto ed accedere a preziosi contenuti di apprendimento, riguardo sia la piattaforma che la tecnologia stessa, come tutorial, articoli tecnici e molto altro. In questo modo anche gli utenti meno esperti o semplicemente appassionati di questa tecnologia, e non solo gli sviluppatori professionisti, possono dar vita e coltivare la propria soluzione blockchain.

Le potenzialità della piattaforma sono davvero alte. Per molti versi (come illustrato in questo articolo) AKB può essere considerato un successore del già noto "Composer", appartenente alla famiglia Hyperledger, del quale ne condivide anzitutto la tecnologia (per le versioni iniziali sarà disponibile solo Fabric, ma prevediamo di includere in futuro altre implementazioni blockchain popolari, come Corda e Quorum). Attualmente, infatti, è stata lanciata solo la versione alpha di AstraKode Blockchain, denominata "Moon", e di conseguenza molte delle features e strumenti sovracitati vedranno luce solamente nei prossimi mesi. Diamo un'occhiata più da vicino alla piattaforma, cercando di esplorare gli aspetti e le funzionalità significative.


Allacciate le cinture, si parte per il tour virtuale!

Il primo passo da compiere è sicuramente quello della registrazione del proprio account su Moon, che verrà convalidato tramite l'inserimento di un codice numerico.

Passiamo ora ad analizzare singolarmente le funzionalità chiave offerte da AKB.


Community

Ultimata la registrazione viene inviata all'utente un'email di benvenuto, informandolo dell'automatica generazione di un secondo account, parallelo, sulla piattaforma della community offerta da Tribe (le credenziali sono le medesime). In questo modo è possibile:

  • Pubblicare post. A tal proposito è necessario selezionare il relativo topic di destinazione, come ad esempio "support" se l'utente sta riscontrando delle difficoltà, con la possibilità di citare altri utenti o allegando documenti, video o immagini, come ad esempio lo screenshot del problema in questione.

  • Partecipare a discussioni, commentando o interagendo con i main post di altri utenti.

  • Seguire uno o più topic di interesse. Attualmente i topic esistenti sono: Wiki, Product, Support e Off-Topic. Ognuno di loro è costituito da altri sub-topic che è possibile seguire, come per esempio "Composer" all'interno del topic "Wiki".

  • Accedere a materiale formativo, riguardo la piattaforma o la tecnologia blockchain in generale. Un ottimo esempio sono gli articoli pubblicati mensilmente sul nostro blog, ai quali si può accedere direttamente dalla community tramite il sub-topic appena citato. Un'altra fonte di informazione è la wiki, molto utile soprattutto ai meno esperti oppure ai neofiti della piattaforma i quali potranno essere supportati tramite numerose guide step by step e tutorial.


Uno degli elementi di valore della community risiede nel fatto che è integrata all'interno di AKB. L'utente ha la possibilità di partecipare ed accedere a tutti gli elementi presenti all'interno dei topic direttamente dalla piattaforma blockchain (tra poco vedremo in che modo), in particolare dalla propria homepage. L'homepage può essere raggiunta effettuando semplicemente il login e rappresenta il pannello di controllo dal quale effettuare qualsiasi operazione. Nella colonna di destra (Community feed) troviamo tutti gli elementi della già citata community, suddivisa per topic. Con un semplice click sul titolo in grassetto viene aperta un nuova scheda all'interno del browser, collegando l'utente al relativo post sulla piattaforma Tribe. Cliccando invece sul "+" viene visualizzato il contenuto del post con la possibilità di commentarlo, dando vita ad una discussione.


La colonna di sinistra, in blu, può essere utilizzata per la navigazione all'interno della piattaforma oppure per raggiungere collegamenti esterni, come i siti web AstraKode.tech e Smartshaped.com oppure la community, conducendo l'utente all'interno del subtopic "Feedback", lasciandogli la possibilità di valutare e commentare la piattaforma. Il primo bottone in alto a destra rappresenta il punto di accesso al proprio profilo oppure può essere utilizzato per effettuare il logout, mentre cliccando sull'icona del punto interrogativo verrà avviato un processo guidato di introduzione alla piattaforma, che ne illustrerà le funzionalità di base.


La zona centrale dello schermo è dedicata ai progetti, fornendo nella parte superiore la possibilità di crearne di nuovi, e in quella inferiore una panoramica dei progetti esistenti, visualizzati in piccole schede insieme ad alcune informazioni per meglio identificarli. Cliccando sulla scheda di un progetto esistente sarà possibile visualizzarne una preview maggiormente dettagliata. La metà sinistra della preview mostrerà un'istantanea del layout del progetto in modo da dare all'utente un riferimento visivo. Su quella destra verranno invece mostrate le informazioni principali del progetto, un feed delle attività più recenti (ancora parzialmente in via di implementazione) e la possibilità di aprirlo oppure condividerlo via mail.


La creazione di nuovi progetti consiste invece nella scelta del tipo di progetto che si vuole creare, con il conseguente reindirizzamento verso uno dei due ambienti di sviluppo offerti dalla piattaforma: il Network Composer e lo Smart Contracts IDE. Poiché quest'ultimo, non è ancora operativo, procediamo con l'esplorazione del primo.


Network Composer

Come già accennato in precedenza, il Network Composer è un ambiente di sviluppo che permette di progettare e sviluppare rapidamente e in modo intuitivo uno o più network blockchain, grazie alla componente low-code. In questo modo l'utente è in grado di definire la rete in maniera visiva, semplicemente configurando i vari elementi costitutivi del network. Il primo passo da compiere consiste nella creazione di un nuovo progetto, fornendo un nome, una descrizione e stabilendo la tecnologia di base (attualmente solo Hyperledger Fabric, v 2.2). Successivamente si andranno a configurare le varie organizzazioni per poi creare il/i relativi consorzi, ossia dei cluster di più organizzazioni. A tal proposito basterà cliccare sul simbolo "+", impostando il nome dell'organizzazione, la tipologia e la classe di certificazione.

Le principali categorie di utenze reclutabili all'interno di una rete sono:

  • orderer, i nodi di un'organizzazione di tipo Orderer;

  • peer, i nodi di un'organizzazione di tipo Client;

  • user e admin, ossia utenze associate a persone e non ad elementi fisici del network, rispettivamente utenti e amministratori.

Un'utenza, prima di svolgere una qualsiasi operazione, deve essere autorizzata. In che modo? Autenticando la propria identità tramite certificati appositi (ne esistono due tipologie, TLS e MSP). Entrambe sono fornite dalle c.d. "Certificate Autority", entità preposte al rilascio dei certificati di solito associate ad una specifica organizzazione.

Una volta configurate le varie organizzazioni sarà necessario definire un consorzio, ovvero un'insieme di organizzazioni che hanno la necessità di condurre transazioni. Anche in questo caso basterà cliccare sul tasto "+", fornire un nome e aggiungere due o più delle organizzazioni create in precedenza. A livello di network un consorzio è rappresentato da uno o più canali ("channel"), rappresentati visivamente sul Composer da un rettangolo orizzontale. Un consorzio può essere collegato a n canali. Per definire un canale l'utente dovrà eseguire un doppio click sul corrispondente rettangolo e stabilirne il nome e le organizzazioni che intendono interagire tra loro.


Sulla destra, all'interno della schermata di configurazione di un progetto, è presente la colonna dedicata alla community, già descritta in precedenza, e allo strumento di validazione automatica, che ha la funzione di segnalare eventuali problemi sorti durante la fase di progettazione.


Nel caso sovrastante, la piattaforma blockchain ci sta ricordando che è necessario, una volta configurati i canali, definire i "Peer", ossia i nodi del network, che rappresentano i punti di accesso alla rete da parte delle organizzazioni di tipo Client. Ogni canale ha (solitamente) il proprio libro mastro, o ledger, sul quale vengono registrate le operazioni effettuate dai vari partecipanti. La funzione di un peer è proprio quella di dare la possibilità ad una organizzazione di leggere e scrivere sul ledger, permettendo in questo modo la partecipazione alla rete. Ogni peer è rappresentato da un rombo, del quale bisognerà configurare: - un proprietario, ossia l'organizzazione al quale si riferisce; - il meccanismo di chiamata; - un nome; - la porta e l'indirizzo IP per consentire l'accesso.



L'ultimo step comprende la definizione del c.d. "Ordering Service", il componente che si occupa della definizione dell’ordinamento di un canale. La sua funzione è quella di orchestrare le varie operazioni e viene gestito da un'organizzazione di tipo "Orderer" precedentemente configurata. In altre parole si occupa della gestione di tutte quelle che sono le chiamate che avvengono nel normale funzionamento di una rete, come ad esempio l'approvazione di una transazione. Anche in questo caso sarà necessario impostare alcuni elementi, in particolare: un nome, un'organizzazione di tipo Orderer, una porta e un indirizzo IP. Infine, nella parte inferiore dello schermo è possibile visualizzare un riepilogo dell'intero setting del progetto.



Una volta completata la configurazione di ogni elemento, sarà possibile "generare" il codice sorgente della rete ed effettuare il deployment localmente oppure tramite cloud. La generazione del codice, così come la relativa distribuzione e la possibilità di creare smart contract non sono attualmente fruibili, ma saranno disponibili a breve, entro il 2021 (per ulteriori informazioni consultare la roadmap sul sito web di AstraKode Blockchain).


Conclusioni

Ci teniamo a ricordare che Moon rappresenta la prima versione prototipale della piattaforma blockchain e, come tale, non è ancora in grado di offrire tutte le funzionalità annunciate. Vi invitiamo pertanto a seguire i nostri canali social e visitare la community in modo da poter essere sempre aggiornati sull'evoluzione di AstraKode Blockchain.

Sperando che l'articolo sia stato di vostro gradimento, vi invitiamo a provare la piattaforma e a lasciarci un feedback all'interno dell'apposita sezione della community.