Cosmos Hub Docker 노드 가이드
Cosmos Hub(gaiad)는 공식 Docker 이미지를 제공하지 않지만, 공식 릴리스 바이너리를 베이스 이미지에 올려 쉽게 컨테이너화할 수 있습니다. 프로덕션 Full 노드는 보통 호스트 설치를 사용합니다.
- 공식 문서: Join Mainnet
- 공식 릴리스: https://github.com/cosmos/gaia/releases
- 커뮤니티 이미지 예시: ghcr.io/strangelove-ventures/gaia
간단한 docker-compose 예시
# docker-compose.yml
services:
gaiad:
image: ghcr.io/cosmos/gaia:v21.0.0
container_name: cosmos-gaiad
restart: unless-stopped
ports:
- "26657:26657" # Tendermint RPC
- "26656:26656" # P2P
- "1317:1317" # Cosmos REST API
- "9090:9090" # gRPC
volumes:
- ./data:/root/.gaia
command:
- start
- --home=/root/.gaia
최초 초기화
# genesis/초기 설정 (호스트에서 한 번 실행)
docker run --rm -v $(pwd)/data:/root/.gaia \
ghcr.io/cosmos/gaia:v21.0.0 init my-node --chain-id cosmoshub-4
# mainnet genesis.json 다운로드
curl -L https://github.com/cosmos/mainnet/raw/master/genesis/genesis.cosmoshub-4.json.gz \
| gunzip > data/config/genesis.json
# 시드 피어 반영
sed -i.bak \
's|^seeds *=.*|seeds = "ade4d8bc8cbe014af6ebdf3cb7b1e9ad36f412c0@seeds.polkachu.com:14956,...' \
data/config/config.toml
그 후 docker compose up -d.
State Sync (빠른 동기화)
config.toml에서 state sync를 활성화하면 수 GB 수준의 스냅샷으로 수분 내 기동할 수 있습니다.
[statesync]
enable = true
rpc_servers = "https://rpc.cosmos.network:443,https://cosmos-rpc.polkachu.com:443"
trust_height = 20000000
trust_hash = "<위 높이의 블록 해시>"
trust_period = "168h0m0s"
trust height/hash는 Polkachu statesync 같은 공개 인덱스에서 확인하세요.
Monitoring 페이지 연동
이 저장소 웹 UI의 Monitoring 페이지에서 Cosmos/Cronos (Tendermint) 프리셋이 /status 를 호출합니다. 기본 URL http://localhost:26657 로 설정된 상태에서 조회 가능합니다.
메트릭 엔드포인트 (Prometheus)
gaiad(Tendermint/CometBFT)는 config.toml에서 Prometheus exporter를 활성화합니다.
# ~/.gaia/config/config.toml
[instrumentation]
prometheus = true
prometheus_listen_addr = ":26660"
- 포트 26660
GET http://<host>:26660/metrics- docker-compose에 포트 매핑 추가:
- "26660:26660"
전체 모니터링 스택: ../../../common/monitoring-stack.md.
프로덕션은 localhost 권장
Validator/Sentry 구성은 ../localhost/README.md 를 참고하세요.