From c2aa62f92b40bb2c277350088296bcb113caaf18 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Thu, 18 Dec 2025 17:25:32 +0800 Subject: [PATCH 01/15] udpate script (+12 squashed commits) Squashed commits: [5d88cbc122] udpate script [af877d7776] add git clone [1eea33ff38] add script [ed95abc99f] fix link [a5b447d847] fix link [434d6b3cb9] fix format [0aad46f3ff] fix format [791a1b6fa5] update [5bb05dae72] update [762ae52c96] delete unused allcoredev [2fdd6cb797] discard [11480cf287] delete (+1 squashed commit) Squashed commits: [38bc6b7702] dd (+3 squashed commits) Squashed commits: [6b6c3c9002] discard [063a20301c] update readme [5d821cad1f] ok --- README.md | 267 +++++++++++++------------------ gradle/verification-metadata.xml | 6 +- install_dependencies.sh | 133 +++++++++++++++ 3 files changed, 243 insertions(+), 163 deletions(-) create mode 100755 install_dependencies.sh diff --git a/README.md b/README.md index dbfcd1c0ee4..d4eca56e652 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,25 @@


-
- java-tron -

-

- Java implementation of the Tron Protocol + Java implementation of the TRON Protocol

- - - - - - - - - - - - - - - - - - - - - - - + + + + + +

