1 year PowerDedi turns 1: −20% on every server with code Ends in 14 h Claim offer

PowerDedi

Guides

TRON node requirements in 2026: FullNode, Lite FullNode and SR node

What a TRON FullNode, Lite FullNode or Super Representative node needs in 2026, from the official java-tron documentation: CPU, RAM, snapshot sizes, ports and JVM settings, and whether you need a node at all to send USDT on TRON.

By PowerDedi Engineering · · 8 min read

On this page 9 sections
  1. Official java-tron FullNode hardware requirements
  2. How much disk a TRON FullNode needs
  3. Lite FullNode: when 52 GB is enough
  4. CPU, RAM and JVM settings
  5. Ports and bandwidth
  6. Do I need my own TRON node to send or receive USDT (TRC-20)?
  7. Which PowerDedi server for a TRON node
  8. How to run a TRON node: setup outline
  9. Sources

A TRON FullNode needs 16 CPU cores, 32 GB of RAM and a fast SSD, according to TRON’s developer documentation, and a Super Representative node needs 32 cores and 64 GB. Disk is the figure to watch: the official Mainnet snapshot weighed about 3.3 TB compressed in September 2026. A Lite FullNode starts from about 52 GB.

Official java-tron FullNode hardware requirements

TRON has one client, java-tron, for every role. A FullNode keeps the whole chain, a Lite FullNode boots from a state snapshot, and a Super Representative (SR) node is a FullNode started with --witness to produce blocks. The table reproduces the TRON Developer Hub’s deployment guide, verified on October 15, 2026 (the page was last updated on October 13).

RoleCPURAMSSDBandwidth
Minimum (any node)8 cores16 GB3 TB100 Mbps
FullNode (recommended)16 cores32 GB3 TB+100 Mbps
FullNode running as SR32 cores64 GB3 TB+100 Mbps
Lite FullNode16 cores32 GBA few percent of a FullNode, growing100 Mbps

Two other official pages broadly agree on CPU and memory but not on disk. The java-tron README asks for 3.5 TB for a “stable” FullNode and 4 TB for its recommended FullNode and SR tiers, and for at least 50 Mbit/s downstream instead of 100 Mbps; its 200 GB minimum tier only covers a Lite FullNode. The java-tron documentation site says 3.5 TB+. Where they differ, size for the larger disk: the snapshot sizes below show that 3 TB no longer holds a FullNode.

How much disk a TRON FullNode needs

Syncing Mainnet from genesis takes “weeks to months”, so most new FullNodes start from a database snapshot produced by the TRON community. TRON’s snapshot page lists these Mainnet archives:

MirrorEngineContentsCompressed size
SingaporeLevelDBStandardAbout 3,348 GB (Sep 21, 2026)
USLevelDBStandardAbout 3,344 GB (Sep 19, 2026)
USRocksDBStandardAbout 3,306 GB (Sep 22, 2026)
SingaporeLevelDBWith internal transactionsAbout 3,538 GB (Sep 18, 2026)
USLevelDBWith TRX balance historyAbout 4,384 GB (Sep 16, 2026)

These are compressed archives. TRON says the extracted database needs additional space but does not publish its size; its node overview put a FullNode snapshot at about 3 TB in May 2026. Three practical rules follow:

  • Treat 4 TB of usable NVMe as a floor, not a target, and plan more for the internal-transaction or balance-history variants that exchanges and explorers often want.
  • Stream the download when space is tight. Piping wget into tar extracts the archive as it arrives and never stores it, but you cannot check its .md5sum file first. Downloading, verifying and then extracting needs room for both; TRON suggests at least 5 TB for the archive alone, on a separate destination.
  • Match the storage engine. LevelDB and RocksDB data are incompatible: the snapshot must match storage.db.engine in config.conf, and ARM64 nodes support only RocksDB.

The mirrors limit concurrent connections, so TRON asks for a single-threaded download tool. At a sustained 1 Gbps, a 3.3 TB archive takes a little over seven hours; at 100 Mbps, about three days.

Lite FullNode: when 52 GB is enough

