Skip to content

Quick Start (Docker)

Get the Optimum Gateway running with Docker.

Prerequisites: Requirements and Network Requirements.

Hardware Requirements

Minimum: 1 vCPU, 256MB RAM, 200MB disk
Recommended: 2+ vCPUs, 512MB+ RAM, 500MB+ disk

Installation

sh
docker pull getoptimum/gateway:v0.0.1-rc11

Configuration

Create config/app_conf.yml:

yaml
log_level: debug
gateway_cluster_id: optimum_hoodi_v0_3
gateway_id: "your_unique_gateway_id"

agent_lib_p2p_port: 33212
agent_opt_p2p_port: 43213
identity_libp2p_dir: /tmp/libp2p
identity_optp2p_dir: /tmp/mump2p
telemetry_enable: true
telemetry_port: 48123
enable_aggregation: true

# Topic names only
eth_topics_subscribe:
  - beacon_block

Gateway ID format: yourorg-region-hoodi-xx (e.g. optimum-eu-hoodi-01)

Run

sh
mkdir -p config data/libp2p data/mump2p

docker run --name optimum-gateway --rm \
  -p 33211:33211/tcp \
  -p 33212:33212/tcp \
  -p 43213:43213/tcp \
  -p 48123:48123/tcp \
  -v $(pwd)/config:/app/config \
  -v $(pwd)/data/libp2p:/tmp/libp2p \
  -v $(pwd)/data/mump2p:/tmp/mump2p \
  getoptimum/gateway:v0.0.1-rc11 \
  -config=/app/config/app_conf.yml

Verify

Version and commit:

sh
curl http://localhost:48123/api/v1/version
json
{"commitHash":"e62711c","version":"v0.0.1-rc11"}

Metrics with your gateway_id:

sh
curl http://localhost:48123/metrics | grep gateway_id
text
optp2p_gateway_optimum_gateway_app_build_info{commit="e62711c",gateway_id="local-dockerized",...} 1
optp2p_gateway_optimum_gateway_opt_peers{gateway_id="local-dockerized"} 2
...

Startup logs (fork digest, topics):

sh
docker logs optimum-gateway
text
{"msg":"initialized fork digest from chain default","fork_digest":"c6ecb76c","chain":"hoodi"}
{"msg":"fork digest updated from bootstrap","fork_digest":"c6ecb76c"}
{"msg":"subscribed to topic","topic":"/eth2/c6ecb76c/beacon_block/ssz_snappy"}
...

Note: "Failed to connect to bootstrap" during startup is normal. See Troubleshooting.

Connect CL Client

Get gateway peer info:

sh
curl -s http://localhost:48123/api/v1/self_info

Use libp2p.multiaddrs[0] (or another reachable multiaddr) for IP and peer_id for peer ID.

Prysm

sh
./beacon-chain \
  --peer=/ip4/YOUR_GATEWAY_IP/tcp/33212/p2p/YOUR_GATEWAY_PEER_ID \
  ...

Lighthouse

Add your Lighthouse node as a direct peer in the gateway config so the gateway auto-reconnects after restarts:

yaml
direct_cl_peers:
  - /ip4/YOUR_LIGHTHOUSE_IP/tcp/9000/p2p/YOUR_LIGHTHOUSE_PEER_ID

See Troubleshooting – Lighthouse v8.x for additional required flags.

Next Steps