Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Java implementation of the Tron whitepaper

License

NotificationsYou must be signed in to change notification settings

tronprotocol/java-tron

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 



java-tron

Java implementation of theTron Protocol

Table of Contents

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 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.

Building the Source Code

Building java-tron requiresgit package and 64-bit version ofOracle JDK 1.8 to be installed, other JDK versions are not supported yet. Make sure you operate onLinux andMacOS operating systems.

Clone the repo and switch to themaster branch

$ git clone https://github.com/tronprotocol/java-tron.git$cd java-tron$ git checkout -t origin/master

then run the following command to build java-tron, theFullNode.jar file can be found injava-tron/build/libs/ after build successfully.

$ ./gradlew clean build -xtest

Running java-tron

Running java-tron requires 64-bit version ofOracle JDK 1.8 to be installed, other JDK versions are not supported yet. Make sure you operate onLinux andMacOS operating systems.

Get the mainnet configuration file:main_net_config.conf, other network configuration files can be foundhere.

Hardware Requirements

Minimum:

  • CPU with 8 cores
  • 16GB RAM
  • 3TB free storage space to sync the Mainnet

Recommended:

  • CPU with 16+ cores(32+ cores for a super representative)
  • 32GB+ RAM(64GB+ for a super representative)
  • High Performance SSD with at least 4TB free space
  • 100+ MB/s download Internet service

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:

$ nohup java -Xms9G -Xmx9G -XX:ReservedCodeCacheSize=256m \             -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m \             -XX:MaxDirectMemorySize=1G -XX:+PrintGCDetails \             -XX:+PrintGCDateStamps  -Xloggc:gc.log \             -XX:+UseConcMarkSweepGC -XX:NewRatio=2 \             -XX:+CMSScavengeBeforeRemark -XX:+ParallelRefProcEnabled \             -XX:+HeapDumpOnOutOfMemoryError \             -XX:+UseCMSInitiatingOccupancyOnly  -XX:CMSInitiatingOccupancyFraction=70 \             -jar FullNode.jar -c main_net_config.conf>> start.log2>&1&

Running a super representative node for mainnet

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.

Fill in the private key of a super representative address into thelocalwitness list in themain_net_config.conf. Here is an example:

 localwitness = [    <your_private_key> ]

then run the following command to start the node:

$ nohup java -Xms9G -Xmx9G -XX:ReservedCodeCacheSize=256m \             -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m \             -XX:MaxDirectMemorySize=1G -XX:+PrintGCDetails \             -XX:+PrintGCDateStamps  -Xloggc:gc.log \             -XX:+UseConcMarkSweepGC -XX:NewRatio=2 \             -XX:+CMSScavengeBeforeRemark -XX:+ParallelRefProcEnabled \             -XX:+HeapDumpOnOutOfMemoryError \             -XX:+UseCMSInitiatingOccupancyOnly  -XX:CMSInitiatingOccupancyFraction=70 \             -jar FullNode.jar --witness -c main_net_config.conf>> start.log2>&1&

Quick Start Tool

An easier way to build and run java-tron is to usestart.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.

Here are some common use cases of the scripting tool

  • Usestart.sh to start a full node with the downloadedFullNode.jar
  • Usestart.sh to download the latestFullNode.jar and start a full node.
  • Usestart.sh to download the latest source code and compile aFullNode.jar and then start a full node.

For more details, please refer to the toolguide.

Run inside Docker container

One of the quickest ways to getjava-tron up and running on your machine is by using Docker:

$ 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

This will mount theoutput-directory andlogs directories on the host, the docker.sh tool can also be used to simplify the use of docker, see morehere.

Community

Tron Developers & SRs is Tron's official Discord channel. Feel free to join this channel if you have any questions.

Core Devs Community is the Telegram channel for java-tron community developers. If you want to contribute to java-tron, please join this channel.

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 theContribution Guide for more details.

Resources

  • Medium java-tron's official technical articles are published there.
  • Documentation java-tron's official technical documentation website.
  • Test network A stable test network of TRON contributed by TRON community.
  • Tronscan TRON network blockchain browser.
  • Wallet-cli TRON network wallet using command line.
  • TIP TRON Improvement Proposal (TIP) describes standards for the TRON network.
  • TP TRON Protocol (TP) describes standards already implemented in TRON network but not published as a TIP.

Integrity Check

  • After January 3, 2023, the release files will be signed using a GPG key pair, and the correctness of the signature will be verified using the following public key:
    pub: 1254 F859 D2B1 BD9F 66E7 107D F859 BCB4 4A28 290Buid: build@tron.network

License

java-tron is released under theLGPLv3 license.

About

Java implementation of the Tron whitepaper

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp