Nodes and Clients

TRON is a distributed network of computers running software (known as nodes) that can verify blocks and transaction data. You need an application, known as a client, on your computer to "run" a node.

What Are Nodes And Clients?

"Node" refers to a running piece of client software. A client is an implementation of TRON protocol that verifies all transactions in each block, keeping the network secure and the data accurate.

At present, the TRON client is implemented by Java language, which follows the TRON protocol and realizes the functions of the TRON blockchain.

Node Types

There are different types of nodes in the TRON network as follows:

Fullnode

Fullnode stores and synchronizes full blockchain data, verifies all blocks and states, provides HTTP API and Grpc API for external query. Please note: Super Representatives need to run a fullNode to generate blocks and package transactions.Grpc API.

Lite Fullnode

Lite FullNode runs the same code with FullNode, the difference is that Lite FullNode only starts based on state data snapshot, which only contains all account state data and historical data of the latest 65536 blocks. The state data snapshot is small, only about 3% of the FullNode data. Therefore, Lite Fullnode has the advantages of occupying less disk space and startting up fast, but it does not provide historical block and transaction data query by default, and only provides part of HTTP API and GRPC API of FullNode. For APIs that are not supported by Lite Fullnode, please refer to HTTP, GRPC. But these APIs can be opened by configuring openHistoryQueryWhenLiteFN = true in the configuration file, because after the Lite Fullnode startup, the saved data by the Lite Fullnode is exactly the same as that of the FullNode, so after this configuration item is turned on, the Lite Fullnode supports querying the block data synchronized after the node startup, but still does not support querying the block data before the node startup.

Therefore, if developers only need to use nodes for block synchronization, processing and broadcasting transactions, Or only need to query the blocks and transactions synchronized after the node started, then Lite FullNode will be a better choice.

Why Should I Run A TRON Node?

Running a node allows you to trustlessly and privately use the TRON network while supporting the ecosystem. Your node verifies all the transactions and blocks against consensus rules by itself. This means you don’t have to rely on any other nodes in the network or fully trust them. And you can program your own custom RPC endpoints.

Running A Node

Running your own node offers you various benefits, opens up new possibilities, and helps support the TRON ecosystem. This page will guide you to run your own node and participate in validating TRON network transactions.

If you want to run your own TRON client, please refer to How to deploy a fullnode.

Hardware Requirements

Before installing any client, please ensure your computer has enough resources to run it. The recommended specifications are as belows:

  • Fullnode:
    • CPU:16 cores
    • RAM:32G
    • Bandwidth:100M
    • SSD:2.5T+
  • Fullnode running by Super Representative:
    • CPU:32 cores
    • RAM:64G
    • Bandwidth:100M
    • SSD:2.5T+

Getting the client software

You can get client software by compiling the source code or from a released version.

Starting the client

Before starting TRON client software, perform a last check that your environment is ready. For example, make sure:

  • There is enough disk space.
  • Memory and CPU are not halted by other programs.
  • Operating system is updated to the latest version.
  • System has the correct time and date.

When everything is ready, please refer to guide to run a TRON Node. Current blockchain data will be available once the client is successfully synced to the current state.

Using the client

Clients offer HTTP & RPC API that you can use to interact with the TRON network, For details, please refer to API doc.

Keeping node online

Your node doesn't have to be online non-stop but you should keep it online as much as possible to keep it in sync with the network. You can shut it down to restart it but keep in mind that:

  • Forced shutdowns can damage the database. Once the database is damaged, it needs to be resynchronized with the latest backup database.
  • Your client will go out of sync with the network and will need to resync when you restart it.

Updating client

You need to keep your client software up-to-date with the latest version. Especially before hard forks, make sure you are running the correct client version.

Alternatives

Running your own node can be difficult and you don’t always need to run your own instance. In this case, you can use a third party API provider like Trongrid service. For an overview of using it, please check out Trongrid Guide.