For the complete documentation index, see llms.txt. This page is also available as Markdown.

Operations

Running, monitoring, GPU configuration, and troubleshooting your ADI Rollup deployment.

Running Everything Together

To bring up the full stack in one command:

# Core + Infrastructure
docker compose \
  -f docker-compose.yml \
  -f docker-compose.infra.yml \
  up -d

# Core + Infrastructure + Blockscout
docker compose \
  -f docker-compose.yml \
  -f docker-compose.infra.yml \
  -f docker-compose.blockscout.yml \
  up -d

Rate limits and allowlisting

The mainnet RPC at rpc.adifoundation.ai enforces per-IP rate limits for L3 traffic.

If sequencer startup hits HTTP 429 with Cloudflare 1015, the issue is infrastructure configuration, not chain logic. Contact ADI Ops to allowlist your outbound IP.

Testnet at rpc.ab.testnet.adifoundation.ai does not enforce these limits.


Port Reference

Port
Service
Description

3050

Sequencer

L2 JSON-RPC endpoint

3051

External Node

L2 JSON-RPC (read replica)

3053

Sequencer

Block replay server used by the External Node

3054

External Node

Replay server override to avoid conflict on the same host

3320

Sequencer

Prover API (internal)

3000

Bridge

dApp Portal / Bridge UI

3010

Explorer App

Block Explorer frontend

3020

Explorer API

Block Explorer REST API

3040

Data Fetcher

Explorer data fetcher

4000

Blockscout

Blockscout frontend (optional)


GPU Configuration

Single GPU

If you have a dedicated GPU per prover, use the full GPU UUID:

Set in .env:

Scaling Provers

For higher proving throughput, add more prover instances. Each needs a unique name and Prometheus port:


Viewing Logs


Monitoring

Endpoint
What It Shows

http://localhost:3050

Sequencer JSON-RPC

http://localhost:3051

External Node JSON-RPC

http://localhost:3312/metrics

Sequencer Prometheus metrics

http://localhost:3316/metrics

External Node Prometheus metrics

http://localhost:3124/metrics

FRI Prover Prometheus metrics

http://localhost:3126/metrics

SNARK Prover Prometheus metrics

Check sync status:


Restarting Services


Troubleshooting

Error
Likely cause
Resolution

failed to fetch finalized L1 state with 429

Your settlement RPC is rate-limiting L3 traffic

Check the upstream response. On mainnet, contact ADI Ops to allowlist your outbound IP. Set restart: "no" until allowlisting is complete.

failed to fetch finalized L1 state with 502

Upstream settlement RPC is unavailable or returning a transient gateway error

Keep restart: unless-stopped. Retry after the upstream recovers, or switch to a healthier RPC endpoint.

sender does not have enough funds

An operator wallet is missing settlement-layer gas funds

Fund the commit, prove, and execute operator wallets with the settlement-layer gas token. If base_token_address was omitted at deploy time, that token is ADI.

Existing batch first block does not match

Local node state does not match the chain you are trying to run

Stop the node. Remove the affected node's RocksDB and replay data. Keep reusable wallet files only. Do not reuse genesis.yaml or contracts.yaml across chains.

L1 commit watcher component failed

Settlement RPC is wrong, unavailable, rate-limited, or paired with the wrong settlement chain ID

Verify L1_RPC_URL reaches your settlement layer. Confirm the generated genesis.json has the correct l1_chain_id. For ADI, use 36900 on mainnet or 99999 on testnet. If you use a public RPC, relax the watcher settings to l1_watcher_poll_interval: "2s" and l1_watcher_max_blocks_to_process: 10.

Last updated