TRON 노드 트러블슈팅
Java-Tron FullNode·SolidityNode 운영 시 자주 겪는 문제와 확인 방법입니다.
공식 문서: Deploy A Node, java-tron.
목차
시작 실패
java: command not found / Wrong version
증상: java -jar FullNode.jar 실행 시 java를 찾을 수 없거나 버전이 맞지 않음.
확인:
uname -m
java -version
- x86_64 → JDK 8 (1.8.x)
- arm64/aarch64 → JDK 17
조치: 아키텍처에 맞는 JDK를 설치하고 JAVA_HOME·PATH를 설정하세요.
OutOfMemoryError / GC 과다
증상: JVM 힙 부족 또는 GC 로그가 매우 빈번함.
조치: -Xmx 값을 물리 메모리의 80% 이하로 조정. 32 GB RAM이면 -Xmx24g 정도. 공식 문서의 JVM Parameter Optimization 참고.
config 파일을 찾을 수 없음
증상: -c config.conf 지정 시 파일 없음 오류.
조치: config.conf 경로가 현재 작업 디렉터리 또는 절대 경로로 맞는지 확인. 메인넷 기본 설정은 java-tron의 framework/src/main/resources/config.conf를 복사해 사용.
동기화 문제
동기화가 매우 느림
조치:
- Main Net Database Snapshots에서 최신 스냅샷을 받아
output-directory에 압축 해제 후 재시작. - 디스크가 SSD인지, I/O 여유가 있는지 확인.
- 네트워크 대역폭·방화벽(피어 포트) 확인.
SolidityNode가 동기화되지 않음
확인: config의 trustNode가 FullNode의 gRPC 포트(기본 50051)를 가리키는지 확인. FullNode가 기동 중이고 해당 포트가 열려 있어야 합니다.
메모리·디스크
디스크 부족
증상: 디스크 풀 또는 DB 오류.
조치: SSD 2.5 TB 이상 권장. output-directory가 있는 파티션 여유 공간 확인. 오래된 로그 정리.
tcmalloc 사용 (선택)
메모리 사용 최적화를 위해 tcmalloc을 쓰려면 공식 문서 “Optimizing Memory Usage with tcmalloc”을 참고해 설치 후 LD_PRELOAD로 노드 시작 스크립트에 추가하세요.
네트워크·피어
피어가 연결되지 않음
확인:
- 방화벽에서 P2P 포트(설정 파일의 node.listen.port 등) 인바운드·아웃바운드 허용 여부.
- 메인넷/Nile 등 네트워크와 config가 일치하는지 (다른 네트워크용 config로 실행하면 안 됨).
Nile / Shasta
- Nile: 메인넷보다 코드가 앞서 있을 수 있으므로 nile-testnet 소스 빌드 및 해당 config 사용 권장.
- Shasta: 공개 피어를 받지 않으며, TronGrid 등 공개 API로 접근하는 방식이 일반적입니다.
참고 링크
- Deploy A Node
- Deploying a java-tron Node
- java-tron GitHub
- TronScan (블록·동기화 상태 참고)