Takamaka decided to utilize Java as the main “language” to program the entire blockchain infrastructure: from nodes to smart contracts the only thing you need to know is Java.
Thanks to its accessibility and adaptability, Java is a friendly language and easily approachable by both developers and companies that aim to develop new ideas and projects on blockchain.
Giovanni Antino, CTO of Takamaka, explains why Takamaka is a blockchain infrastructure fully developed in Java.
“Java is the programming language created by Sun Microsystems in 1995 which, according to GitHub, ranks second among all the best programming languages of 2020”.
“Considered one of the most stable, comprehensive and reliable languages for building complex systems. One of the peculiarities of the Sun Microsystems language is that once the code is written, it can be executed without the need of recompilation: Java is a language independent from the platform on which it runs”. Says Antino again, CTO in Takamaka.io,
Considering its features and popularity – there are about 9 million Java developers worldwide – Java has also been used in the blockchain industry for programming and development of peer-to-peer infrastructure.
In addition to being entirely built on this language, Takamaka is a third generation platform that allows the simultaneous management of two digital currencies: the green token (TKG) and the red token (TKR).
As explained above and on the official project website (Takamaka.io), Takamaka is a Java Full Stack blockchain. This indicates that Java is the only code used for programming and administration of the entire infrastructure, from node management to smart contracts.
A project created on Java fits into any ecosystems without impacting the existing workflow. In addition, Java fits perfectly into any corporate environment, since it’s one of the first languages that IT and Business companies require from their employees.
The team is planning to create a website dedicated to developers and programmers, in order to collect in one place all the information materials regarding Takamaka such as: tutorials, documentation and integration guides. The “Documentation” and “API Node” sections of the site (https://takamaka.dev/) are a preview of how the project will look once completed.
The Takamaka blockchain is designed to become completely open source. Since the beginning of the project, in 2018, we are progressively making the documentation, specifications and software cores publicly available.
This process will lead us, by the end of this year, to release the code of the main components of the blockchain under an open source license:
- wallet pc
Regarding the wallet apps, these are subject to certain licensing restrictions imposed by the publishing store (Google Play for android and App Store for IOS).
The current restrictions on access to the source of the apps are due to the revision and bug fixing process necessary to increase the security level of the core components.
Transaction signing, integrity verification, and block signing are all based on public standards and implemented from open source libraries.
For the core server the Bouncy Castle Crypto APIs were used
- ED25519: https://tools.ietf.org/html/rfc8032
- QTESLA (variant qTESLA-P-I): https://qtesla.org/
- SHA3 (512, 384, 256)
The entire specification of the standards used and their documentation can be consulted at this address:
Ease of integration
The servers that make up the network export native REST APIs to minimize integration work for the apps that need to integrate.
The entire API are available at this address:
The open nature of the network and its inclusive design guarantee that an operator will never be excluded from using the public network.
The core components are all written in Java and are not tied to any particular IDE.
With the release of the full open source version it will be possible to completely and radically modify the interface of the components in order to adapt them to your own use cases also replacing the Takamaka.io brand.
The smart contracts have been built in such a way as to be disconnected from the block generation layer and not have to comply with the extremely tight time constraints of the blockchain base layer.
In this way it is possible to request extremely complex executions and implement advanced logic.
As far as average execution times are concerned, nodes are encouraged to execute a contract as quickly as possible and to optimize calls.
The smart contract execution protocol consists of the following steps:
- grouping smart contract calls into a single request transaction
- inclusion of requests transaction in the block
- validation by the relative majority of nodes: it is not necessary to wait for everyone to vote, once the vote is no longer overturned (e.g. 50%+1), all smart-contracts of the block are considered resolved and the results published.
This mechanism only rewards the fastest nodes and not those who submit a vote after the quorum is reached.
Smart contracts are executed asynchronously on separate threads from the main process.
All this serves to optimize the average execution time and frame them in a window of 2 or 3 blocks (between 1 minute and 1 minute and 30).
We are working on the creation of a portal dedicated to the collection and organization of:
- development tutorials
- guides to integration
For more information on how to develop a blockchain using Java, you can contact the team at the following address: firstname.lastname@example.org
Visit and meet the community
Resta aggiornato con la Newsletter Settimanale
Independent researcher and consultant, crypto activist.