java-tron process. On the first deploy, the node seeds from a recent community snapshot to cut sync time.
To deploy one, open Deploy Node, pick an executor that supports Tron, then choose the network, node type, client (java-tron), and version. The wizard offers exactly what your executor declares.
Networks and resources
Tron runs onmainnet. Defaults are pre-filled in the deploy wizard per node type; lower them with caution.
Clients
In-place update steps are available between the listed versions; the ones carrying a security fix are marked security-urgent, the rest are optional — see Update a node’s version. Event streaming needs 4.8.2 or newer.
Ports
Ports are managed for you and aren’t user-overridable. Direct publishes both
8090 and 50051; Local closes both; Public domain proxies the HTTP API and keeps gRPC local (see gRPC and WebSocket ports). The solidity and PBFT ports are never published.
java-tron takes no bind address, so on an Agent host Novacula keeps the private ports — and
8090 / 50051 unless they’re set to Direct — closed with the host firewall. Each port is reserved per node, so two Tron nodes on one host don’t collide on them.Node types
Tron offers Full and Lite, and the choice is really a choice of snapshot:- Full — seeds from the full compressed snapshot and keeps deep block and transaction history. Heaviest on disk.
- Lite — seeds from the lite snapshot, so the node starts at a recent block instead of carrying history back toward genesis. Roughly a quarter of the disk on mainnet, and it serves current chain state and transactions the same way.
Config overrides
Tron config keys are set the same way as on any node, at deploy time — see Edit a running node. Settings that control networking, ports, and the data directory are managed and rejected if you try to set them. The keys you can override are:
The rest of the node config stays intact; your overrides are merged on top.
Event streaming to MongoDB
A Tron node can stream chain events to a MongoDB destination through java-tron’s event plugin. It’s optional and off by default. Configure it in the deploy wizard’s Connections step (Tron always shows this step), or later on the node’s Connections tab — see Connections. It needs java-tron 4.8.2 or newer and a reachable MongoDB (host, port, database, username, and password). You choose which event streams to write:
A deployment writes at most two of the streams above at once, and always at least one; the finality watermark is separate. Each stream lands in its own MongoDB collection, named
<node-id>_<topic> by default — you can override the names, but they must differ between streams, and if several nodes share one database, keep their collection names distinct to avoid collisions.
That two-stream limit and the decoded-or-raw choice belong to the deploy wizard. The node’s Connections tab edits the plugin at the level of java-tron’s individual topics (block, transaction, contractevent, contractlog, solidity, solidityevent, soliditylog), each with its own options, so a running node can carry any combination.
Hub checks topic keys when you save: a misspelled topic is refused with component '<role>' has unknown client option '<path>' instead of being silently ignored.
Optional filters (fromBlock, toBlock, contract addresses, and topics) narrow what’s written to the contract event and log streams; they don’t apply to blocks, transactions, or the watermark. Historical replay is off unless you set a start block.
Resuming a historical backfill
With a start block set and at least one stream enabled, a pre-start step runs on every node start and asks MongoDB (with a 5-second timeout) how far each enabled collection got. Replay then resumes from the lowest of those highest blocks, minus a safety margin of 1,000 blocks, and never earlier than your configured start block — so a restart continues the backfill instead of starting it over. Re-writing the blocks in the margin is harmless, because events are upserted.- A collection is empty — replay starts from the configured start block.
- MongoDB doesn’t answer — the node keeps the resume point it used last time.
- The resume step itself is unavailable — the node still starts, using the resume point written on an earlier start, or the configured start block if there is none.