TRON FullNode Docker 가이드
Docker로 TRON 메인넷 FullNode를 실행하는 방법입니다.
참고: Deploy A Node.
빠른 시작
1. 환경 변수 (선택)
cp .env.example .env
# 필요 시 DATA_DIR, JVM_XMX 수정
2. 빌드 및 실행
docker compose up -d
3. 로그 및 동기화 확인
docker compose logs -f
# 컨테이너 내 로그: docker exec tron-fullnode ls -la /data
데이터 디렉터리가 비어 있을 때 launcher가 스냅샷 필요 여부를 판단합니다. USE_SNAPSHOT=1(또는 SNAPSHOT_BASE_URL 설정)이면 자동으로 스냅샷을 스트리밍 다운로드·설치한 뒤 노드를 띄웁니다(용량·시간이 크게 듭니다). 설정하지 않으면 제네시스부터 동기화(매우 오래 걸림)하거나, 아래처럼 수동으로 스냅샷을 받을 수 있습니다.
포트
| 포트 | 용도 |
|---|---|
| 8090 | HTTP API |
| 50051 | gRPC |
| 18888 | P2P (TCP/UDP) |
데이터 디렉터리
${DATA_DIR:-./tron-data}가 컨테이너 내 /data에 마운트됩니다. 블록·DB가 여기에 저장됩니다.
Linux (프로덕션)
sudo mkdir -p /mnt/cryptocur-data/tron
sudo chown -R "$(id -u):$(id -g)" /mnt/cryptocur-data/tron
echo "DATA_DIR=/mnt/cryptocur-data/tron" >> .env
Mac/Windows
mkdir -p tron-data
# .env 기본값 ./tron-data 사용
스냅샷으로 동기화 가속
자동 설치 (권장)
데이터 디렉터리가 비어 있을 때만 동작합니다.
- USE_SNAPSHOT=1
필요 시 공식 스냅샷(기본: Asia Singapore, LevelDB)을 스트리밍 다운로드한 뒤DATA_DIR에 풀고 노드를 시작합니다.
용량이 매우 크고(2TB 이상) 시간이 오래 걸리므로, 디스크·네트워크 여유를 확인한 뒤 사용하세요. - SNAPSHOT_BASE_URL
사용할 스냅샷 서버 URL. 미설정이면USE_SNAPSHOT=1일 때http://34.143.247.77사용.
공식 스냅샷 문서에서 지역별 URL 확인. - SKIP_SNAPSHOT=1
데이터가 비어 있어도 스냅샷을 받지 않고 제네시스부터 동기화합니다.
예: .env에 USE_SNAPSHOT=1 추가 후 docker compose up -d.
이미 데이터가 있으면 스냅샷 단계는 건너뜁니다.
수동 설치
- Main Net Database Snapshots에서 최신 FullNode 스냅샷 다운로드
- 컨테이너 중지:
docker compose down - 스냅샷 압축 해제 후 내용을 호스트의
DATA_DIR(예:./tron-data)에 넣기 docker compose up -d로 재시작
JVM 메모리
기본 -Xmx24g. 호스트 RAM에 맞게 .env에서 JVM_XMX 조정 (예: 16GB 서버면 JVM_XMX=12g). 물리 메모리의 80% 이하 권장.
java-tron 버전
빌드 시 TRON_VERSION으로 릴리스 태그 지정 (기본 GreatVoyage-v4.7.0).
Releases에서 최신 태그 확인.
TRON_VERSION=GreatVoyage-v4.7.1 docker compose build --no-cache
docker compose up -d
SolidityNode / SR 노드
본 Docker 구성은 FullNode 전용입니다. SolidityNode(--solidity)나 블록 생산 노드(--witness)는 config·실행 옵션이 다르므로, 필요 시 localhost 설치를 참고해 Dockerfile·launcher를 수정하거나 호스트에서 실행하세요.
하드웨어 권장
- RAM: 32 GB 이상 (JVM 24g 사용 시)
- 디스크: SSD 2.5 TB 이상
- CPU: 16코어 권장
문제 해결
- 동기화 느림: 스냅샷 사용, 디스크 I/O·네트워크 확인
- OutOfMemoryError:
JVM_XMX낮추기 - 포트 충돌:
HTTP_PORT,GRPC_PORT변경 또는 호스트에서 해당 포트 사용 중인 프로세스 확인
자세한 내용: localhost troubleshooting.