Nodes/tron/localhost/installation

tron

TRON 노드 설치 가이드

7분 읽기 · localhost/installation

list목차(30)

TRON 노드 설치 가이드

Java-Tron FullNode(및 SolidityNode, SR 노드)를 Linux/macOS에서 설치·실행하는 방법입니다.
출처: Deploy A Node, Deploying a java-tron Node.

목차


사전 요구사항

하드웨어

  • 최소: 대역폭 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

java -version
# 1.8.x 출력

arm64: JDK 17

  • 다운로드: Oracle JDK 17 또는 배포판 제공 OpenJDK 17
  • 설치 후 확인:
java -version
# 17.x 출력

Git (소스 빌드 시)

git --version

FullNode.jar 획득

방법 1: 릴리스에서 다운로드 (권장)

  1. java-tron Releases에서 최신 릴리스 선택
  2. 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.jarbuild/libs/FullNode.jar에 생성됩니다.
의존성 오류 시:

./gradlew clean build -x test --refresh-dependencies

설정 파일 준비

메인넷 (Mainnet)

java-tron 저장소의 기본 설정 파일 사용:

# 소스 클론한 경우
# 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 전용 소스를 빌드하는 것을 권장합니다.

# 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에서 데이터 스냅샷을 받아 사용할 수 있습니다.

  1. 최신 FullNode 데이터 스냅샷 다운로드
  2. 압축 해제 후 내용을 java-tron 프로젝트의 output-directory(config에 정의된 디렉터리, 기본 output-directory)에 넣기
  3. 위와 같이 FullNode 시작 → 스냅샷 기준부터 동기화 진행

참고

tron 다른 챕터