Tron network setup
Prereq
Have necessary pre req installs
I have used Ubuntu as my host OS
sudo apt-get -y install apt-transport-https ca-certificates
sudo apt-get install -y build-essential checkinstall libssl-dev
mkdir ~/nftron
cd ~/nftron
copy paste in the current shell
echo 'JDK_MD5="0029351f7a946f6c05b582100c7d45b7"
JDK_DIR="jdk1.8.0_202"
JDK_TAR="jdk-8u202-linux-x64.tar.gz"
JAVA_HOME=/usr/local/$JDK_DIR
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME=/usr/local/$JDK_DIR' > .envs
source .envs
Lets install Java
sudo wget -P /usr/local <https://github.com/frekele/oracle-java/releases/download/8u202-b08/$JDK_TAR>
echo "Ensure you have "OK" status for chksum"
sudo echo "$JDK_MD5 /usr/local/$JDK_TAR" | md5sum -c
sudo tar -zxf /usr/local/$JDK_TAR -C /usr/local
We will move with three tron repos for now,
1, Tron private network Deployment -
git clone <https://github.com/tronprotocol/java-tron.git>
2, Tron wallet address creation
git clone <https://github.com/tronprotocol/wallet-cli.git>
3, Tronbox for compiler & smart contract deployment , equalent to truffle
git clone <https://github.com/tronprotocol/tronbox.git>
or
you can use npm install -g tronbox
1. Now you have set all prerequisites, we will build tron network now
echo "Building the Source code "
cd ~/nftron/java-tron
./gradlew build
mkdir srnode
cd srnode
cp ~/nftron/java-tron/build/libs/FullNode.jar .
cp ~/nftron/java-tron/build/libs/SolidityNode.jar .
cp ~/nftron/java-tron/framework/build/resources/main/config.conf .
Lets start the node
java -jar ./FullNode.jar --witness -c ../config.conf
To start Solidity node (optional)
java -jar ./FullNode.jar -c ../config.conf
2. Now lets start wallet -cli
Clone the repo from above link
cd ~/nftron/wallet-cli
cp src/main/resources/config.conf ~/nftron/wallet-cli/
#Modify the config.conf in src/main/resources with the fullnode/solidity details.
ie. port number or ip address if its different ec2 instance.
./gradlew build
now you can run the wallet
java -jar build/libs/wallet-cli.jar
1, Register wallet
registerwallet user1
(input your complex password)
2, login with register user
login user1
3, generate the account for tests
generateaddress
{
"address": "27abQWJo3mc2b6kRY8Dng8ZzE7GWGpNgFpF",
"privateKey": "f70c5503e6f7e83a76f12373ddb478bfd04f10b4f78de5046a7dc75532f84c81"
}
3. Now lets do with Tronbox for solidity code deployment on the private network
You can clone the repo or use npm commands to install
npm install -g tronbox
mkdir samplecode
cd samplecode
tronbox init
Note : Edit the tronbox.js file and update the fullnode ip address and port and private key in developement
tronbox.js
Use the below solidity sample contracts, just copy paste in the current shell
echo 'pragma solidity >=0.4.23 <0.9.0;
contract Test{
function f() public pure returns (string memory){
return "method f()";
}
function g() public pure returns (string memory){
return "method g()";
}
}' > samplecode/contracts/Test.sol
echo 'var Test = artifacts.require("./Test.sol");
var Migrations = artifacts.require("./Migrations.sol");
module.exports = function(deployer) {
deployer.deploy(Test);
deployer.deploy(Migrations);
}; ' > samplecode/migrations/2_deploy_contracts.js
Lets compile and migrate
tronbox compile
tronbox migrate --network development
Cheers !!
Axat Bhardwaj
Blockchain Developer & Technologist
https://www.linkedin.com/in/axatbhardwaj
Top comments (0)