Installed Java SDK:
sudo apt update sudo apt install default-jdk javac --version
javac 11.0.9.1
Cloned the repository:
git clone https://github.com/tronprotocol/wallet-cli
And found the following in wallet-cli\src\main\resources\config.conf
:
net { type = mainnet } fullnode = { ip.list = [ "127.0.0.1:50051" ] } #soliditynode = { # ip.list = [ # "127.0.0.1:50052" # ] #} RPC_version = 2 # This field used in shielded transaction. It is recommended that this field is set to the block # number in which the earliest relevant shielded contract was created. If the exact number is not # known, this field can be set as follows. If used in mainnet, please set 22690588. If used in Nile # testnet, please set 6380000. Otherwise, please set 0. blockNumberStartToScan = 22690588
Tried to build it:
cd wallet-cli ./gradlew build ./gradlew run
But got an error:
FAILURE: Build failed with an exception. * What went wrong: Could not determine java version from '11.0.9.1'.
and switched to Open SDK 1.8:
sudo apt install openjdk-8-jdk update-java-alternatives --list
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64 java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
sudo update-java-alternatives --set /usr/lib/jvm/java-1.8.0-openjdk-amd64 javac -version
javac 1.8.0_275
Then tried to build it again:
cd wallet-cli ./gradlew build ./gradlew run
and got this:

I registered the wallet with RegisterWallet
command and was able to do GetAddress
, but not GetBalance
.
Running java-tron
Tried to build java-tron:
git clone https://github.com/tronprotocol/java-tron.git cd java-tron git checkout -t origin/master ./gradlew build
but some tests failed:

I switched to a tag:
git tag git describe --tags v4.1.1 git clean -dfx git checkout GreatVoyage-v4.1.1 ./gradlew build
but the same tests failed again.
Tried to run precompiled jar:
git clone https://github.com/tronprotocol/tron-deployment.git cd tron-deployment/ ./check-machine-config.sh
--2020-12-05 00:52:52-- https://raw.githubusercontent.com/tronprotocol/TronDeployment/master/Benchmark.jar Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.84.133 Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.84.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 57994705 (55M) [application/octet-stream] Saving to: ‘Benchmark.jar’ Benchmark.jar 100%[=====================================================================>] 55.31M 4.43MB/s in 10s 2020-12-05 00:53:06 (5.36 MB/s) - ‘Benchmark.jar’ saved [57994705/57994705] 1. JAVA VERSION: before run java-tron, java MUST be oracle jdk, and version >= 1.8 2. CPU CORE: new verson of java-tron needs at least 16 cores, currently your CPU core is 8, please improve your machine performance 3. MEMORY: satisfied when setup java, recommend to use: java -Xmx26215m can see also start-recommend.sh ******** begin to pop revokingDb ******** ******** before revokingDb size:0 ******** after revokingStore size:0 ******** after revokingStore contains:[] ******** end to pop revokingStore ******** ----------------------------------------------------- --------------------FAIL RESULT---------------------- Start fail! Please upgrade server configuration. CPU needs at least 16 cores Memory needs at least 30GB Java MUST be oracle jdk, and version >= 1.8 -----------------------------------------------------
So I figured out that:

Tried:
sudo apt-add-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer
but got:
E: The repository 'http://ppa.launchpad.net/webupd8team/java/ubuntu focal Release' does not have a Release file.
and followed Install Oracle JDK 8 on Linux replacing 261 with 271:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/jdk1.8.0_271/bin:/usr/lib/jvm/jdk1.8.0_271/db/bin:/usr/lib/jvm/jdk1.8.0_271/jre/bin" J2SDKDIR="/usr/lib/jvm/jdk1.8.0_271" J2REDIR="/usr/lib/jvm/jdk1.8.0_271/jre" JAVA_HOME="/usr/lib/jvm/jdk1.8.0_271" DERBY_HOME="/usr/lib/jvm/jdk1.8.0_271/db"
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_271/bin/java" 0 sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0_271/bin/javac" 0 sudo update-alternatives --set java /usr/lib/jvm/jdk1.8.0_271/bin/java sudo update-alternatives --set javac /usr/lib/jvm/jdk1.8.0_271/bin/javac update-alternatives --list java update-alternatives --list javac java -version
java version "1.8.0_271" Java(TM) SE Runtime Environment (build 1.8.0_271-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)
cd ../work/ cp ../repos/tron-deployment/main_net_config.conf . java -Xmx24g -XX:+UseConcMarkSweepGC -jar FullNode.jar -c main_net_config.conf telnet 127.0.0.1 50051
Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. ^] ^HTTP/2 client preface string missing or corrupt. Hex dump for received bytes: 5e5d0d0aConnection closed by foreign host.
and there were some exceptions:
Dec 05, 2020 12:31:10 AM io.grpc.netty.NettyServerTransport notifyTerminated INFO: Transport failed io.netty.handler.codec.http2.Http2Exception: HTTP/2 client preface string missing or corrupt. Hex dump for received bytes: 5e5d0d0a at io.netty.handler.codec.http2.Http2Exception.connectionError(Http2Exception.java:85) at io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.readClientPrefaceString(Http2ConnectionHandler.java:318) at io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.decode(Http2ConnectionHandler.java:251) at io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:450) at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489) at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:646) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:581) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:498) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:460) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:748)
that probably mean that telnet
client is not adequate.
When I started the node I had 210 GB of free space and it was doing something:


Recompiled the client:
cd ~ mkdir backup cp -r repos/wallet-cli/Wallet/ backup/ ll backup/ cd repos/wallet-cli git clean -dfx ./gradlew build cd ~ cp -r backup/Wallet/ repos/wallet-cli cd repos/wallet-cli ll Wallet ./gradlew run

tail -n 100 logs/tron.log | grep -i "block\ num" du -h --max-depth=1

Tron Address Activation
Tron new account are inactive after created. Energy and bandwidth will be shown in the resource page after transfer over 0.1 TRX from other address to the new address to activate.
Links:
- Wallet-cli
- TRON-CLI
- How To Setup A Tron Test Net Node
- How To Install Java with Apt on Ubuntu 20.04
- Gradle: Could not determine java version from ‘11.0.2’
- Switch between multiple java versions
- java-tron releases
- Staking
- How to Build java-tron
- Deploy the FullNode or SuperNode
- Install Oracle JDK 8 on Linux
- Command line operation flow example
- TRC-20 Contract Interaction