## Table of Contents - [What’s TRON?](#whats-tron) - [Building the Source Code](#building-the-source-code) +- [Executables](#executables) - [Running java-tron](#running-java-tron) - [Community](#community) - [Contribution](#contribution) @@ -49,63 +29,46 @@ # What's TRON? -TRON is a project dedicated to building the infrastructure for a truly decentralized Internet. - -- Tron Protocol, one of the largest blockchain-based operating systems in the world, offers scalable, high-availability and high-throughput support that underlies all the decentralized applications in the TRON ecosystem. +TRON builds decentralized Internet infrastructure. -- Tron Virtual Machine (TVM) allows anyone to develop decentralized applications (DAPPs) for themselves or their communities with smart contracts thereby making decentralized crowdfunding and token issuance easier than ever. - -TRON enables large-scale development and engagement. With over 2000 transactions per second (TPS), high concurrency, low latency, and massive data transmission. It is ideal for building decentralized entertainment applications. Free features and incentive systems allow developers to create premium app experiences for users. +- Tron Protocol: high-throughput(2000+ TPS), scalable blockchain OS (DPoS consensus) powering the TRON ecosystem. +- Tron Virtual Machine (TVM): EVM-compatible smart-contract engine for fast smart-contract deployment. # Building the Source Code +Before building java-tron, make sure you have: +- Hardware with at least 4 CPU cores, 16 GB RAM, 20 GB free disk space for a smooth compilation process. +- Operating system: `Linux` or `MacOS` (Windows is not supported). +- Git and correct JDK(version `8` or `17`) installed based on your CPU architecture. -Building java-tron requires `git` package - -## Operating systems -Make sure you operate on `Linux` or `MacOS` operating systems, other operating systems are not supported yet. - -## Architecture - -### x86_64 -64-bit version of `Oracle JDK 8` to be installed, other JDK versions are not supported yet. - -### ARM64 -64-bit version of `JDK 17` to be installed, other JDK versions are not supported yet. - -## Build -Clone the repo and switch to the `master` branch +For convenience, an automated script [`install_dependencies.sh`](install_dependencies.sh) is provided to install the required dependencies: ```bash -$ git clone https://github.com/tronprotocol/java-tron.git -$ cd java-tron -$ git checkout -t origin/master +chmod +x install_dependencies.sh +./install_dependencies.sh ``` +> **Note**: For production-grade stability with JDK 8, Oracle JDK 8 is strongly recommended (the provided script installs OpenJDK 8). For step-by-step manual installation instructions, consult the [Prerequisites and Installation Guide](https://tronprotocol.github.io/documentation-en/using_javatron/installing_javatron/#prerequisites-before-compiling-java-tron). -then run the following command to build java-tron, the `FullNode.jar` file can be found in `java-tron/build/libs/` after build successfully. - +Once all dependencies have been installed, download and compile java-tron by executing: ```bash -$ ./gradlew clean build -x test - # To fix DependencyVerificationException: Dependency verification failed for configuration ':xxx' x artifacts failed verification -$ ./gradlew clean --refresh-dependencies --write-verification-metadata sha256 - +git clone https://github.com/tronprotocol/java-tron.git +cd java-tron +git checkout -t origin/master +./gradlew clean build -x test ``` +* The parameter `-x test` indicates skipping the execution of test cases. If you encounter any error please refer to the [Compiling java-tron Source Code](https://tronprotocol.github.io/documentation-en/using_javatron/installing_javatron/#compiling-java-tron-source-code) documentation for troubleshooting steps. -# Running java-tron +# Executables -## Operating systems -Make sure you operate on `Linux` or `MacOS` operating systems, other operating systems are not supported yet. +The java-tron project comes with several runnable artifacts and helper scripts found in the project root and build directories. -## Architecture +| Artifact/Script | Description | +| :---------------------- | :---------- | +| **`FullNode.jar`** | Main TRON node executable (generated in `build/libs/` after a successful build following the above guidance). Runs as a full node by default. `java -jar FullNode.jar --help` for command line options| +| **`Toolkit.jar`** | Node management utility(generated in `build/libs/`): partition, prune, copy, convert DBs; shadow-fork tool. [Usage](https://tronprotocol.github.io/documentation-en/using_javatron/toolkit/#toolkit-a-java-tron-node-maintenance-suite) | +| **`start.sh`** | Quick start script (x86_64, JDK 8) to download/build/run `FullNode.jar`. See the tool [guide](./shell.md). | +| **`start.sh.simple`** | Quick start script template (ARM64, JDK 17). See usage notes inside the script. | -### X86_64 -Requires 64-bit version of `Oracle JDK 8` to be installed, other JDK versions are not supported yet. - -### ARM64 -Requires 64-bit version of `JDK 17` to be installed, other JDK versions are not supported yet. - - -## Configuration flile -Get the mainnet configuration file: [config.conf](framework/src/main/resources/config.conf), other network configuration files can be found [here](https://github.com/tronprotocol/tron-deployment). +# Running java-tron ## Hardware Requirements @@ -116,117 +79,102 @@ Get the mainnet configuration file: [config.conf](framework/src/main/resources/c | FullNode (Recommended) | 16+ | 32 GB+ | 4 TB | ≥ 50 MB/s | | Super Representative | 32+ | 64 GB+ | 4 TB | ≥ 50 MB/s | -## Running a full node for mainnet - -Full node has full historical data, it is the entry point into the TRON network, it can be used by other processes as a gateway into the TRON network via HTTP and GRPC endpoints. You can interact with the TRON network through full node:transfer assets, deploy contracts, interact with contracts and so on. `-c` parameter specifies a configuration file to run a full node: -### x86_64 (JDK 8) -```bash -$ nohup java -Xms9G -Xmx12G -XX:ReservedCodeCacheSize=256m \ - -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m \ - -XX:MaxDirectMemorySize=1G -XX:+PrintGCDetails \ - -XX:+PrintGCDateStamps -Xloggc:gc.log \ - -XX:+UseConcMarkSweepGC -XX:NewRatio=3 \ - -XX:+CMSScavengeBeforeRemark -XX:+ParallelRefProcEnabled \ - -XX:+HeapDumpOnOutOfMemoryError \ - -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 \ - -jar FullNode.jar -c main_net_config.conf >> start.log 2>&1 & -``` -### ARM64 (JDK 17) -```bash -$ nohup java -Xmx9G -XX:+UseZGC \ - -Xlog:gc,gc+heap:file=gc.log:time,tags,level:filecount=10,filesize=100M \ - -XX:ReservedCodeCacheSize=256m \ - -XX:+UseCodeCacheFlushing \ - -XX:MetaspaceSize=256m \ - -XX:MaxMetaspaceSize=512m \ - -XX:MaxDirectMemorySize=1g \ - -XX:+HeapDumpOnOutOfMemoryError \ - -jar FullNode.jar -c main_net_config.conf >> start.log 2>&1 & -``` +## Launching a full node +A full node acts as a gateway to the TRON network, exposing comprehensive interfaces via HTTP, gRPC, and JSON-RPC APIs. Through these endpoints, clients may execute asset transfers, deploy smart contracts, and invoke on-chain logic. It must join a TRON network to participate in the network's consensus and transaction processing. -> **Memory Tuning** -> - For 16 GB RAM servers: JDK 8 use `-Xms9G -Xmx12G`; JDK 17 use `-Xmx9G`. -> - For servers with ≥32 GB RAM, suggest setting the maximum heap size (`-Xmx`) to 40 % of total RAM. +### Network Types -## Running a super representative node for mainnet +The TRON network is mainly divided into: -Adding the `--witness` parameter to the startup command, full node will run as a super representative node. The super representative node supports all the functions of the full node and also supports block production. Before running, make sure you have a super representative account and get votes from others. Once the number of obtained votes ranks in the top 27, your super representative node will participate in block production. +- **Main Network (Mainnet)**: The primary public blockchain where real value (TRX, TRC-20 tokens, etc) is transacted, secured by a massive decentralized network. +- **Nile Test Network(TestNet)**: A public test network for TRON, used for development, testing, and DApp deployment. +- **Shasta Testnet**: Another public test network for testing, but currently does not support node joining. +- **Private Networks**: Customized TRON networks set up by private entities for testing, development, or specific use cases. -Fill in the private key of a super representative address into the `localwitness` list in the `main_net_config.conf`. Here is an example: +Network selection is performed by specifying the appropriate configuration file upon full-node startup. +- Mainnet configuration: [config.conf](framework/src/main/resources/config.conf) +- Nile testnet configuration: [config-nile.conf](https://github.com/tron-nile-testnet/nile-testnet/blob/master/framework/src/main/resources/config-nile.conf) +### 1. Join the TRON main network +Launch a main network full node using the built-in default configuration: +```bash +nohup java -Xms9G -jar ./build/libs/FullNode.jar & ``` - localwitness = [ - - ] -``` +* `nohup ... &`: Runs the command in the background and ignores the hangup signal. +* `-Xms9G`: Sets the JVM initial heap size (Xms) to `9 GB`. -then run the following command to start the node: +> For production main network deployments, review the [JVM Parameter Optimization for FullNode](https://tronprotocol.github.io/documentation-en/using_javatron/installing_javatron/#jvm-parameter-optimization-for-mainnet-fullnode-deployment) to select the complete Java command. -### x86_64 (JDK 8) +Checking the logs, you can monitor the block syncing progress: ```bash -$ nohup java -Xms9G -Xmx12G -XX:ReservedCodeCacheSize=256m \ - -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m \ - -XX:MaxDirectMemorySize=1G -XX:+PrintGCDetails \ - -XX:+PrintGCDateStamps -Xloggc:gc.log \ - -XX:+UseConcMarkSweepGC -XX:NewRatio=3 \ - -XX:+CMSScavengeBeforeRemark -XX:+ParallelRefProcEnabled \ - -XX:+HeapDumpOnOutOfMemoryError \ - -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 \ - -jar FullNode.jar --witness -c main_net_config.conf >> start.log 2>&1 & +tail -f ./logs/tron.log ``` -### ARM64 (JDK 17) + +Use [TronScan](https://tronscan.org/#/), TRON’s official block explorer, to view main network transactions, blocks, accounts, TRC-10/TRC-20 transfers, contract events, witness voting, and governance metrics. + +### 2. Join Nile test network +Use the `-c` flag to point the node to a configuration for a specific network. For Nile, use [config-nile.conf](https://github.com/tron-nile-testnet/nile-testnet/blob/master/framework/src/main/resources/config-nile.conf): + ```bash -$ nohup java -Xms9G -Xmx9G -XX:+UseZGC \ - -Xlog:gc,gc+heap:file=gc.log:time,tags,level:filecount=10,filesize=100M \ - -XX:ReservedCodeCacheSize=256m \ - -XX:+UseCodeCacheFlushing \ - -XX:MetaspaceSize=256m \ - -XX:MaxMetaspaceSize=512m \ - -XX:MaxDirectMemorySize=1g \ - -XX:+HeapDumpOnOutOfMemoryError \ - -jar FullNode.jar --witness -c main_net_config.conf >> start.log 2>&1 & +nohup java -jar ./build/libs/FullNode.jar -c config-nile.conf & ``` -## Quick Start Tool +Nile resources: explorer, faucet, wallet, developer docs, and network statistics at [nileex.io](https://nileex.io/). -### x86_64 (JDK 8) -An easier way to build and run java-tron is to use `start.sh`. `start.sh` is a quick start script written in the Shell language. You can use it to build and run java-tron quickly and easily. +### 3. Access Shasta test network +Shasta does not accept public node peers. Programmatic access is available via TronGrid endpoints; see [TronGrid Service](https://developers.tron.network/docs/trongrid) for details. +Shasta resources: explorer, faucet, wallet, developer docs, and network statistics at [shastaex.io](https://shastaex.io/). -Here are some common use cases of the scripting tool -- Use `start.sh` to start a full node with the downloaded `FullNode.jar` -- Use `start.sh` to download the latest `FullNode.jar` and start a full node. -- Use `start.sh` to download the latest source code and compile a `FullNode.jar` and then start a full node. +### 4. Set up a private network +For setting up a private network for testing or development, follow the [Private Network guide](https://tronprotocol.github.io/documentation-en/using_javatron/private_network/). -For more details, please refer to the tool [guide](./shell.md). -### ARM64 (JDK 17) -You can refer to the [start.sh.simple](start.sh.simple). +## Running a super representative node + +To operate the node as a Super Representative (SR), append the `--witness` parameter to the standard launch command. An SR node inherits every capability of a FullNode and additionally participates in block production. Refer to the [Super Representative documentation](https://tronprotocol.github.io/documentation-en/mechanism-algorithm/sr/) for eligibility requirements; once your SR address has accumulated sufficient votes to place among the top 27, the node will be automatically scheduled to produce blocks. + +Fill in the private key of your SR address into the `localwitness` list in the configuration file. Here is an example: -```bash -# cp start.sh.simple start.sh -# Usage: -# sh start.sh # Start the java-tron FullNode -# sh start.sh -s # Stop the java-tron FullNode -# sh start.sh [options] # Start with additional java-tron options,such as: -c config.conf -d /path_to_data, etc. -# ``` + localwitness = [ + + ] +``` + +Subsequently, launch the node by executing the optimized Java startup command detailed in the [JVM Parameter Optimization for Mainnet FullNode Deployment](https://tronprotocol.github.io/documentation-en/using_javatron/installing_javatron/#jvm-parameter-optimization-for-mainnet-fullnode-deployment) guide. You could also test the process by connecting to a testnet or setting up a private network using the correct configuration file. + +## Programmatically interfacing FullNode -## Run inside Docker container +Upon the FullNode startup successfully, interaction with the TRON network is facilitated through a comprehensive suite of programmatic interfaces exposed by java-tron: +- **HTTP API**: See the complete [HTTP API reference and endpoint list](https://tronprotocol.github.io/documentation-en/api/http/). +- **gRPC**: High-performance APIs suitable for service-to-service integration. See the supported [gRPC reference](https://tronprotocol.github.io/documentation-en/api/grpc/). +- **JSON-RPC**: Provides Ethereum-compatible JSON-RPC methods for logs, transactions and contract calls. See the supported [JSON-RPC methods](https://tronprotocol.github.io/documentation-en/api/json-rpc/). -One of the quickest ways to get `java-tron` up and running on your machine is by using Docker: +Enable or disable each interface in the configuration file: -```shell -$ docker run -d --name="java-tron" \ - -v /your_path/output-directory:/java-tron/output-directory \ - -v /your_path/logs:/java-tron/logs \ - -p 8090:8090 -p 18888:18888 -p 50051:50051 \ - tronprotocol/java-tron \ - -c /java-tron/config/main_net_config.conf ``` +node { + http { + fullNodeEnable = true + fullNodePort = 8090 + } + + jsonrpc { + httpFullNodeEnable = true + httpFullNodePort = 8545 + } + + rpc { + enable = true + port = 9090 + } +} +``` +When exposing any of these APIs on a public interface, ensure that you place the node behind proper authentication, rate limiting, and network access controls according to your security requirements. -This will mount the `output-directory` and `logs` directories on the host, the docker.sh tool can also be used to simplify the use of docker, see more [here](docker/docker.md). +Public, hosted HTTP endpoints (main and test networks) are provided by TronGrid. Please consult [TRON Network HTTP Endpoints](https://developers.tron.network/docs/connect-to-the-tron-network#tron-network-http-endpoints) for the current catalogue. For method coverage and request formats, refer to the HTTP API reference above. # Community @@ -234,8 +182,6 @@ This will mount the `output-directory` and `logs` directories on the host, the d The [Core Devs Community](https://t.me/troncoredevscommunity) and [Tron Official Developer Group](https://t.me/TronOfficialDevelopersGroupEn) are Telegram channels specifically designed for java-tron community developers to engage in technical discussions. -[tronprotocol/allcoredev](https://gitter.im/tronprotocol/allcoredev) is the official Gitter channel for developers. - # Contribution Thank you for considering to help out with the source code! If you'd like to contribute to java-tron, please see the [Contribution Guide](./CONTRIBUTING.md) for more details. @@ -244,8 +190,9 @@ Thank you for considering to help out with the source code! If you'd like to con - [Medium](https://medium.com/@coredevs) java-tron's official technical articles are published there. - [Documentation](https://tronprotocol.github.io/documentation-en/) and [TRON Developer Hub](https://developers.tron.network/) serve as java-tron’s primary documentation websites. -- [Test network](http://nileex.io/) A stable test network of TRON contributed by TRON community. -- [Tronscan](https://tronscan.org/#/) TRON network blockchain browser. +- [TronScan](https://tronscan.org/#/) TRON main network blockchain browser. +- [Nile Test network](http://nileex.io/) A stable test network of TRON contributed by TRON community. +- [Shasta Test network](https://shasta.tronex.io/) A stable test network of TRON contributed by TRON community. - [Wallet-cli](https://github.com/tronprotocol/wallet-cli) TRON network wallet using command line. - [TIP](https://github.com/tronprotocol/tips) TRON Improvement Proposal (TIP) describes standards for the TRON network. - [TP](https://github.com/tronprotocol/tips/tree/master/tp) TRON Protocol (TP) describes standards already implemented in TRON network but not published as a TIP. diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 40771152b4b..72a5d6dda2c 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -853,9 +853,9 @@ - - - + + + diff --git a/install_dependencies.sh b/install_dependencies.sh new file mode 100755 index 00000000000..ec97cc6685a --- /dev/null +++ b/install_dependencies.sh @@ -0,0 +1,133 @@ +#!/usr/bin/env bash + +set -e + +OS="$(uname -s)" +ARCH="$(uname -m)" + +echo ">>> Environment Detection" +if [[ "$OS" == "Darwin" ]]; then + echo " OS: MacOS $OS" +elif [[ "$OS" == "Linux" ]]; then + echo " OS: $OS" +fi +echo " Architecture: $ARCH" +echo "----------------------------------------" + +install_macos() { + if ! command -v brew &> /dev/null; then + echo ">>> Homebrew not found. Installing Homebrew..." + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + + # Add Homebrew to PATH for the current session (Apple Silicon vs Intel) + if [[ "$ARCH" == "arm64" ]]; then + eval "$(/opt/homebrew/bin/brew shellenv)" + else + eval "$(/usr/local/bin/brew shellenv)" + fi + fi + + echo ">>> Updating Homebrew..." + brew update + + echo ">>> Installing Git..." + brew install git + + if [[ "$ARCH" == "x86_64" ]]; then + echo ">>> Architecture is x86_64. Installing JDK 8..." + brew install openjdk@8 + + echo ">>> Configuring PATH for openjdk@8 in this script session..." + export PATH="/usr/local/opt/openjdk@8/bin:$PATH" + echo " PATH updated to include /usr/local/opt/openjdk@8/bin" + + elif [[ "$ARCH" == "arm64" ]]; then + echo ">>> Architecture is arm64. Installing JDK 17..." + brew install openjdk@17 + + echo ">>> Configuring PATH for openjdk@17 in this script session..." + export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH" + echo " PATH updated to include /opt/homebrew/opt/openjdk@17/bin" + + else + echo "Error: Unsupported architecture for macOS script: $ARCH" + exit 1 + fi +} + +install_linux() { + if command -v dnf &> /dev/null; then + PKG_MANAGER="dnf" + INSTALL_CMD="sudo dnf install -y" + UPDATE_CMD="sudo dnf check-update" + elif command -v yum &> /dev/null; then + PKG_MANAGER="yum" + INSTALL_CMD="sudo yum install -y" + UPDATE_CMD="sudo yum check-update" + elif command -v apt-get &> /dev/null; then + PKG_MANAGER="apt-get" + INSTALL_CMD="sudo apt-get install -y" + UPDATE_CMD="sudo apt-get update" + else + echo "Error: Unsupported package manager. Only apt-get (Debian/Ubuntu) and yum/dnf (RHEL/CentOS/Amazon Linux) are currently supported." + exit 1 + fi + + echo ">>> Updating package index ($PKG_MANAGER)..." + $UPDATE_CMD || true + + echo ">>> Installing Git..." + $INSTALL_CMD git + + install_first_available() { + for pkg in "$@"; do + if $INSTALL_CMD "$pkg"; then + return 0 + fi + done + return 1 + } + + if [[ "$ARCH" == "x86_64" ]]; then + echo ">>> Architecture is x86_64. Installing JDK 8..." + if [[ "$PKG_MANAGER" == "apt-get" ]]; then + install_first_available openjdk-8-jdk + else + install_first_available java-1.8.0-amazon-corretto-devel java-1.8.0-openjdk-devel + fi || { echo "Error: Unable to install JDK 8 on $PKG_MANAGER"; exit 1; } + elif [[ "$ARCH" == "aarch64" ]] || [[ "$ARCH" == "arm64" ]]; then + echo ">>> Architecture is arm64/aarch64. Installing JDK 17..." + if [[ "$PKG_MANAGER" == "apt-get" ]]; then + install_first_available openjdk-17-jdk + else + install_first_available java-17-amazon-corretto-devel java-17-openjdk-devel + fi || { echo "Error: Unable to install JDK 17 on $PKG_MANAGER"; exit 1; } + else + echo "Error: Unsupported architecture for Linux script: $ARCH" + exit 1 + fi +} + +if [[ "$OS" == "Darwin" ]]; then + install_macos +elif [[ "$OS" == "Linux" ]]; then + install_linux +else + echo "Error: Unsupported Operating System: $OS" + exit 1 +fi + +# update Gradle dependency verification metadata +if [[ -f "./gradlew" ]]; then + # If an executable named gradlew exists in the current directory, enter this branch + # This line detects whether the project uses the Gradle build tool so that subsequent Gradle commands can be executed + echo ">>> Updating Gradle dependency verification metadata..." + ./gradlew --write-verification-metadata sha256 --refresh-dependencies +fi + +echo "----------------------------------------" +echo ">>> Installation logic completed." +echo "Please verify installations manually if any errors occurred above." +echo "Check versions with:" +echo " git --version" +echo " java -version" From c4fd34ca58a7fc6f1c9682d81d4de8918554f7f6 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Fri, 16 Jan 2026 10:57:48 +0800 Subject: [PATCH 02/15] revert changes --- gradle/verification-metadata.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 72a5d6dda2c..40771152b4b 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -853,9 +853,9 @@ - - - + + + From db355d9e2eed2b98447d9b7b869013341e33e090 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Fri, 16 Jan 2026 11:00:46 +0800 Subject: [PATCH 03/15] update scripts echo --- install_dependencies.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/install_dependencies.sh b/install_dependencies.sh index ec97cc6685a..621a36fdc51 100755 --- a/install_dependencies.sh +++ b/install_dependencies.sh @@ -13,6 +13,12 @@ elif [[ "$OS" == "Linux" ]]; then fi echo " Architecture: $ARCH" echo "----------------------------------------" +echo ">>> Note: This script has been tested on:" +echo " - macOS x86_64 (JDK 8)" +echo " - macOS arm64 (JDK 17)" +echo " - Linux x86_64 (generic, including Ubuntu) (JDK 8)" +echo " - Linux arm64/aarch64 (generic, including Ubuntu) (JDK 17)" +echo "----------------------------------------" install_macos() { if ! command -v brew &> /dev/null; then From 907b237887f1f49243fef3be528d2374a436307c Mon Sep 17 00:00:00 2001 From: GrapeS Date: Fri, 16 Jan 2026 11:16:27 +0800 Subject: [PATCH 04/15] update format --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d4eca56e652..ca7443eaea3 100644 --- a/README.md +++ b/README.md @@ -73,11 +73,11 @@ The java-tron project comes with several runnable artifacts and helper scripts f ## Hardware Requirements | Deployment Tier | CPU Cores | Memory | High-performance SSD Storage | Network Downstream | -|-----------------|-----------|--------|----------------------------------|--------------------| -| FullNode (Minimum) | 8 | 16 GB | 200 GB ([Lite](https://tronprotocol.github.io/documentation-en/using_javatron/litefullnode/#lite-fullnode)) | ≥ 5 MB/s | -| FullNode (Stable) | 8 | 32 GB | 200 GB ([Lite](https://tronprotocol.github.io/documentation-en/using_javatron/litefullnode/#lite-fullnode))
3.5 TB (Full Sync) | ≥ 5 MB/s | -| FullNode (Recommended) | 16+ | 32 GB+ | 4 TB | ≥ 50 MB/s | -| Super Representative | 32+ | 64 GB+ | 4 TB | ≥ 50 MB/s | +|--------------------------|-----------|--------|----------------------------------|--------------------| +| FullNode (Minimum) | 8 | 16 GB | 200 GB ([Lite](https://tronprotocol.github.io/documentation-en/using_javatron/litefullnode/#lite-fullnode)) | ≥ 5 MB/s | +| FullNode (Stable) | 8 | 32 GB | 200 GB ([Lite](https://tronprotocol.github.io/documentation-en/using_javatron/litefullnode/#lite-fullnode)) 3.5 TB (Full Sync) | ≥ 5 MB/s | +| FullNode (Recommended) | 16+ | 32 GB+ | 4 TB | ≥ 50 MB/s | +| Super Representative | 32+ | 64 GB+ | 4 TB | ≥ 50 MB/s | ## Launching a full node From af2dc7b39b4ed425d3b948f738542abf07ae065b Mon Sep 17 00:00:00 2001 From: GrapeS Date: Fri, 16 Jan 2026 11:18:16 +0800 Subject: [PATCH 05/15] update format --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ca7443eaea3..8e31b71820d 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ The java-tron project comes with several runnable artifacts and helper scripts f ## Hardware Requirements | Deployment Tier | CPU Cores | Memory | High-performance SSD Storage | Network Downstream | -|--------------------------|-----------|--------|----------------------------------|--------------------| +|--------------------------|-------|--------|---------------------------|-----------------| | FullNode (Minimum) | 8 | 16 GB | 200 GB ([Lite](https://tronprotocol.github.io/documentation-en/using_javatron/litefullnode/#lite-fullnode)) | ≥ 5 MB/s | | FullNode (Stable) | 8 | 32 GB | 200 GB ([Lite](https://tronprotocol.github.io/documentation-en/using_javatron/litefullnode/#lite-fullnode)) 3.5 TB (Full Sync) | ≥ 5 MB/s | | FullNode (Recommended) | 16+ | 32 GB+ | 4 TB | ≥ 50 MB/s | From c3648a289eeb5fa5ff5c2e7d711fbd737b3454d0 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Fri, 16 Jan 2026 11:36:25 +0800 Subject: [PATCH 06/15] update nile related --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8e31b71820d..bca66187607 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ The java-tron project comes with several runnable artifacts and helper scripts f | Deployment Tier | CPU Cores | Memory | High-performance SSD Storage | Network Downstream | |--------------------------|-------|--------|---------------------------|-----------------| | FullNode (Minimum) | 8 | 16 GB | 200 GB ([Lite](https://tronprotocol.github.io/documentation-en/using_javatron/litefullnode/#lite-fullnode)) | ≥ 5 MB/s | -| FullNode (Stable) | 8 | 32 GB | 200 GB ([Lite](https://tronprotocol.github.io/documentation-en/using_javatron/litefullnode/#lite-fullnode)) 3.5 TB (Full Sync) | ≥ 5 MB/s | +| FullNode (Stable) | 8 | 32 GB | 200 GB ([Lite](https://tronprotocol.github.io/documentation-en/using_javatron/litefullnode/#lite-fullnode)) 3.5 TB (Full) | ≥ 5 MB/s | | FullNode (Recommended) | 16+ | 32 GB+ | 4 TB | ≥ 50 MB/s | | Super Representative | 32+ | 64 GB+ | 4 TB | ≥ 50 MB/s | @@ -88,8 +88,8 @@ A full node acts as a gateway to the TRON network, exposing comprehensive interf The TRON network is mainly divided into: - **Main Network (Mainnet)**: The primary public blockchain where real value (TRX, TRC-20 tokens, etc) is transacted, secured by a massive decentralized network. -- **Nile Test Network(TestNet)**: A public test network for TRON, used for development, testing, and DApp deployment. -- **Shasta Testnet**: Another public test network for testing, but currently does not support node joining. +- **Nile Test Network(TestNet)**: A public test network for TRON, used for development, testing, and DApp deployment. Noted that Nile TestNet may contains some features that are not yet supported by MainNet. +- **Shasta Testnet**: Another public test network for testing, but currently does not support node joining. It has exactly the same features as MainNet. - **Private Networks**: Customized TRON networks set up by private entities for testing, development, or specific use cases. Network selection is performed by specifying the appropriate configuration file upon full-node startup. @@ -114,7 +114,7 @@ tail -f ./logs/tron.log Use [TronScan](https://tronscan.org/#/), TRON’s official block explorer, to view main network transactions, blocks, accounts, TRC-10/TRC-20 transfers, contract events, witness voting, and governance metrics. ### 2. Join Nile test network -Use the `-c` flag to point the node to a configuration for a specific network. For Nile, use [config-nile.conf](https://github.com/tron-nile-testnet/nile-testnet/blob/master/framework/src/main/resources/config-nile.conf): +Utilize the `-c` flag to direct the node to the configuration file corresponding to the desired network. In view of the fact that the Nile TestNet may incorporate features not yet available on the MainNet, it is strongly advised to compile the source code in accordance with the [Building the Source Code](https://github.com/tron-nile-testnet/nile-testnet/blob/master/README.md#building-the-source-code) instructions provided for the Nile TestNet. ```bash nohup java -jar ./build/libs/FullNode.jar -c config-nile.conf & From a0874b73f452253f2b7344e320897b2d7cdb40d0 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Fri, 16 Jan 2026 11:43:49 +0800 Subject: [PATCH 07/15] update format --- README.md | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index bca66187607..f405a3b66a4 100644 --- a/README.md +++ b/README.md @@ -36,17 +36,25 @@ TRON builds decentralized Internet infrastructure. # Building the Source Code Before building java-tron, make sure you have: -- Hardware with at least 4 CPU cores, 16 GB RAM, 20 GB free disk space for a smooth compilation process. +- Hardware with at least 4 CPU cores, 16 GB RAM, 10 GB free disk space for a smooth compilation process. - Operating system: `Linux` or `MacOS` (Windows is not supported). - Git and correct JDK(version `8` or `17`) installed based on your CPU architecture. -For convenience, an automated script [`install_dependencies.sh`](install_dependencies.sh) is provided to install the required dependencies: +There are two ways to install the required dependencies: -```bash -chmod +x install_dependencies.sh -./install_dependencies.sh -``` -> **Note**: For production-grade stability with JDK 8, Oracle JDK 8 is strongly recommended (the provided script installs OpenJDK 8). For step-by-step manual installation instructions, consult the [Prerequisites and Installation Guide](https://tronprotocol.github.io/documentation-en/using_javatron/installing_javatron/#prerequisites-before-compiling-java-tron). +- **Option 1: Automated script (recommended for quick setup)** + + Use the provided [`install_dependencies.sh`](install_dependencies.sh) script: + + ```bash + chmod +x install_dependencies.sh + ./install_dependencies.sh + ``` + > **Note**: For production-grade stability with JDK 8, Oracle JDK 8 is strongly recommended (the script installs OpenJDK 8). + +- **Option 2: Manual installation** + + Follow the [Prerequisites and Installation Guide](https://tronprotocol.github.io/documentation-en/using_javatron/installing_javatron/#prerequisites-before-compiling-java-tron) for step-by-step instructions. Once all dependencies have been installed, download and compile java-tron by executing: ```bash @@ -64,7 +72,7 @@ The java-tron project comes with several runnable artifacts and helper scripts f | Artifact/Script | Description | | :---------------------- | :---------- | | **`FullNode.jar`** | Main TRON node executable (generated in `build/libs/` after a successful build following the above guidance). Runs as a full node by default. `java -jar FullNode.jar --help` for command line options| -| **`Toolkit.jar`** | Node management utility(generated in `build/libs/`): partition, prune, copy, convert DBs; shadow-fork tool. [Usage](https://tronprotocol.github.io/documentation-en/using_javatron/toolkit/#toolkit-a-java-tron-node-maintenance-suite) | +| **`Toolkit.jar`** | Node management utility (generated in `build/libs/`): partition, prune, copy, convert DBs; shadow-fork tool. [Usage](https://tronprotocol.github.io/documentation-en/using_javatron/toolkit/#toolkit-a-java-tron-node-maintenance-suite) | | **`start.sh`** | Quick start script (x86_64, JDK 8) to download/build/run `FullNode.jar`. See the tool [guide](./shell.md). | | **`start.sh.simple`** | Quick start script template (ARM64, JDK 17). See usage notes inside the script. | @@ -75,7 +83,7 @@ The java-tron project comes with several runnable artifacts and helper scripts f | Deployment Tier | CPU Cores | Memory | High-performance SSD Storage | Network Downstream | |--------------------------|-------|--------|---------------------------|-----------------| | FullNode (Minimum) | 8 | 16 GB | 200 GB ([Lite](https://tronprotocol.github.io/documentation-en/using_javatron/litefullnode/#lite-fullnode)) | ≥ 5 MB/s | -| FullNode (Stable) | 8 | 32 GB | 200 GB ([Lite](https://tronprotocol.github.io/documentation-en/using_javatron/litefullnode/#lite-fullnode)) 3.5 TB (Full) | ≥ 5 MB/s | +| FullNode (Stable) | 8 | 32 GB | 200 GB (Lite) 3.5 TB (Full) | ≥ 5 MB/s | | FullNode (Recommended) | 16+ | 32 GB+ | 4 TB | ≥ 50 MB/s | | Super Representative | 32+ | 64 GB+ | 4 TB | ≥ 50 MB/s | From 98d8629fd59e6580a3a04fef7ccf025a05a42713 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Fri, 16 Jan 2026 12:06:19 +0800 Subject: [PATCH 08/15] fix format --- README.md | 48 +++++++++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index f405a3b66a4..a75e35e8067 100644 --- a/README.md +++ b/README.md @@ -88,41 +88,47 @@ The java-tron project comes with several runnable artifacts and helper scripts f | Super Representative | 32+ | 64 GB+ | 4 TB | ≥ 50 MB/s | -## Launching a full node -A full node acts as a gateway to the TRON network, exposing comprehensive interfaces via HTTP, gRPC, and JSON-RPC APIs. Through these endpoints, clients may execute asset transfers, deploy smart contracts, and invoke on-chain logic. It must join a TRON network to participate in the network's consensus and transaction processing. +## Launching a full node + +A full node acts as a gateway to the TRON network, exposing comprehensive interfaces via HTTP and RPC APIs. Through these endpoints, clients may execute asset transfers, deploy smart contracts, and invoke on-chain logic. It must join a TRON network to participate in the network's consensus and transaction processing. ### Network Types The TRON network is mainly divided into: -- **Main Network (Mainnet)**: The primary public blockchain where real value (TRX, TRC-20 tokens, etc) is transacted, secured by a massive decentralized network. -- **Nile Test Network(TestNet)**: A public test network for TRON, used for development, testing, and DApp deployment. Noted that Nile TestNet may contains some features that are not yet supported by MainNet. -- **Shasta Testnet**: Another public test network for testing, but currently does not support node joining. It has exactly the same features as MainNet. -- **Private Networks**: Customized TRON networks set up by private entities for testing, development, or specific use cases. +- **Main Network (Mainnet)** + The primary public blockchain where real value (TRX, TRC-20 tokens, etc.) is transacted, secured by a massive decentralized network. + +- **[Nile Test Network (Testnet)](https://nileex.io/)** + A forward-looking testnet where new features and governance proposals are launched first for developers to experience. Consequently, its codebase is typically ahead of the Mainnet. + +- **[Shasta Testnet](https://shasta.tronex.io/)** + Closely mirrors the Mainnet’s features and governance proposals. Its network parameters and software versions are kept in sync with the Mainnet, providing developers with a highly realistic environment for final testing. -Network selection is performed by specifying the appropriate configuration file upon full-node startup. -- Mainnet configuration: [config.conf](framework/src/main/resources/config.conf) -- Nile testnet configuration: [config-nile.conf](https://github.com/tron-nile-testnet/nile-testnet/blob/master/framework/src/main/resources/config-nile.conf) +- **Private Networks** + Customized TRON networks set up by private entities for testing, development, or specific use cases. + +Network selection is performed by specifying the appropriate configuration file upon full-node startup. Mainnet configuration: [config.conf](framework/src/main/resources/config.conf); Nile testnet configuration: [config-nile.conf](https://github.com/tron-nile-testnet/nile-testnet/blob/master/framework/src/main/resources/config-nile.conf) ### 1. Join the TRON main network -Launch a main network full node using the built-in default configuration: +Launch a main-network full node with the built-in default configuration: ```bash nohup java -Xms9G -jar ./build/libs/FullNode.jar & ``` * `nohup ... &`: Runs the command in the background and ignores the hangup signal. -* `-Xms9G`: Sets the JVM initial heap size (Xms) to `9 GB`. +* `-Xms9G`: Sets the JVM minimum heap size to `9 GB`. -> For production main network deployments, review the [JVM Parameter Optimization for FullNode](https://tronprotocol.github.io/documentation-en/using_javatron/installing_javatron/#jvm-parameter-optimization-for-mainnet-fullnode-deployment) to select the complete Java command. +> For production main network deployments, review the [JVM Parameter Optimization for FullNode](https://tronprotocol.github.io/documentation-en/using_javatron/installing_javatron/#jvm-parameter-optimization-for-mainnet-fullnode-deployment) to use the complete Java command. -Checking the logs, you can monitor the block syncing progress: +Using the below command, you can monitor the blocks syncing progress: ```bash tail -f ./logs/tron.log ``` -Use [TronScan](https://tronscan.org/#/), TRON’s official block explorer, to view main network transactions, blocks, accounts, TRC-10/TRC-20 transfers, contract events, witness voting, and governance metrics. +Use [TronScan](https://tronscan.org/#/), TRON's official block explorer, to view main network transactions, blocks, accounts, witness voting, and governance metrics, etc. ### 2. Join Nile test network -Utilize the `-c` flag to direct the node to the configuration file corresponding to the desired network. In view of the fact that the Nile TestNet may incorporate features not yet available on the MainNet, it is strongly advised to compile the source code in accordance with the [Building the Source Code](https://github.com/tron-nile-testnet/nile-testnet/blob/master/README.md#building-the-source-code) instructions provided for the Nile TestNet. +Utilize the `-c` flag to direct the node to the configuration file corresponding to the desired network. Since Nile TestNet may incorporate features not yet available on the MainNet, it is strongly advised to compile the source code following the [Building the Source Code](https://github.com/tron-nile-testnet/nile-testnet/blob/master/README.md#building-the-source-code) instructions for the Nile TestNet. ```bash nohup java -jar ./build/libs/FullNode.jar -c config-nile.conf & @@ -132,18 +138,18 @@ Nile resources: explorer, faucet, wallet, developer docs, and network statistics ### 3. Access Shasta test network Shasta does not accept public node peers. Programmatic access is available via TronGrid endpoints; see [TronGrid Service](https://developers.tron.network/docs/trongrid) for details. -Shasta resources: explorer, faucet, wallet, developer docs, and network statistics at [shastaex.io](https://shastaex.io/). +Shasta resources: explorer, faucet, wallet, developer docs, and network statistics at [shastaex.io](https://shastaex.io/). ### 4. Set up a private network -For setting up a private network for testing or development, follow the [Private Network guide](https://tronprotocol.github.io/documentation-en/using_javatron/private_network/). +For setting up a private network for testing or development, follow the [Private Network guidance](https://tronprotocol.github.io/documentation-en/using_javatron/private_network/). ## Running a super representative node -To operate the node as a Super Representative (SR), append the `--witness` parameter to the standard launch command. An SR node inherits every capability of a FullNode and additionally participates in block production. Refer to the [Super Representative documentation](https://tronprotocol.github.io/documentation-en/mechanism-algorithm/sr/) for eligibility requirements; once your SR address has accumulated sufficient votes to place among the top 27, the node will be automatically scheduled to produce blocks. +To operate the node as a Super Representative (SR), append the `--witness` parameter to the standard launch command. An SR node inherits every capability of a FullNode and additionally participates in block production. Refer to the [Super Representative documentation](https://tronprotocol.github.io/documentation-en/mechanism-algorithm/sr/) for eligibility requirements. -Fill in the private key of your SR address into the `localwitness` list in the configuration file. Here is an example: +Fill in the private key of your SR account into the `localwitness` list in the configuration file. Here is an example: ``` localwitness = [ @@ -151,13 +157,13 @@ Fill in the private key of your SR address into the `localwitness` list in the c ] ``` -Subsequently, launch the node by executing the optimized Java startup command detailed in the [JVM Parameter Optimization for Mainnet FullNode Deployment](https://tronprotocol.github.io/documentation-en/using_javatron/installing_javatron/#jvm-parameter-optimization-for-mainnet-fullnode-deployment) guide. You could also test the process by connecting to a testnet or setting up a private network using the correct configuration file. +Subsequently, launch the node by executing the optimized Java startup command detailed in the [JVM Parameter Optimization for Mainnet FullNode Deployment](https://tronprotocol.github.io/documentation-en/using_javatron/installing_javatron/#jvm-parameter-optimization-for-mainnet-fullnode-deployment) guidance. You could also test the process by connecting to a testnet or setting up a private network. ## Programmatically interfacing FullNode Upon the FullNode startup successfully, interaction with the TRON network is facilitated through a comprehensive suite of programmatic interfaces exposed by java-tron: - **HTTP API**: See the complete [HTTP API reference and endpoint list](https://tronprotocol.github.io/documentation-en/api/http/). -- **gRPC**: High-performance APIs suitable for service-to-service integration. See the supported [gRPC reference](https://tronprotocol.github.io/documentation-en/api/grpc/). +- **gRPC**: High-performance APIs suitable for service-to-service integration. See the supported [gRPC reference](https://tronprotocol.github.io/documentation-en/api/rpc/). - **JSON-RPC**: Provides Ethereum-compatible JSON-RPC methods for logs, transactions and contract calls. See the supported [JSON-RPC methods](https://tronprotocol.github.io/documentation-en/api/json-rpc/). Enable or disable each interface in the configuration file: From 5b6bdb49050de0e7ee9db44e9e64d048662745e4 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Fri, 16 Jan 2026 12:07:35 +0800 Subject: [PATCH 09/15] fix format --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a75e35e8067..92caddc7d52 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ TRON builds decentralized Internet infrastructure. -- Tron Protocol: high-throughput(2000+ TPS), scalable blockchain OS (DPoS consensus) powering the TRON ecosystem. +- Tron Protocol: High-throughput(2000+ TPS), scalable blockchain OS (DPoS consensus) powering the TRON ecosystem. - Tron Virtual Machine (TVM): EVM-compatible smart-contract engine for fast smart-contract deployment. # Building the Source Code From f55646736d1a6ad47117db33655b85d60b0fa0c7 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Fri, 16 Jan 2026 12:22:49 +0800 Subject: [PATCH 10/15] fix review (+4 squashed commits) Squashed commits: [5c9a7ca16d] fix review [0192ea176b] fix script [ca96abef85] fix review [a7b352a336] update hardware --- README.md | 21 +++++++++++---------- install_dependencies.sh | 8 -------- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 92caddc7d52..9e72d93ca92 100644 --- a/README.md +++ b/README.md @@ -29,10 +29,10 @@ # What's TRON? -TRON builds decentralized Internet infrastructure. +TRON is building the foundational infrastructure for the decentralized internet ecosystem with a focus on high-performance, scalability, and security. - Tron Protocol: High-throughput(2000+ TPS), scalable blockchain OS (DPoS consensus) powering the TRON ecosystem. -- Tron Virtual Machine (TVM): EVM-compatible smart-contract engine for fast smart-contract deployment. +- Tron Virtual Machine (TVM): EVM-compatible smart-contract engine for fast smart-contract execution. # Building the Source Code Before building java-tron, make sure you have: @@ -78,15 +78,16 @@ The java-tron project comes with several runnable artifacts and helper scripts f # Running java-tron -## Hardware Requirements +## Hardware Requirements for Mainnet | Deployment Tier | CPU Cores | Memory | High-performance SSD Storage | Network Downstream | |--------------------------|-------|--------|---------------------------|-----------------| -| FullNode (Minimum) | 8 | 16 GB | 200 GB ([Lite](https://tronprotocol.github.io/documentation-en/using_javatron/litefullnode/#lite-fullnode)) | ≥ 5 MB/s | -| FullNode (Stable) | 8 | 32 GB | 200 GB (Lite) 3.5 TB (Full) | ≥ 5 MB/s | -| FullNode (Recommended) | 16+ | 32 GB+ | 4 TB | ≥ 50 MB/s | -| Super Representative | 32+ | 64 GB+ | 4 TB | ≥ 50 MB/s | +| FullNode (Minimum) | 8 | 16 GB | 200 GB ([Lite](https://tronprotocol.github.io/documentation-en/using_javatron/litefullnode/#lite-fullnode)) | ≥ 5 MBit/sec | +| FullNode (Stable) | 8 | 32 GB | 200 GB (Lite) 3.5 TB (Full) | ≥ 5 MBit/sec | +| FullNode (Recommended) | 16+ | 32 GB+ | 4 TB | ≥ 50 MBit/sec | +| Super Representative | 32+ | 64 GB+ | 4 TB | ≥ 50 MBit/sec | +Note: For test networks, where transaction volume is significantly lower, you may operate with reduced hardware specifications. ## Launching a full node @@ -118,7 +119,7 @@ nohup java -Xms9G -jar ./build/libs/FullNode.jar & * `nohup ... &`: Runs the command in the background and ignores the hangup signal. * `-Xms9G`: Sets the JVM minimum heap size to `9 GB`. -> For production main network deployments, review the [JVM Parameter Optimization for FullNode](https://tronprotocol.github.io/documentation-en/using_javatron/installing_javatron/#jvm-parameter-optimization-for-mainnet-fullnode-deployment) to use the complete Java command. +> For the main network production deployments, review the [JVM Parameter Optimization for FullNode](https://tronprotocol.github.io/documentation-en/using_javatron/installing_javatron/#jvm-parameter-optimization-for-mainnet-fullnode-deployment) to use the complete Java command. Using the below command, you can monitor the blocks syncing progress: ```bash @@ -128,7 +129,7 @@ tail -f ./logs/tron.log Use [TronScan](https://tronscan.org/#/), TRON's official block explorer, to view main network transactions, blocks, accounts, witness voting, and governance metrics, etc. ### 2. Join Nile test network -Utilize the `-c` flag to direct the node to the configuration file corresponding to the desired network. Since Nile TestNet may incorporate features not yet available on the MainNet, it is strongly advised to compile the source code following the [Building the Source Code](https://github.com/tron-nile-testnet/nile-testnet/blob/master/README.md#building-the-source-code) instructions for the Nile TestNet. +Utilize the `-c` flag to direct the node to the configuration file corresponding to the desired network. Since Nile TestNet may incorporate features not yet available on the MainNet, it is **strongly advised** to compile the source code following the [Building the Source Code](https://github.com/tron-nile-testnet/nile-testnet/blob/master/README.md#building-the-source-code) instructions for the Nile TestNet. ```bash nohup java -jar ./build/libs/FullNode.jar -c config-nile.conf & @@ -142,7 +143,7 @@ Shasta does not accept public node peers. Programmatic access is available via T Shasta resources: explorer, faucet, wallet, developer docs, and network statistics at [shastaex.io](https://shastaex.io/). ### 4. Set up a private network -For setting up a private network for testing or development, follow the [Private Network guidance](https://tronprotocol.github.io/documentation-en/using_javatron/private_network/). +Setting up a private network for testing or development, follow the [Private Network guidance](https://tronprotocol.github.io/documentation-en/using_javatron/private_network/). ## Running a super representative node diff --git a/install_dependencies.sh b/install_dependencies.sh index 621a36fdc51..860e79440eb 100755 --- a/install_dependencies.sh +++ b/install_dependencies.sh @@ -123,14 +123,6 @@ else exit 1 fi -# update Gradle dependency verification metadata -if [[ -f "./gradlew" ]]; then - # If an executable named gradlew exists in the current directory, enter this branch - # This line detects whether the project uses the Gradle build tool so that subsequent Gradle commands can be executed - echo ">>> Updating Gradle dependency verification metadata..." - ./gradlew --write-verification-metadata sha256 --refresh-dependencies -fi - echo "----------------------------------------" echo ">>> Installation logic completed." echo "Please verify installations manually if any errors occurred above." From 49f1acb90294cbff07bc8320bfd2a37fa1815812 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Fri, 16 Jan 2026 15:08:09 +0800 Subject: [PATCH 11/15] fix review --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9e72d93ca92..730c567cb5d 100644 --- a/README.md +++ b/README.md @@ -140,7 +140,7 @@ Nile resources: explorer, faucet, wallet, developer docs, and network statistics ### 3. Access Shasta test network Shasta does not accept public node peers. Programmatic access is available via TronGrid endpoints; see [TronGrid Service](https://developers.tron.network/docs/trongrid) for details. -Shasta resources: explorer, faucet, wallet, developer docs, and network statistics at [shastaex.io](https://shastaex.io/). +Shasta resources: explorer, faucet, wallet, developer docs, and network statistics at [shastaex.io](https://shasta.tronex.io/). ### 4. Set up a private network Setting up a private network for testing or development, follow the [Private Network guidance](https://tronprotocol.github.io/documentation-en/using_javatron/private_network/). @@ -187,9 +187,9 @@ node { } } ``` -When exposing any of these APIs on a public interface, ensure that you place the node behind proper authentication, rate limiting, and network access controls according to your security requirements. +When exposing any of these APIs to a public interface, ensure the node is protected with appropriate authentication, rate limiting, and network access controls in line with your security requirements. -Public, hosted HTTP endpoints (main and test networks) are provided by TronGrid. Please consult [TRON Network HTTP Endpoints](https://developers.tron.network/docs/connect-to-the-tron-network#tron-network-http-endpoints) for the current catalogue. For method coverage and request formats, refer to the HTTP API reference above. +Public hosted HTTP endpoints for both mainnet and testnet are provided by TronGrid. Please refer to the [TRON Network HTTP Endpoints](https://developers.tron.network/docs/connect-to-the-tron-network#tron-network-http-endpoints) for the latest list. For supported methods and request formats, see the HTTP API reference above. # Community From 8a582d42c29347f1187cb3e6bef2d619e2460a10 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Mon, 19 Jan 2026 11:02:12 +0800 Subject: [PATCH 12/15] fix typo --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 730c567cb5d..95b8d8d88b5 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ There are two ways to install the required dependencies: chmod +x install_dependencies.sh ./install_dependencies.sh ``` - > **Note**: For production-grade stability with JDK 8, Oracle JDK 8 is strongly recommended (the script installs OpenJDK 8). + > **Note**: For production-grade stability with JDK 8 on x86_64 architecture, Oracle JDK 8 is strongly recommended (the script installs OpenJDK 8). - **Option 2: Manual installation** @@ -63,7 +63,8 @@ cd java-tron git checkout -t origin/master ./gradlew clean build -x test ``` -* The parameter `-x test` indicates skipping the execution of test cases. If you encounter any error please refer to the [Compiling java-tron Source Code](https://tronprotocol.github.io/documentation-en/using_javatron/installing_javatron/#compiling-java-tron-source-code) documentation for troubleshooting steps. +* The parameter `-x test` indicates skipping the execution of test cases. +* If you encounter any error please refer to the [Compiling java-tron Source Code](https://tronprotocol.github.io/documentation-en/using_javatron/installing_javatron/#compiling-java-tron-source-code) documentation for troubleshooting steps. Or you could use the pre-built jar file from # Executables @@ -193,9 +194,9 @@ Public hosted HTTP endpoints for both mainnet and testnet are provided by TronGr # Community -[Tron Developers & SRs](https://discord.gg/hqKvyAM) is Tron's official Discord channel. Feel free to join this channel if you have any questions. +[TRON Developers & SRs](https://discord.gg/hqKvyAM) is TRON's official Discord channel. Feel free to join this channel if you have any questions. -The [Core Devs Community](https://t.me/troncoredevscommunity) and [Tron Official Developer Group](https://t.me/TronOfficialDevelopersGroupEn) are Telegram channels specifically designed for java-tron community developers to engage in technical discussions. +The [Core Devs Community](https://t.me/troncoredevscommunity) and [TRON Official Developer Group](https://t.me/TronOfficialDevelopersGroupEn) are Telegram channels specifically designed for java-tron community developers to engage in technical discussions. # Contribution From 2190444833237ba6e7cb3acc756bc9abcadb0c52 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Mon, 19 Jan 2026 11:22:22 +0800 Subject: [PATCH 13/15] fix review --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 95b8d8d88b5..a0372503070 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ TRON is building the foundational infrastructure for the decentralized internet # Building the Source Code Before building java-tron, make sure you have: - Hardware with at least 4 CPU cores, 16 GB RAM, 10 GB free disk space for a smooth compilation process. -- Operating system: `Linux` or `MacOS` (Windows is not supported). +- Operating system: `Linux` or `macOS` (`Windows` is not supported). - Git and correct JDK(version `8` or `17`) installed based on your CPU architecture. There are two ways to install the required dependencies: From 5773361b436712e47b6bf9a6faa9e13c3d1fc894 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Mon, 19 Jan 2026 13:36:08 +0800 Subject: [PATCH 14/15] fix review --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a0372503070..569d81f2bfd 100644 --- a/README.md +++ b/README.md @@ -31,8 +31,8 @@ TRON is building the foundational infrastructure for the decentralized internet ecosystem with a focus on high-performance, scalability, and security. -- Tron Protocol: High-throughput(2000+ TPS), scalable blockchain OS (DPoS consensus) powering the TRON ecosystem. -- Tron Virtual Machine (TVM): EVM-compatible smart-contract engine for fast smart-contract execution. +- TRON Protocol: High-throughput(2000+ TPS), scalable blockchain OS (DPoS consensus) powering the TRON ecosystem. +- TRON Virtual Machine (TVM): EVM-compatible smart-contract engine for fast smart-contract execution. # Building the Source Code Before building java-tron, make sure you have: From d2157985d197e946860af89e441367e3d96dccde Mon Sep 17 00:00:00 2001 From: GrapeS Date: Mon, 19 Jan 2026 14:34:19 +0800 Subject: [PATCH 15/15] fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 569d81f2bfd..960ca034d5f 100644 --- a/README.md +++ b/README.md @@ -144,7 +144,7 @@ Shasta does not accept public node peers. Programmatic access is available via T Shasta resources: explorer, faucet, wallet, developer docs, and network statistics at [shastaex.io](https://shasta.tronex.io/). ### 4. Set up a private network -Setting up a private network for testing or development, follow the [Private Network guidance](https://tronprotocol.github.io/documentation-en/using_javatron/private_network/). +To set up a private network for testing or development, follow the [Private Network guidance](https://tronprotocol.github.io/documentation-en/using_javatron/private_network/). ## Running a super representative node