Java has been crucial for the worldwide web. Some would argue it is at the heart of it along with HTML and CSS. The programming language that is traditional and useful in creating highly interactive webpages, it is also now useful in making simple or advanced smart contracts and it is number 2 after C++ for most of the rankings also for blockchains.
Most existing blockchain smart contract frameworks use their own DSL and proprietary tools making them much less accessible for developers and thus locking anyone who develops solutions on top of them into an esoteric tool chain.
In this lecture we will present a blockchain contracts framework developed in pure Java and deployed into standard Java JRE.
The talk will cover the topics:
- Quick intro to blockchain primitives:
- proof of work
- proof of stake
- smart contracts
We will then deep dive into existing challenges to blockchain contracts design
- Stateful contracts
- Metering contract execution
- Smart contracts security concerns
Next we review how our Java based lightweight contracts framework solves these challenges
- Stateless contracts support parallelism
- Custom class loaders for securely storing and loading blockchain contracts
- Utilizing the Java security model for sandbox execution of contracts
- Verification of deployed contracts against the contract original source code
- Verification of contract execution using multi-signature accounts
- Oracle (of delphi) contracts
And finally demo the technology and discuss some real-world use cases
- Sample smart contract
- Unit test a smart contract
- Smart contract deployment and execution
- Use cases