|
The task will be to implement a visual blueprint frontend similar to Blockly, Scratch, or Unreal Engine Blueprints for the Iroha Special Instructions smart contract language.
Iroha Special Instructions (or ISI) are a composable smart contract language for Iroha v2 providing an opportunity to execute logic on-chain. In their raw form they represent a syntactical tree, which is not very convenient to write. We think that the structure of the ISI will perfectly match a visual blueprint language and therefore make developing Iroha v2 smart contracts more comfortable for everyone.
The app to be developed should allow the user to compose ISI, potentially validating the correspondent types of outputs of each of the blocks. After the program of blueprints is composed, the app should provide a way to transpile the blocks into the file of raw ISI in their byte format. Potentially the app can also act like a client and submit the ISI directly to a Hyperledger Iroha network to be executed right away.
RFC with general description of Iroha Special Instructions
Slides for ISI extension in the form of Expressions
User should be able to use visual interface to construct smart contracts with block representations of ISI
We envision the visual blueprint frontend as a Web App. The exact programming language and web framework is up to the intern to choose. Though we strongly recommend to use statically typed languages such as TypeScript, Elm and Rust (WASM).
Using Rust with WebAssembly to build this web app, might be an interesting optional objective, which we as a team of the project written in Rust will wholeheartedly support. But of course this is not required.
Undergraduate
Depending on the results of the internship, the visual frontend for ISI might be put in our official documentation as a recommended way of getting acquainted with ISI programming for Iroha v2.
Both full-time and part-time are acceptable.
Egor Ivkov, ivkov@soramitsu.co.jp
Ivan Rybin, rybin@soramitsu.co.jp
Zoe Krucky Colorado State University
https://github.com/zkrucky/isi-interface