go-livepeer is installed and your GPU is detected. For the full flag list, see the
CLI flags reference.
The essential flags
These must be set every time the node starts as an orchestrator.| Flag | Purpose |
|---|---|
-network arbitrum-one-mainnet | Join the production network (default is offchain — no protocol participation) |
-ethUrl <RPC> | An Arbitrum One RPC endpoint for on-chain reads/writes |
-orchestrator | Enable the on-chain protocol role (routing, reward calls, discovery) |
-transcoder | Enable local GPU transcoding |
-nvidia <ids> | Which NVIDIA GPUs to use (0, 0,1, or all) |
-maxSessions <n> | Max concurrent transcode sessions |
-pricePerUnit <wei> | Price per pixel, in wei (see Pricing) |
-serviceAddr <ip:port> | Public address gateways use to reach you |
-v 6 while getting started for verbose logs (transcoding activity, RPC calls, sessions).
Choosing the GPU
-nvidia falls back to CPU transcoding, which is too slow to be competitive. For AI-only
operation you still need -nvidia to expose the GPU to AI runner containers, even without
-transcoder.
Setting the session limit
Set-maxSessions to the minimum of your hardware limit and your bandwidth limit:
- Hardware limit — the highest concurrent session count your GPU sustains at a real-time ratio ≤ 0.8 (benchmark with
livepeer_bench). - Bandwidth limit —
available symmetric Mbps ÷ 6 Mbps per stream × 0.8 margin.
-maxSessions 12.
-maxSessions applies to video transcoding only. AI capacity is set per pipeline by the
capacity field in aiModels.json — see Add AI inference.Setting the service address
-serviceAddr is how the network finds you. Common mistakes that silently cost you all your jobs:
- using an internal IP (
192.168.x.x,10.x.x.x) — not routable from the internet - using
0.0.0.0— binds locally but isn’t a network address - changing the IP without updating on-chain registration — gateways lose contact
orch.yourdomain.com:8935): if the server IP changes, you update DNS
instead of paying for a new on-chain registration transaction.
Deployment modes
| Mode | Flags | Use when |
|---|---|---|
| Combined (most common) | -orchestrator -transcoder | One machine handles everything |
| Orchestrator-only | -orchestrator | Remote transcoders connect via -orchSecret |
| Transcoder-only | -transcoder -orchAddr <host:port> | Running a GPU worker that reports to a separate orchestrator process |
Run it as a service
For production, supervise the process so it restarts on failure. A minimalsystemd unit:
/etc/systemd/system/livepeer.service
Next
Activate on Arbitrum
Fund the wallet, stake LPT, and register on-chain.
Set pricing
Price so gateways actually select your node.