What is an orchestrator?
An orchestrator is a bonded network participant that: stakes LPT via the BondingManager, advertises a service endpoint, runs off-chain compute (video transcoding and/or AI inference), redeems winning tickets on Arbitrum, and distributes rewards to delegators. It is a compute provider secured by stake, not a gateway or product UI.How are jobs assigned?
- Video: Selection is stake-weighted. Gateways forward segment work; orchestrators are chosen in proportion to their bonded stake (active set = top 100).
- AI: Routing is by capability, price, and latency. Stake does not determine AI job assignment. Gateways match requests to orchestrators that advertise the right models and price.
What are the two revenue streams?
- LPT inflation โ Minted each round and distributed to bonded stake. You must call reward() every round to claim. Your share depends on your stake and your reward cut (the rest goes to delegators).
- ETH fees โ Paid for work via probabilistic tickets. Winning tickets are redeemed on Arbitrum. Your fee share sets how much ETH you share with delegators.
What is slashing risk?
Slashing can occur for double-signing, fraudulent transcoding proof, or malicious ticket behaviour. It reduces bonded stake; delegators are affected proportionally. The protocol is designed so that the cost of cheating exceeds the gain.What is a pool?
A pool is one orchestrator (one on-chain identity, one stake) backed by many GPUs, often from different owners. The operator runs the node and distributes earnings to GPU contributors off-chain. See Join a pool and Run a pool.What should I monitor?
- On-chain: Bonded stake, active set status, reward calls, fee earnings (e.g. Explorer).
- Node: GPU utilisation, segment/job success rate, latency (Prometheus metrics at
:7935/metricswhen-monitor=true). - Economics: Ticket redemption rate, LPT rewards, ETH fees.
Troubleshooting
- Node not receiving jobs: Check service address, pricing, and active set status. Ensure the node is reachable and logs show no RPC errors.
- Missing rewards: Call reward() every round; automate if needed. Check Explorer for missed rounds.
- GPU not detected: Run
nvidia-smi; ensure Docker has--gpus allif using containers; check CUDA/driver version. - RPC errors: Use a stable Arbitrum RPC; flaky endpoints can cause failed transactions and missed reward calls.