Base Docker 노드 가이드
Base는 OP Stack 기반이므로 Optimism과 동일한 방식으로 운영합니다. Base 공식 저장소(base-org/node)가 편의 docker-compose를 제공합니다.
- 공식 저장소: https://github.com/base-org/node
- 공식 문서: https://docs.base.org/chain/run-a-base-node
- L1 요구: Ethereum Execution + Beacon API (자체/외부)
빠른 실행 (base-org/node 템플릿)
git clone https://github.com/base-org/node.git
cd node
cp .env.sample .env
# .env 편집:
# OP_NODE_L1_ETH_RPC=<L1 Execution RPC>
# OP_NODE_L1_BEACON=<L1 Beacon API>
# OP_NODE_L1_RPC_KIND=debug_geth (self-hosted geth면)
# NETWORK_ENV=mainnet (or sepolia)
# CLIENT=geth (reth, erigon 선택 가능)
# 실행
docker compose up --build -d
docker compose logs -f node
포트
- 8545: op-geth HTTP JSON-RPC
- 8546: op-geth WebSocket
- 9545: op-node HTTP RPC
- 9222: op-geth P2P
- 9223: op-node P2P
스냅샷 (강력 권장)
Genesis부터 동기화는 수 주가 걸립니다.
- 공식 스냅샷 안내: https://docs.base.org/chain/node-snapshots
- pruned archive 스냅샷은 약 수 TB (주 단위 업데이트)
# 예시 (공식 문서 최신 경로 확인 필수)
wget https://<BASE_SNAPSHOT_URL>/base-mainnet-snapshot.tar.zst
zstd -d base-mainnet-snapshot.tar.zst -o - | tar -x -C ./geth-data
상태 확인
# L2 최신 블록
curl -s -X POST http://localhost:8545 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' | jq
# op-node 동기화 상태
curl -s -X POST http://localhost:9545 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"optimism_syncStatus","params":[],"id":1}' | jq '.result.finalized_l2.number'
Optimism과의 차이
- Chain ID: Base 8453 vs OP Mainnet 10
- Sequencer: Coinbase 운영 (Base Mainnet) —
--rollup.sequencerhttp=https://mainnet-sequencer.base.org - Rollup config:
base-mainnet.json사용 (base-org/node가 자동 포함)
프로덕션 팁
- L1 Beacon API의 blob 보존 기간(기본 ~18일) 이후 데이터 필요 시 blob archiver 연동
- 저장소
CLIENT=reth또는CLIENT=erigon으로 EL 클라이언트 전환 가능