Background
Currently we have Iroha Special Instructions and Expressions as a main smart contract language. Later we will call both Instructions and Expressions simply ISI.
- Instructions - mutate global state (domains and other entities) in WSV
- Expressions - do not mutate state (are more like mathematical calculations) and can also incorporate queries to WSV
- Instructions can use complex input parameters in a form of Expressions.
Scripts written in ISI can be executed in 2 places:
- As part of the transaction that user submits
- Inside a trigger that is registered and executed on chain based on some events (see Trigger RFC) - not developed yet
Problem
Solution
Preliminarily it is suggested to use Rust with WASM target with wasmtime runtime.