agora
agora copied to clipboard
Trust Contracts: Fully fledged execution engine
This is still far ahead in the future, but recording it here for reference:
Once we get a working CoinNet, we will focus on the Trust Contract. In order to provide our users with the ability to execute contracts, we will integrate into Agora the equivalent of a virtual machine, which will run an input program and execute action. This input program will be WebAssembly bytecode. This way, we can reuse many of the existing tools being developed for it, which includes debugger, web-based runner, compiler support, etc... Using WebAssembly also means that we don't necessarily have to come up with our own language, as many languages can compile to WebAssembly already.
This issue is about the execution engine: it is the part that will read the program and execute the actions based on it. It is likely that it will be based on an already-existing library, with some custom modifications (e.g. execution limitation). Note that in addition to the execution in itself, we are likely to need a runtime, e.g. a way to handle input, output, reading other contracts outputs, etc...