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.
- Introduction to open source culture and collaboration tools
- Introduction to Application Architectural Design
- Introduction to Test Driven Development
- Introduction to interacting with an external API
- Introduction to Domain Specific Languages
User should be able to use visual interface to construct smart contracts with block representations of ISI
- User should be able to save and load programs that are currently in development
- User should be able to serialize the constructed program into the raw byte representation of ISI
- (Optional) User should be able to connect to the network and submit ISI to the ledger
- (Optional) The app should provide automatic type analysis of the constructed programs
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.
Relation to Hyperledger
- UI/UX design familiarity
- Web Development experience
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.
Preferred Hours and Length of Internship
Both full-time and part-time are acceptable.
Mentor(s) Names and Contact Info
Egor Ivkov, email@example.com
Ivan Rybin, firstname.lastname@example.org
Zoe Krucky Colorado State University