A Lite FullNode runs the same FullNode.jar but starts from a snapshot holding the current state plus the latest 65,536 blocks, about 54 hours of history at TRON’s 3-second slots. TRON measured that snapshot at about 52 GB in May 2026, roughly 2% of a FullNode snapshot. It syncs new blocks, broadcasts transactions and answers current-state queries, which covers many wallet back ends and DApps.

The trade-offs are explicit. APIs that fetch blocks or transactions by ID or height are disabled by default, even for blocks produced after the node started; node.openHistoryQueryWhenLiteFN = true re-enables them, but only for data still on disk. And once running, a Lite FullNode grows at the same rate as a FullNode, so TRON suggests stopping it and re-pruning it with the Toolkit’s db lite command, monthly being a common cadence.

CPU, RAM and JVM settings

TRON’s troubleshooting guide is blunt about undersized machines: below 16 cores and 32 GB, a node “may stop syncing” when the chain hits a complex contract call, and both the physical core count and the thread count reported by /proc/cpuinfo should be at least 16 in production. On borderline hardware, raising vm.maxTimeRatio gives heavy contract calls more time during verification.

  • Match the JDK to the CPU. x86_64 nodes run only on JDK 8, with Oracle JDK 8 recommended for production; ARM64 nodes run only on JDK 17, from java-tron 4.8.1. The node exits at startup on a mismatch.
  • Size the heap. The reference commands use -Xms9G -Xmx9G on a 16 GB host. With 32 GB or more, set -Xmx to about 40% of physical RAM; the SR example for a 64 GB host uses -Xmx24G.
  • Pick the documented collector. CMS (-XX:+UseConcMarkSweepGC) on JDK 8, ZGC (-XX:+UseZGC) on JDK 17, with every JVM option placed before -jar.
  • Cap off-heap memory. Without -XX:MaxDirectMemorySize, TRON warns, direct memory can grow until the operating system kills the process. Preloading tcmalloc is also recommended to reduce fragmentation.

Ports and bandwidth

Defaults from the Mainnet config.conf shipped with java-tron:

ServiceConfig keyDefault portExpose to
P2Pnode.listen.port18888The internet
HTTP API: FullNode, Solidity, PBFTnode.http.*8090, 8091, 8092Trusted clients only
gRPC: FullNode, Solidity, PBFTnode.rpc.*50051, 50061, 50071Trusted clients only
JSON-RPC (off by default)node.jsonrpc.httpFullNodePort8545Trusted clients only
ZeroMQ eventsevent.subscribe.native.bindport5555Trusted clients only
SR backup (UDP)node.backup.port10001Your own SR instances

TRON’s advice is to expose only the P2P port and to put any public API behind a gateway with TLS, authentication and rate limiting. One inconsistency: the README’s example configuration shows gRPC on port 9090, while the shipped config.conf and the Developer Hub both use 50051.

For bandwidth, the Developer Hub asks for 100 Mbps and the README’s recommended tier for 50 Mbit/s downstream; neither gives a monthly traffic figure. The snapshot is the largest single transfer, and API clients add their own load afterwards; on an unmetered 10 Gbps port, neither appears on the bill.

Do I need my own TRON node to send or receive USDT (TRC-20)?

No. A TRON wallet, or an application calling a hosted API such as TronGrid, builds, signs and broadcasts the transaction through nodes that already exist. TRON’s node overview says that casual users, wallets and occasional transfers “usually do not need to run a node”. Your own node does not lower fees either: TRC-20 transfers consume Energy, obtained by staking TRX or by burning TRX per transaction, and the protocol charges it whichever node broadcasts.

A node of your own makes sense when the chain is part of your product:

  • Exchanges, custodial wallets and payment processors that detect deposits and send withdrawals at volume. TRON notes that most integrators start on TronGrid, which needs an API key for production traffic and is rate-limited by plan, and move to a self-hosted node when volume or feature needs justify it.
  • Indexers, explorers and analytics that parse every block. A self-hosted node has no rate limits, but no account-history endpoints either: you build those from block data.
  • Super Representatives, who must run the block-producing node themselves.

