TRON популярен для переводов USDT, поэтому многим сервисам нужна собственная нода вместо публичного API с ограничениями по частоте запросов. В этом руководстве на Linux-сервере настраивается FullNode java-tron и разбираются параметры, определяющие, сколько места она занимает на диске.
Что вам понадобится
- Диск. Это главная статья расходов. Ноде с полной историей нужен очень большой накопитель NVMe. «Лёгкая» (lite) fullnode стартует со снапшота и хранит гораздо меньше данных. Перед покупкой уточните актуальные цифры в документации java-tron.
- ОЗУ. 16 ГБ — обычный минимум, при этом куча JVM должна быть заметно меньше общего объёма.
- CPU. 4 ядра и больше.
- Java. java-tron поддерживает определённые версии Java. Используйте ту, которая указана в заметках к релизу.
Подобранные по размерам тарифы смотрите на странице хостинга нод TRON.
Шаг 1: подготовьте сервер
Используйте Ubuntu LTS и выполните шаги из статьи как защитить новый VPS. Создайте пользователя и установите нужный JDK.
sudo adduser --disabled-password --gecos "" tron
sudo apt update
sudo apt install -y openjdk-8-jdk # use the Java version in the java-tron release notes
java -version
Шаг 2: скачайте java-tron
Возьмите FullNode.jar и соответствующий main_net_config.conf из официальных релизов java-tron на GitHub и проверьте контрольные суммы.
sudo -u tron mkdir -p /home/tron/node && cd /home/tron/node
sudo -u tron wget https://github.com/tronprotocol/java-tron/releases/download/GreatVoyage-vVERSION/FullNode.jar
sudo -u tron wget https://raw.githubusercontent.com/tronprotocol/tron-deployment/master/main_net_config.conf
Шаг 3: выберите режим данных
Можно синхронизироваться с самого начала, что занимает много времени, или стартовать с официального снапшота. Снапшоты перечислены в документации TRON. Lite-снапшот даёт только недавнее состояние, чего достаточно для большинства платёжных задач и работы с кошельками. Скачайте снапшот и распакуйте его в output-directory до первого запуска.
Шаг 4: запустите ноду
sudo -u tron nohup java -Xmx12g -XX:+UseConcMarkSweepGC \
-jar FullNode.jar -c main_net_config.conf \
> start.log 2>&1 &
Задайте -Xmx ниже общего объёма ОЗУ, чтобы у операционной системы осталось место под кэш. Для постоянной работы оберните ту же команду в unit-файл systemd с Restart=on-failure.
Шаг 5: проверьте, что идёт синхронизация
tail -f /home/tron/node/logs/tron.log
curl -s http://127.0.0.1:8090/wallet/getnowblock | head -c 300
Если номер последнего блока совпадает с номером в публичном обозревателе, нода синхронизирована.
Файрвол
Откройте порт пиров (по умолчанию 18888 TCP/UDP) и держите порты HTTP и gRPC (8090, 8091, 50051) закрытыми. Поставьте перед ними аутентификацию, если API должны вызывать другие машины.