TRON 노드 설치 가이드
Java-Tron FullNode(및 SolidityNode, SR 노드)를 Linux/macOS에서 설치·실행하는 방법입니다.
출처: Deploy A Node, Deploying a java-tron Node.
목차
- 사전 요구사항
- JDK 설치
- FullNode.jar 획득
- 설정 파일 준비
- FullNode 실행
- SolidityNode 실행
- 블록 생산 노드(SR) 실행
- 데이터 스냅샷으로 동기화 가속
사전 요구사항
하드웨어
- 최소: 대역폭 100 Mbps, SSD 3 TB, RAM 16 GB, CPU 8코어
- 권장: 대역폭 100 Mbps, SSD 2.5 TB~3.5 TB+, RAM 32 GB, CPU 16코어
- SR 노드: RAM 64 GB, CPU 32코어 권장
OS
- Linux, macOS (Windows 미지원)
아키텍처별 JDK
| 아키텍처 | JDK |
|---|---|
| x86_64 (Intel/AMD) | Oracle JDK 8 |
| arm64 / aarch64 (Apple Silicon 등) | JDK 17 (java-tron 4.8.1 이상) |
JDK 설치
아키텍처 확인
uname -m
x86_64→ JDK 8 설치aarch64또는arm64→ JDK 17 설치
x86_64: Oracle JDK 8
- 다운로드: Oracle Java SE 8 Archive
- 설치 후 확인:
java -version
# 1.8.x 출력
arm64: JDK 17
- 다운로드: Oracle JDK 17 또는 배포판 제공 OpenJDK 17
- 설치 후 확인:
java -version
# 17.x 출력
Git (소스 빌드 시)
git --version
FullNode.jar 획득
방법 1: 릴리스에서 다운로드 (권장)
- java-tron Releases에서 최신 릴리스 선택
FullNode.jar다운로드
# 릴리스 페이지에서 태그 확인 (예: GreatVoyage-v4.7.0, Odyssey-v4.6.0 등)
# https://github.com/tronprotocol/java-tron/releases
TAG="GreatVoyage-v4.7.0"
wget https://github.com/tronprotocol/java-tron/releases/download/${TAG}/FullNode.jar
방법 2: 소스에서 빌드
git clone https://github.com/tronprotocol/java-tron.git
cd java-tron
git checkout -t origin/master
# 빌드 (테스트 제외)
./gradlew clean build -x test
빌드 성공 시 FullNode.jar는 build/libs/FullNode.jar에 생성됩니다.
의존성 오류 시:
./gradlew clean build -x test --refresh-dependencies
설정 파일 준비
메인넷 (Mainnet)
java-tron 저장소의 기본 설정 파일 사용:
- 다운로드: config.conf
# 소스 클론한 경우
# framework/src/main/resources/config.conf 가 이미 있음
# JAR만 사용하는 경우: 위 링크에서 config.conf 내용을 저장
curl -sL -o config.conf "https://raw.githubusercontent.com/tronprotocol/java-tron/master/framework/src/main/resources/config.conf"
Nile 테스트넷
Nile은 메인넷보다 신기능이 먼저 적용되므로, Nile 전용 소스를 빌드하는 것을 권장합니다.
- 저장소: tron-nile-testnet/nile-testnet
- 설정:
config-nile.conf등 Nile 공식 및 저장소 참고
# Nile 전용 빌드 예시
git clone https://github.com/tron-nile-testnet/nile-testnet.git
cd nile-testnet
# README의 Building 안내 따름
# 실행 시 -c config-nile.conf 사용
트론 배포 스크립트·config (선택)
tron-deployment에서 배포 스크립트와 config 예시를 제공합니다. 필요 시 참고하세요.
FullNode 실행
메인넷 FullNode (기본)
JVM 힙은 물리 메모리의 약 80% 이하로 설정합니다. -Xmx24g는 32 GB RAM 서버 예시입니다.
x86_64 (JDK 8):
java -Xmx24g -XX:+UseConcMarkSweepGC -jar FullNode.jar -c config.conf
arm64 (JDK 17):
java -Xmx9G -XX:+UseZGC -XX:MaxDirectMemorySize=1g -jar FullNode.jar -c config.conf
백그라운드 실행 예시:
nohup java -Xmx24g -XX:+UseConcMarkSweepGC -jar FullNode.jar -c config.conf > tron.log 2>&1 &
Nile 테스트넷 FullNode
java -Xmx24g -XX:+UseConcMarkSweepGC -jar FullNode.jar -c config-nile.conf
동기화 확인
- 로그:
tail -f ./logs/tron.log(또는 설정한 로그 경로) - 블록 탐색기: TronScan에서 최신 블록과 비교
종료
kill -15 <process_id>
SolidityNode 실행
SolidityNode는 신뢰하는 FullNode의 gRPC로부터 확정(solidified) 블록만 동기화합니다.
v4.8.1부터 SolidityNode.jar는 없으며, FullNode.jar --solidity로 실행합니다.
config 설정
config 파일에서 FullNode의 gRPC 주소 지정:
node {
trustNode = "127.0.0.1:50051"
...
}
실행
java -Xmx24g -XX:+UseConcMarkSweepGC -jar FullNode.jar --solidity -c config.conf
블록 생산 노드(SR) 실행
슈퍼 대표(Super Representative)가 블록을 생산하려면 --witness 옵션과 SR 계정의 private key(또는 keystore) 설정이 필요합니다.
config에 localwitness 설정
config.conf에 SR 계정의 private key(hex, 64자)를 넣습니다:
localwitness = [
650950B1...295BD812
]
보안: 평문 private key 대신 keystore + 비밀번호 방식을 권장합니다. 공식 문서 - Keystore + Password 참고.
실행
java -Xmx24g -XX:+UseConcMarkSweepGC -jar FullNode.jar --witness -c config.conf
keystore 사용 시에는 시작 시 비밀번호 입력이 필요하므로 nohup 대신 screen/tmux 사용을 권장합니다.
데이터 스냅샷으로 동기화 가속
메인넷·Nile은 초기 동기화 데이터가 커서 시간이 오래 걸립니다. Main Net Database Snapshots에서 데이터 스냅샷을 받아 사용할 수 있습니다.
- 최신 FullNode 데이터 스냅샷 다운로드
- 압축 해제 후 내용을 java-tron 프로젝트의 output-directory(config에 정의된 디렉터리, 기본
output-directory)에 넣기 - 위와 같이 FullNode 시작 → 스냅샷 기준부터 동기화 진행
참고
- Read-only 모드: P2P 비활성화 후 조회만 하려면 공식 문서 - read-only mode 참고 (
--p2p-disable true또는node.p2p.enable = false). - JVM 튜닝: 메인넷·SR 노드용 상세 JVM 옵션은 Deploying a java-tron Node - JVM Parameter Optimization 참고.
- tcmalloc: 메모리 최적화를 위해 tcmalloc 사용 방법은 공식 문서 “Optimizing Memory Usage with tcmalloc” 섹션을 참고하세요.