For deposit detection, TRON recommends vm.supportConstant = true (required to read TRC-20 balances with balanceOf), vm.saveInternalTx = true (to see TRX and TRC-10 moved by contracts) and a vm.maxTimeRatio of 20 or more on lower-spec hardware, and reading from solidified blocks, which trail the head by about a minute but cannot be rolled back. If you are paying for the server itself, PowerDedi accepts USDT on TRON.

Which PowerDedi server for a TRON node

RoleConfigurationFitPrice
Lite FullNode, wallet or payment back endRyzen 9 9950X: 16 cores, 128 GB DDR5, 2 × 1.92 TB NVMeAbove the 16-core, 32 GB profile; 3.84 TB in total is too small for a FullNode$159/mo
FullNodeRyzen 9 9950X3D: 16 cores, 192 GB DDR5, 2 × 3.84 TB NVMeMeets the recommended FullNode profile; 7.68 TB only as a striped volume$219/mo
Busy API FullNode or SREPYC 9454P: 48 cores, 256 GB ECC, 2 × 3.84 TB NVMeAbove the SR profile of 32 cores and 64 GB; same 7.68 TB striped$489/mo
SR with faster coresEPYC 9355P: 32 cores at 3.55 GHz base, 384 GB ECC, 2 × 3.84 TB NVMe Gen5The SR core count with higher clocks than the 9454P; built in 24 hours$519/mo
Exchange or explorer node with history snapshotsEPYC 9555P: 64 cores, 768 GB ECC, 4 × 3.84 TB NVMe Gen515.36 TB striped, enough for the 4.4 TB balance-history archive, or 7.68 TB mirrored for a standard FullNode; built in 24 hours$949/mo

The disk caveat matters more than the CPU one. Mirroring two drives leaves 3.84 TB, which no longer fits a FullNode, so the two-drive servers above work as FullNodes only with the drives striped (RAID 0), and a failed drive then means another snapshot restore. Only the EPYC 9555P combines a FullNode with redundancy. The EPYC 4585PX ($179/mo) has the 9950X’s disks with ECC memory, so it suits a Lite FullNode too. SR operators should budget for two servers: TRON’s upgrade procedure moves block production to a standby node before the primary is touched. And if you only need to move USDT, you need none of these.

How to run a TRON node: setup outline

These steps use only commands from TRON’s documentation; paths and the snapshot URL are placeholders.

# 1. Download FullNode.jar and the matching Toolkit.jar from the java-tron
#    releases page, or build from source:
git clone https://github.com/tronprotocol/java-tron.git
cd java-tron
git checkout -t origin/master
./gradlew clean build -x test

# 2. Restore a snapshot into output-directory, streamed (archive never stored)
wget -q -O - SNAPSHOT_URL/FullNode_output-directory.tgz | tar -zxvf -

# 3. Start a FullNode (x86_64, JDK 8; heap shown for a 16 GB host)
java -Xms9G -Xmx9G -XX:+UseConcMarkSweepGC -jar FullNode.jar -c config.conf

# 4. Follow the sync; stop with SIGTERM, never kill -9
tail -f ./logs/tron.log
kill -15 <pid>

# Lite FullNode: prune a stopped FullNode database into a Lite snapshot
java -jar Toolkit.jar db lite -o split -t snapshot -fn /path/to/fullnode/output-directory -ds /path/to/snapshot

For an SR, add --witness and provide the signing key, preferably as an encrypted keystore created with java -jar Toolkit.jar keystore new rather than in plain text in config.conf. Then firewall everything except SSH and port 18888 using our first-hour hardening checklist. Current stock and locations are on our blockchain node hosting page.

Sources

PowerDedi Engineering

The team that builds, racks and runs every PowerDedi server. We write about the hardware, networks and costs we deal with every day, and we cite our sources.

Related articles

All articles
Guides

Bitcoin full node hardware requirements in 2026

Disk, memory, CPU and bandwidth for a Bitcoin full node in 2026: chain size and growth, pruned versus archival nodes, Electrum server indexes, faster syncs with AssumeUTXO, and the configurations that fit.

4 min read

Your next server is 15 minutes away.

From $55/month with 10 Gbps unmetered, no setup fee and no contract.

Live in ~15 minCancel anytimeBTC, ETH, XMR, USDT or SOL