the go-livepeer flags needed to run as an Orchestrator. By the end, a working startup command is ready and each flag is understood. Prerequisites:Documentation Index
Fetch the complete documentation index at: https://na-36-docs-v2.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
- go-livepeer installed and GPU detected. See .
- Arbitrum wallet with ETH for gas. See .
- The hardware session limit number from the
livepeer_benchtest in .
Essential Flags
These flags must be set every time go-livepeer starts as an Orchestrator.Set the network
offchain - without this flag the
node does not participate in the Livepeer protocol at all.Options:arbitrum-one-mainnet- production networkoffchain- local or dev only, no on-chain participation
Connect to Arbitrum RPC
Set the Ethereum account (optional)
~/.lpData/arbitrum-one-mainnet/keystore by default.Enable Orchestrator and Transcoder mode
-orchestrator enables the on-chain protocol role - the node participates in job routing, makes
reward calls, and is visible to Gateways.-transcoder enables local GPU transcoding - the node processes jobs using its GPU.Use both together for the standard combined setup where one machine handles all roles. For
alternate configurations:See for the O-T split and Siphon configurations.Select the GPU
For AI-only operation (no video transcoding),
-transcoder is not required but -nvidia is
still needed to expose the GPU to AI runner containers. See Adding AI inference below.Set the session limit
livepeer_bench test in
where Real-Time Duration Ratio was ≤ 0.8.Bandwidth limit: available symmetric bandwidth (Mbps) ÷ 6 Mbps per stream × 0.8 margin.-maxSessions 12.-maxSessions applies to video transcoding only. AI inference capacity is controlled per pipeline
by the capacity field in aiModels.json. See Adding AI inference below.Set the price
- 1 ETH = 1,000,000,000,000,000,000 wei
- A typical starting price is 500-2,000 wei per pixel
- Check current market rates at tools.livepeer.cloud
-pricePerUnit sets the startup price. The on-chain registered price used for discovery is set
separately during activation via livepeer_cli. Both can be adjusted independently later.Set the service address
- 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 is not a network address - Changing the IP without updating on-chain registration - Gateways lose contact
Full Startup Command
Replace every placeholder with actual values:-ethAcctAddr), go-livepeer prompts for a passphrase
to create and encrypt a new keystore. This passphrase is required on every subsequent start.
For verbose logging while getting started:
Adding AI Inference
To serve AI inference jobs alongside or instead of transcoding, three additional flags are needed.AI worker flags
AI worker flags
The AI Orchestrator uses port 8936 by default to avoid conflict with a transcoding Orchestrator
on the same machine (which uses 8935). Set
-serviceAddr accordingly.aiModels.json and receiving the first AI job, see
.Variants
Docker - full Orchestrator in a container
Docker - full Orchestrator in a container
~/.lpData/ so the keystore and data persist between container restarts. Without this
mount, a new ETH account is created on every run.systemd service
systemd service
Create Enable and start:
/etc/systemd/system/livepeer.service:/etc/systemd/system/livepeer.service
Config file pattern
Config file pattern
go-livepeer does not have a native config file flag. The standard pattern stores flags in a plain
text file and expands them at startup:In a systemd unit file, this requires an
/etc/livepeer/livepeer.conf
ExecStart wrapper shell script rather than calling the
binary directly - systemd does not perform shell expansion in ExecStart.Next Steps
Connect to Arbitrum
Set up the Arbitrum RPC endpoint and fund the wallet with ETH for gas.
Activate on the network
Register the Orchestrator on-chain and enter the active set via
livepeer_cli.CLI reference
Every flag, its type, default, and description.