To support custom instructions, a kind of plugin architecture will be needed.
The way custom instructions for in the interpreter is that the instruction will modify a file inside the VM (this way any amount of data can be passed).
When the dispute involves a custom instruction, the verification game proceed into another smart contract, called a custom judge. So the solvers and verifiers have to listen for events in the custom judge. The file data before and after the instruction is given as arguments to this judge. Then the solver will have to show that the instruction has been handled correctly. The data before instruction can be generated by running the interpreter up to that point.
To support custom instructions, a kind of plugin architecture will be needed.
The way custom instructions for in the interpreter is that the instruction will modify a file inside the VM (this way any amount of data can be passed).
When the dispute involves a custom instruction, the verification game proceed into another smart contract, called a custom judge. So the solvers and verifiers have to listen for events in the custom judge. The file data before and after the instruction is given as arguments to this judge. Then the solver will have to show that the instruction has been handled correctly. The data before instruction can be generated by running the interpreter up to that point.