-
Notifications
You must be signed in to change notification settings - Fork 75
The data flow of inputs and outputs on the cartesi stack
Marcelo Politzer Couto edited this page Jul 8, 2025
·
1 revision
The TL;DR is:
- The user gathers data to be used as input to the verifiable computation.
- A call is made to the Ethereum method addInput of the InputBox contract. This data is stored on chain.
- The rollups-node retrieves the input in the evmreader module.
- The rollups-node advancer processes the inputs by loading them into the cartesi-machine, running it, and gathering the outputs.
- The input is loaded into the Cartesi Machine IO receive memory range one at a time.
- On the inside, the Linux kernel exposes the input data to the application via a memory map. This is abstracted by the libcmt.
- The application processes the contents however it sees fit, generating vouchers, notices and reports as outputs along the way. They are gathered by the advancer "on the outside".
- The application yields control back to the advancer by either accepting or rejecting the input.
- With the control back on the rollups-node side, the outputs will be used to compute a claim, a proof that the machine generated those outputs to be published in an authoritative manner or disputable by a quorum of nodes.
- After a period of time, this input and its related outputs are settled and not subject to change anymore.
- At this moment the notices are available for reading and the vouchers for execution.