SmartJ: Java smart contracts for Signum
Signum (previously know as Burstcoin) was the world's first HDD-mined cryptocurrency using an energy efficient and fair Proof-of-Capacity (PoC) consensus algorithm.
It was also the first to implement a turing-complete smart contract system in the form of Automated Transactions (AT), as specified by CIYAM. However, before SmartJ, the creation and deployment of smart contracts required writing (assembler-like) bytecode and testing on-chain, making the development of contracts cumbersome.
This project allows the user to write, debug, and deploy Signum smart contracts relying only on Java. You can use a simple text editor or your preferred IDE. SmartJ consists of the following key components:
- Contract.java: a Java abstract class defining the basic API available for contracts
- Emulator: an emulated blockchain and respective UI
- Compiler: a system to convert Java bytecode into Signum AT bytecode that can run on the Signum blockchain
As any open source project, this is experimental technology. Please carefully inspect your compiled AT contracts and test it exhaustively on the testnet before production.
Sample Contracts
Take a look on the samples source folder.
Using (write your own contract)
Sample application
The easiest way to start with SmartJ is to clone this project and import as an existing gradle project using your preferred IDE. Check the samples source folder and modify existing contracts or create new ones.
Add Signum SmartJ to your gradle project
Add the following to your gradle.build file:
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.signum-network:signum-smartj:-SNAPSHOT'
}
Add Signum SmartJ to your maven project
Add the repository to your configuration:
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.signum-network</groupId>
<artifactId>signum-smartj</artifactId>
<version>-SNAPSHOT</version>
</dependency>
License
This code is licensed under GPLv3.
Author
jjos
Donation address: S-JJQS-MMA4-GHB4-4ZNZU