Parties
Provides an overview of the ditto network participants
Last updated
Provides an overview of the ditto network participants
Last updated
There are multiple participants in the ditto network, let's walk over them.
Define the workload (a set of blocks and automations), simulate execution, and check compliance with policies (e.g., ensuring that the state changes according to the user's intent as a result of the simulationβcurrently, all policies exist within smart contracts).
Execute the automation and wait for full compensation for the gas spent, plus a reward after the quorum has approved the decision.
Anyone can raise a dispute if the automation could have been executed but was not. To do so, the disputer has to lock a stake, and in case of a positive decision by general consensus, receive an additional reward.
Collect the mainnet state to determine the set of executors and create a schedule for execution.
In case of a dispute, assess the performance of the responsible executors.
Make decisions on gas policies at the entry points in the execution networks.
Make decisions regarding reward distribution.
Observe a decision from the Orchestration Network to propagate to the target network or mainnet.
Gather signatures from all interop participants and execute the state transfer from the Orchestration Network to the target network (distribute rewards, change gas policies, initiate slashing) via Relayer that executes the message on target chain.
Continuously maintain an up-to-date list of validators on each target chain to ensure decentralized delivery of the Orchestration Network state.
Currently we work with Axelar stack to provide seemless interoperability between the Orchestration Network and the target EVM chains.
Entry points - contracts on target chains controlling execution and compensation:
Calculate the gas compensation during the execution and charge the vault
Store the compensations untill released by interop
Enable executors to claim the rewards with merkle root
Apps submit meta transactions to the executor network using the Ditto SDK through multiple endpoints (each executor provides an endpoint for apps to submit transactions). This data gets included in the block and becomes the part of the common state of the ditto Orchestration Network. Ditto consensus rules manage transaction allocation. Executors query the Orchestration Network state to determine whether transactions have been allocated to them and if that is the case, they proceed to batch and submit the transactions. The system guarantees that no other executor gets assigned the same transactions within a block window. Any executor transaction that attempts to submit the same meta transaction will fail to receive compensation for spent gas and the reward.