Takamaka, una blockchain interamente costruita su Java

13.08.20

Takamaka ha scelto il linguaggio Java per programmare l’intera infrastruttura della blockchain: dal nodo ai contratti intelligenti l’unica cosa da sapere è Java.

Grazie alla sua usabilità e alla familiarità con il codice d’uso, Java è un linguaggio amichevole e l’approccio per chi avvia idee e progetti in blockchain è accessibile alla maggior parte degli sviluppatori e delle aziende.

Giovanni Antino, CTO di Takamaka, spiega perchè Takamaka è un’infrastruttura blockchain totalmente sviluppata in Java.

“Java è il linguaggio di programmazione creato da Sun Microsystems nel 1995 che si assicura, secondo GitHub, il secondo posto nel podio dei migliori linguaggi di programmazione del 2020”.

Considerato uno dei linguaggi più stabili, completi ed affidabili per costruire sistemi complessi. Una delle peculiarità del linguaggio della Sun Microsystems è che una volta scritto il codice, questo può essere eseguito senza necessità di ricompilazione: Java è un linguaggio indipendente dalla piattaforma su cui gira”. Dice ancora Antino, CTO in Takamaka.io.

Considerando le sue caratteristiche e la sua popolarità — vi sono circa 9 milioni di sviluppatori Java in tutto il mondo — Java è stato utilizzato anche nel settore blockchain per la programmazione e lo sviluppo dell’infrastruttura peer-to-peer. 

Una blockchain interamente costruita su questo linguaggio è Takamaka, piattaforma di terza generazione che consente la gestione simultanea di due monete digitali: il token verde (TKG) e il token rosso (TKR).

Come spiegato sul sito ufficiale del progetto (Takamaka.io), Takamaka è una blockchain Java Full Stack. Questo indica che Java è l’unico codice utilizzato per la programmazione e l’amministrazione dell’intera infrastruttura: dalla gestione dei nodi agli smart contract.

Un progetto creato su Java si inserisce all’interno dell’ecosistema senza impattare il workflow esistente. Questo accade poiché Java è un linguaggio di programmazione indipendente rispetto alla piattaforma su cui viene costruito. Inoltre, Java si inserisce perfettamente all’interno di ogni ambiente aziendale, si pensi che questo è uno dei primi linguaggi a cui le aziende dedicano le prime ore di formazione dei loro dipendenti.

Il team sta progettando la creazione di un portale dedicato a sviluppatori e programmatori, per la raccolta e l’organizzazione di materiale informativo come tutorial di sviluppo, documentazione e guide all’integrazione. Nella sezione “Documentazione” del sito (https://takamaka.dev/) è possibile vedere un’anteprima del portale.

Open Source

La blockchain Takamaka è stata progettata per diventare completamente open source. A partire dall’inizio dei lavori, nel 2018 stiamo progressivamente rendendo di pubblico dominio la documentazione, le specifiche e i core software.

Questo processo ci porterà, per la fine dell’anno corrente, a rilasciare sotto licenza open source, il codice dei componenti principali della blockchain:

  • nodo

  • wallet pc

  • api

    Per quanto riguarda i wallet app questi sono soggetti ad alcune restrizioni di licenza imposte dallo store di pubblicazione (Google Play per android e App Store per IOS).  Le correnti restrizioni di accesso al sorgente delle applicazioni sono dovute al processo di revisione e bug fixing necessari ad innalzare il livello di sicurezza delle componenti core

Open standard

La firma delle transazioni, la verifica di integrità, e la firma dei blocchi sono tutte basate su standard pubblici e implementate a partire da librerie open source. Per il server core sono state impiegate le Bouncy Castle Crypto APIs

https://www.bouncycastle.org/ 

Come algoritmi di firma:

  • SHA3 (512, 384, 256)

  • SHAKE

  • RIPEMD-160

L’intera specifica degli standard utilizzati e la loro documentazione può essere consultata a questo indirizzo:

https://www.bouncycastle.org/specifications.html
 

Facilità di integrazione

I server che compongono la rete esportano le API REST native per ridurre al minimo il lavoro di integrazione delle applicazioni che devono essere integrate.

L’intera API è disponibile a questo indirizzo: https://takamaka.dev/docs/ApiNode

White-Label

La natura aperta del network e la sua progettazione inclusiva garantiscono a priori la non esclusione un operatore dall’uso del network pubblico. I componenti core sono tutti scritti in Java e non sono legato ad alcun particolare IDE.

Con il rilascio della versione open source completa sarà possibile modificare in modo completo e radicale l’interfaccia dei componenti per poterli adattare ai propri casi d’uso sostituendo anche il brand Takamaka.io
 

Smart Contract

Gli smart contract sono stati costruiti in modo da essere slegati dal layer di generazione dei blocchi e non dover rispettare i constrains temporali estremamente stretti del livello base della blockchain. In questo modo è possibile richiedere esecuzioni estremamente complesse ed implementare logiche avanzate.
 

Per quanto riguarda i tempi di esecuzione medi i nodi sono incentivati ad eseguire il più rapidamente possibile un contratto e ad ottimizzare le chiamate.

Il protocollo di esecuzione smart contract  costituito dai seguenti step:

  1. raggruppamento delle chiamate a smart contract in un’unica transazione di request

  2. inclusione della trnsazione di request nel blocco

  3. validazione da parte della maggioranza relativa dei nodi:
    non è necessario attendere che tutti votino, una volta che il voto non è più ribaltabile (es. 50%+1), tutti gli smat-contract del blocco sono considerati risolti e i risultati pubblicati.

Questo meccanismo premia solo i nodi più veloci e non chi submitta un voto dopo il raggiungimento del quorum.
 

Gli smart contract sono eseguiti in modo asincrono su thread separate dal processo principale.

Tutto questo serve a ottimizzare i tempi medi di esecuzione e inquadrarli in una finestra di 2 o 3 blocchi (tra 1 minuto e 1 minuto e 30).
 

Per gli sviluppatori

Stiamo lavorando alla creazione di un portale dedicato alla raccolta e organizzazione di:

  • tutorial per lo sviluppo

  • documentazione

  • guide all’integrazione

https://takamaka.dev/

in questa sezione saranno caricate le guide per l’avvio e il test delle applicazioni sviluppate

es. https://takamaka.dev/docs/TakamakaSimpleWallet

Per maggiori informazioni su come sviluppare una blockchain utilizzando Java, si può contattare il team al seguente indirizzo: info@takamaka.io

Visita e incontra la community

Telegram: https://t.me/takamaka_io_ita
Facebook: https://www.facebook.com/Takamaka.io
Twitter: https://www.facebook.com/Takamaka.io
Medium: https://medium.com/takamaka