...
Page Properties | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Andrei Lebedev, andrei@soramitsu.co.jp, Soramitsu
Mentee Name and Contact Info
Ivan Tyulyandin, ivan.tyulyandin@gmail.com, SPbU, Ivan Tyulyandin
Project Plan
The main purpose of this internship is to create an environment for smart contracts. Hyperledger Iroha developers would like to try different smart contract engines. One of them is Ethereum Virtual Machine from Hyperledger Burrow project. Intern Ivan Tyulyandin is working on the integration of it into Iroha.
Completed tasks:
- Add new command inside Iroha to pass parameters to Burrow VM
- Write EVM storage inside the wrapper
Develop a wrapper to connect Iroha and Burrow EVM
Add interaction with Burrow EVM using CGO and Golang compiler buildmode option - Develop C API to get data from Iroha
- Implement interaction between Burrow EVM and Postgres in the wrapper using the C API.
Simulate EVM storage structure inside Iroha Postgres - Run ERC-20 token smart contract Tests , integration, and documentation integration
- Tests for the new command and data processing inside it
- Tests for interaction between Iroha and Burrow VM
- Documentation Configure Docker Integration tests Add tools (such as Solidity compiler) to simplify interaction with smart contracts
Since Burrow is written in Golang, there is the option to compile the source code of EVM (which is part of the Burrow project) into static library and C header file. It will be possible to use the header and the library inside Iroha C++ code. At this step, all data related to EVM is stored inside the wrapper.
Next milestone is to remove the EVM data storage from the wrapper to Iroha Postgres. It will let users perform queries about EVM state from Iroha.
To show that Burrow VM works with Iroha, it was decided to run ERC-20 token smart contract. In the future, this contract will help to manage Iroha assets from Solidity, where the only natural token is supported (cryptocurrency).Of course, tests should be written to have some assurance about code correctness. Also, the functionality should be integrated and be ready to use.
Next steps (keep working on them):
- More integration tests (ERC-20 for example)
- User guide
Summary Report
View file | ||||
---|---|---|---|---|
|