Lightweight Contracts — Next Steps
Because Smart Contracts Are Not So Smart
On August 17th, as promised, the Ardor lightweight contracts solution went live on the Ardor testnet as part of release 2.1.0e, which is available from jelurida.com.
Next step, we want to finalize some technical debt, and make the technology as accessible as possible for developers by further polishing the required tools.
In our next upcoming release 2.1.1e, which is planned for September 2018 we are focusing on three main areas of development:
- Contract Manager Plugin — simplify contract deployment and maintenance.
- Contract Verification framework — verify that a contract deployed to the blockchain is indeed based on specific source code.
- API Callers — standalone building blocks of contract functionality.
Contract Manager Plugin
As explained in our wiki, contract deployment is a two-step process which is better done automatically using the Contract Manager command line utility. As you recall, we provide an out-of-the-box IntelliJ project which helps you get started quickly with contract development and testing. The Contract Manager Plugin packages the Contract Manager utility as an IntelliJ plugin which is available as part of the Ardor installation. All you need to do is install it into your IntelliJ IDE and off you go: you can deploy and manage your contracts from inside your project.
Contract Verification Framework
As with all new technology, it is important to understand any inherent risks and mitigate against them. We predict that a popular attack vector against contracts will be to deploy a malicious contract as class file without providing the source code, then tricking users into using it by social engineering methods like impersonating a legit contract developer. To mitigate this, we would like to strongly encourage contract developers to release their source code. The “contract verification framework” will allow anyone given the contract source code to verify that this source code is indeed the code deployed to the blockchain as class file.
When developing contracts, one of the main tools provided by Ardor is a simple interface to the existing Ardor APIs using API caller objects. These caller objects are useful on their own, even outside of the contracts context, for example for client developers. In the next release, we make the API callers available independently and provide useful samples of how to integrate them into your client applications.