Quick Start (Docker)
This guide helps you get the Optimum Gateway running quickly using Docker.
Before you start: Make sure you have the requirements from the overview page and that your firewall allows the required ports (see Network Requirements).
Hardware Requirements
Note: The gateway is a lightweight application that does not perform complex operations.
Minimum Requirements
- CPU: 1 vCPU (ARM64 or x86_64)
- RAM: 256MB available memory
- Storage: 200MB free disk space
Recommended Requirements
- CPU: 2+ vCPUs
- RAM: 512MB+ available memory
- Storage: 500MB+ free disk space
Installation
# Pull the gateway image
docker pull getoptimum/gateway:v0.0.1-rc1
Configuration
Create a config file (e.g., config/app_conf.yml
):
# Minimal working config
log_level: debug
gateway_cluster_id: optimum_hoodi_v0_1 # REQUIRED - Network cluster identifier
gateway_id: "your_unique_gateway_id" # Set your gateway_id, and use the Proxy Host address provided to you
# Suggested Gateway ID format:
# yourorg-region-hoodi-xx
# Example: optimum-eu-hoodi-01
agent_lib_p2p_port: 33212
agent_opt_p2p_port: 33213
identity_libp2p_dir: /tmp/libp2p
identity_optp2p_dir: /tmp/optp2p
telemetry_enable: true
telemetry_port: 48123
proxy_host:
- PROXY_HOST_1:50051 # Real proxy hosts will be provided
- PROXY_HOST_2:50051 # Real proxy hosts will be provided
- PROXY_HOST_3:50051 # Real proxy hosts will be provided
eth_topics_subscribe:
- /eth2/82556a32/beacon_block/ssz_snappy
- /eth2/82556a32/beacon_aggregate_and_proof/ssz_snappy
- /eth2/82556a32/attestation_subnet_0/ssz_snappy
Running the Gateway
# Create directories
mkdir -p config data/libp2p data/optp2p
# libp2p listen port (exposed if you want CL peers to dial)
# metrics/version HTTP server (if enabled)
# mount config dir
# persist libp2p identity
# persist mumP2P protocol identity
docker run --name optimum-gateway --rm \
-p 33212:33212/tcp \
-p 48123:48123/tcp \
-v $(pwd)/config:/app/config \
-v $(pwd)/data/libp2p:/tmp/libp2p \
-v $(pwd)/data/optp2p:/tmp/optp2p \
getoptimum/gateway:v0.0.1-rc1 \
-config=/app/config/app_conf.yml
Verify Gateway Started
# Test version endpoint
curl http://localhost:48123/api/v1/version
# Test metrics endpoint (gateway_id should show your configured ID)
curl http://localhost:48123/metrics | grep gateway_id
# Check gateway logs for any errors
docker logs optimum-gateway
Note: You may see some "failed to connect to bootstrap node" errors - this is expected and normal during initial startup. See Common Issues for more details.
Connect Your CL Client
Add gateway peers – connect each CL client to all Gateways as a static peer.
- Restart CLs with the peer (hot-add might not survive reboots).
Get your gateway's connection details:
# Get your gateway's peer ID and IP
curl -s http://localhost:48123/api/v1/self_info
response:
{
"multiaddrs": [
"/ip4/192.168.1.223/tcp/33212"
],
"peer_id": "16Uiu2HAkzmBdRzsvyUBCJqv7Ux2LqbfKHbNi7FqVLbKvem8UF6bT"
}
From the response:
YOUR_GATEWAY_IP
= the IP frommultiaddrs[0]
(e.g.,192.168.1.223
)YOUR_GATEWAY_PEER_ID
= thepeer_id
field (e.g.,16Uiu2HAkzmBdRzsvyUBCJqv7Ux2LqbfKHbNi7FqVLbKvem8UF6bT
)
Restart your CL client with the corresponding flags:
Prysm (Beacon Node)
Prysm beacon flags use --peer
. Supply the Gateway peer multiaddr:
./beacon-chain \
--peer=/ip4/YOUR_GATEWAY_IP/tcp/33212/p2p/YOUR_GATEWAY_PEER_ID \
...your existing flags...
Lighthouse
Coming soon
You can pass multiple peers; add the Gateway peer to your existing list.
Next Steps
Your gateway is now running! Here's what to do next:
- Set Up Monitoring - Monitor your gateway's performance and health
- Advanced Configuration - Customize topics, ports, and settings for your setup
- Troubleshooting - Quick fixes for common issues
Having problems? Check our Troubleshooting Guide for solutions to common startup issues.