Run an Operator
The main instructions to register and run an operator. Latest testnet and mainnet release is v1.0.0
Register and Run
Continue using the same path you’ve selected on the Prerequisites page to register and run your operator.
Pull the Docker Image
Install and run the docker daemon if you haven’t already then, pull the latest image from the GitHub Container Registry.
docker pull ghcr.io/predicatelabs/operator:1.0.0
Register with Predicate AVS
export ENV_FILE=Path_to_your_env_file
docker run --network host --env-file ${ENV_FILE} \
-v "${REGISTRATION_PRIVATE_KEY_STORE_PATH}:/app/registrationkey.json" \
-v "${PREDICATE_SIGNING_PRIVATE_KEY_STORE_PATH}:/app/signingkey.json" \
ghcr.io/predicatelabs/operator:1.0.0 register \
--registration-private-key-store-path /app/registrationkey.json \
--predicate-signing-private-key-store-path /app/signingkey.json
Remove Registration Key
While we do not load registration keys in the following step, we suggest removing it from your config file before running the operator.
Run the Operator
export ENV_FILE=Path_to_your_env_file
docker run --network host --env-file ${ENV_FILE} -v "${DB_PATH}:/app/data" \
-v "${PREDICATE_SIGNING_PRIVATE_KEY_STORE_PATH}:/app/signingkey.json" \
ghcr.io/predicatelabs/operator:1.0.0 start \
--db-path /app/data \
--predicate-signing-private-key-store-path /app/signingkey.json
Confirm you are recieving tasks
Upon successfully starting up, the Predicate Operator should produce logs similar to the following:
2024-09-09T23:18:14Z INF Received task for processing namespace=operator task_id=067eb50a-94a5-47f9-94cc-4110ad329073
2024-09-09T23:18:14Z INF Processing task digest_hash=0x072096a774cb27178e4bcd95fdd8e5cd9ff504434bc2cd5291adfcb4cb919387 namespace=operator task_id=067eb50a-94a5-47f9-94cc-4110ad329073
2024-09-09T23:18:14Z INF Policy enforcement result is_compliant=true namespace=operator task_id=067eb50a-94a5-47f9-94cc-4110ad329073
If you are not receiving tasks, please ensure your firewall is open and retry registration (step 2)
with --skip-middleware-health-check
set to false
To view additional configuration options: docker run ghcr.io/predicatelabs/operator:latest --help