Takamaka framework Java incluso nel progetto Hotmoka
22.11.21
Takamaka framework Java
Takamaka framework Java per la scrittura di contratti intelligenti, permette ai programmatori di utilizzare un sottoinsieme di Java per scrivere codice che poi può essere installato ed eseguito in blockchain, i programmatori non dovranno mai occuparsi dello stoccaggio di oggetti, ciò sarà (invece) completamente trasparente.
Takamaka è diverso da altri tentativi di utilizzare Java per scrivere SmartContract’s, in cui i programmatori devono utilizzare chiamate di metodo esplicite per rendere persistenti i dati su blockchain.
Scrivere contratti intelligenti in Java implica che i developer’s non debbano imparare un altro linguaggio di programmazione, ma usare invece una piattaforma di sviluppo ben compresa e stabile, insieme a tutti i suoi strumenti moderni.
I programmatori possono utilizzare le funzionalità delle ultime versioni di Java, tuttavia ci sono (come ovvio) limitazioni al tipo di codice che può essere eseguito all’interno di una blockchain. La limitazione più importante è che i programmatori possono chiamare solo una parte dell’enorme libreria Java, il cui comportamento è deterministico e i cui metodi sono garantiti.
Takamaka framework Java incluso nel progetto Hotmoka
Il runtime del linguaggio di programmazione Takamaka è incluso nel progetto Hotmoka, un framework per i nodi collaborativi, il cui obiettivo a lungo termine è unificare il modello di programmazione della blockchain e dell’internet delle cose. Gli aspetti più scientifici di Hotmoka e Takamaka sono stati pubblicati recentemente dal Professor Fausto Spoto a questi Links [Spoto19] [Spoto20] .
Un nodo Hotmoka è un dispositivo che implementa un’interfaccia per eseguire il codice Java in remoto, l’aspetto di assoluto interesse è che il nodo può essere qualsiasi tipo di dispositivo, come un dispositivo di una rete IoT per esempio, ma anche un nodo di una blockchain, da osservare inoltre che i nodi di Hotmoka sono basati su Tendermint.
I jar compilati del progetto Hotmoka e del runtime del linguaggio Takamaka sono disponibili nel repository pubblico di Maven. Quindi, non è necessario scaricare nulla per iniziare a utilizzare i nodi Hotmoka e programmare quei nodi in Takamaka
Takamaka è quindi il linguaggio che può essere utilizzato per scrivere contratti intelligenti per i nodi Hotmoka, pertanto i nodi Hotmoka e il codice Takamaka hanno esattamente la stessa relazione esistente tra i nodi Ethereum e il codice Solidity.
Hotmoka permette di sviluppare smart contract in Java con la libreria di supporto Takamaka, all’interno dell’IDE preferito, il bytecode compilato viene verificato, strumentato e installato nello store dei nodi Hotmoka, mentre il motore Tendermint sottostante fornisce il consenso.
Moka permette di eseguire una grande varietà di operazioni su un nodo Hotmoka.
Si tratta tuttavia di uno strumento tecnico, destinato prevalentemente agli sviluppatori, perchè la maggior parte degli utenti eseguirà solo compiti semplici con un nodo Hotmoka. Mokito (vedi sotto ) è l’app per Android che permette di connettersi a un nodo Hotmoka,visualizzarne il manifest, sfogliare gli oggetti nel suo stato, creare e manipolare account e inviare e ricevere crypto.
VANTAGGI DI JAVA
Come noto il linguaggio Java, fortemente tipato, dissuade da alcuni dei principali attacchi presenti in solidity, semplicemente perchè le vulnerabilità note non possono avere luogo.
IERC721Receiver è l’ interfaccia java costruita in Hotmoka, che non presenta le stesse vulnerabilità di solidity.
A livello puramente implementativo, scaricando il codice sorgente QUI , è già possibile integrare qualunque token Ethereum, migrando lo Smartcontract dalla blockchain di origine, a Hotmoka (TAKAMAKA).
I VANTAGGI DI HOTMOKA
Oracoli ed applicativi che si interfacciano e comunicano con gli SC’s scritti in solidity ed ora migrati in Hotmoka (Takamaka), continueranno a mantenere le stesse funzionalità ed interazioni, mentre l’interfaccia rimane la medesima.
Grazie a questa integrazione sarà possibile la migrazione di contratti solidity in Hotmoka, sfruttando metodi semplici e veloci, altamente affidabili e con minori costi di gas a livello implementativo e funzionale.
CASI D’USO
Come principale caso d’uso si vogliano tenere in considerazione gli attuali contratti NFT, la cui implementazione è per la maggior parte in Solidity, tramite lo standard ERC721. ERC721 è solo un’interfaccia per un contratto distribuito nella blockchain di Ethereum
Grazie all’uso di IERC721Receiver , per la programmazione degli Smartcontract Takamaka, sarà possibile codificare il medesimo contratto NFT in linguaggio Java, ed eseguirlo all’interno della blockchain di Hotmoka (TAKAMAKA).
Approfondisci ai seguenti Link
https://takamaka.io/
https://github.com/Hotmoka/hotmoka
https://mvnrepository.com/artifact/io.hotmoka
GitHub – Hotmoka/hotmoka_tutorial: progetti di esempio dal tutorial su Hotmoka
https://github.com/Hotmoka/hotmoka/blob/master/README.md#hotmoka-nodes
Se vuoi approfondire su “nodi hotmoka e il linguaggio Takamaka per la programmazione di smart contract in Java”, con il corso del professor Fausto Spoto tenuto a Univr, lo puoi scaricare QUI