Execution Service
WIP
Overview
The Execution Service is a container with the task execution logic. It acts as a micro-service for task execution and can be written in any code language.
When a task is performed in an AVS, it needs to be executed by the Task Performer and then proposed to the p2p network using an RPC call. The performer is responsible for executing a valid task else it can get slashed.
The RPC call that the Task Performer sends to the Othentic Client:
Parameter | Type | Description |
---|---|---|
string | Any string that the Attesters can use to verify that the Performer has executed its task as expected | |
data | bytes | Additional data to be added to the consensus |
taskDefinitionId | uint16 | The ID of specific Task definition |
performerAddress | address | The address of the Task Performer |
signature | bytes | Task Performer ECDSA signature |
Example
You can check the Execution Service example of the Price Oracle repo.
A Price Oracle AVS can, for example, perform a task after every set number of blocks (or for each block). When the task is triggered by its scheduler, the performer node makes a call to the Execution Service, which fetches the price of the requested assets. It will then return a proof of task, which the performer node can gossip in the p2p network until it is attested and submitted as a valid task on-chain.
Last updated