<aside> ❗

The Executor Network Service remains in a state of active research at the time of writing.

</aside>

<aside> 💡

Quick Facts

The Executor Network Service supports Native Zones liveness by allowing Logos nodes to act as executors. Executors service all Native Zones on an equal footing, ordering transactions and executing their state and ledger transitions. They also produce ZK proofs for Zone updates and send Zone data as blobs using LogosDA. Due to the heavy workload undertaken by executors, they are required to have powerful machines with GPUs that are capable of quick ZK proving. The Executor Network Service remains a work in progress at the time of writing.

Overview

Once a Logos node decides to participate in the Executor Network and is registered with the SDP, it can begin to acquire execution tickets. The execution ticket mechanism, described in the Crust section, defines a common timeline for Native Zones and allows executors to obtain exclusive execution rights for a Zone during a specified block range. Each Native Zone can distribute execution tickets in any way it sees fit. In the case where nobody owns an execution ticket for a given time period, any party can serve as an executor in what is known as the “anarchy” scenario. This scenario, intended only as a fallback option, could involve any executor - or even users acting as executors not registered with the SDP - maintaining Zone liveness. These unregistered executors provide somewhat limited functionality since they are not able to submit Zone data to LogosDA, and would need to inscribe it instead.

An executor produces a ledger update for the Zone it is executing by processing transactions sent by Zone users. Each Native Zone receives transactions from users of that Zone, which are processed by the Zone executor. This processing includes verifying transaction correctness, determining the resulting ledger state, and ensuring that the Native Zone ledger adheres to global rules after effecting the update. In addition, the Zone executor is responsible for updating the Zone’s internal state by running its state transition function.