You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

TitleIntegrate Solidity VM (from Hyperledger Burrow) to Hyperledger Iroha transaction and query pipeline
Status

PROJECT IN PROGRESS

Difficulty

HIGH

Description 

Since Hyperledger Iroha is moving toward its final release, the team of maintainers would like to have someone to help integrate Solidity VM from Hyperledger Burrow. It order to support the vision of Iroha as a simple and straightforward platform we want to build a visual language over Solidity in the future, similarly to Lego Mindstorm EV3 or Scratch environment:

 Картинки по запросу lego mindstorm  programming

We want users to be able to create decentralized applications securely and hassle-free.

Additional Information

None

Learning Objectives

Intern would get experience in virtual machines, Hyperledger Iroha internals, C++ and other technologies.

Expected Outcome

Integrated HL Burrow VM to Iroha

Relation to Hyperledger 

Hyperledger Iroha

Hyperledger Burrow

Education Level

Nothing special.

Skills

Former experience with C++. Would be nice to have Solidity and VM skills/experience. 

Future plans

Build a visual programming language over the integrated virtual machine.

Preferred Hours and Length of Internship

Full- or part-time.

Mentor(s) Names and Contact Info

Andrei Lebedev, andrei@soramitsu.co.jp, Soramitsu

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. 

  • Add interaction with Burrow EVM using CGO and Golang compiler buildmode option  
    • Add new command inside Iroha to pass parameters to Burrow VM  
    • Develop a wrapper to connect Iroha and Burrow EVM  
      • Write EVM storage inside the wrapper
  • Simulate EVM storage structure inside Iroha Postgres  
    • Develop C API to get data from Iroha
    • Implement interaction between Burrow EVM and Postgres in the wrapper using the C API.
  • Run ERC-20 token smart contract  
  • Tests, integration, and documentation  
    • Tests for the new command and data processing inside it  
    • Tests for interaction between Iroha and Burrow VM  
    • Documentation  
    • Configure Docker 
      • 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.




  • No labels