This is the Explorer project for the Tesra blockchain. The project is based on front and back separation framework. The Explorer back-end-projects contains two projects, the TstSyncHandler project synchronizes block and transaction information to the local database and the Explorer project provides Restful API to query transaction,tstid,block information for the Explorer front-end and DApps. The Explorer front-end is based on Vue framework.
- JDK Version: JDK 8 and above
- Database: Mysql5.6 and above
- Nginx: nginx1.11.3 and above
- Node: node v8.9.3 and above
The two Explorer back-end projects compilation relies on maven tools. If the system is not configured with maven tools, you can download it on the maven website.
Download URL:
Firstly, cd the TstSyncHandler project lib directory, run the following command:
mvn install:install-file -DgroupId=com.github.TesraSupernet -DartifactId=javasdk -Dversion=v0.0.1 -Dpackaging=jar -Dfile=tesrasdk-java.jar
Then, cd the TstSyncHandler project root directory,run the following command:
mvn clean package
After the compilation is successful, you will generate a jar package tstsynchandler-0.0.1-SNAPSHOT.jar in the project target directory to run.
Then, cd the Explorer project root directory,run the following command:
mvn clean package
After the compilation is successful, you will generate a jar package explorer-0.0.1-SNAPSHOT.jar in the project target directory to run.
The Explorer front-end Project compilation relies on node tools. If the system is not configured with node tools, you can download it on the node website. Download URL:
Firstly,open the Explorer front-end project config/prod.env.js file , change following attribute:
API_URL:Your API URL
Then, cd the Explorer front-end project root directory,run the following command:
npm install
npm run build
After all these step, you will generate index.html and static folder in Folder dist
The Mysql tables build script and Properties of the project in the config directory
- tbl_tst_block Storage block information.
- tbl_tst_txn_detail Storage transaction information.
- tbl_tst_tstid_detail Storage transaction information on the tstId operation.
- tbl_tst_current Storage the current block and transaction amount.(Don't forget the insert statements in the script.)
In addition to the default spring boot configuration, you only need to modify the following configuration items.
################port#######################
//service startup port
server.port=7575
################database##################
//the type of database
spring.jpa.database = MYSQL
//the driver for database
spring.datasource.driverClassName = com.mysql.jdbc.Driver
//the url for database
spring.datasource.url = jdbc:mysql://localhost:3306/explorer?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
//the username for database
spring.datasource.username = root
//the password for databse
spring.datasource.password = 1111
################blockchain param##########
//the master Tesra node restful api url
node.restful.url = http://127.0.0.1:20555
//the amount of Tesra blockchain nodes
node.amount=4
//the node restful api url
node.restful.url_0=http://127.0.0.1:20555
node.restful.url_1=http://127.0.0.1:20556
node.restful.url_2=http://127.0.0.1:20557
node.restful.url_3=http://127.0.0.1:20558
//maximum fault tolerance times for each node
node.interruptTime.max = 30
//maximum fault tolerance times for each node
node.waitForBlockTime.max = 30
//the interval for block generate
block.interval=6000
//record smart contract codehash(hexadecimal format)
claimRecord.codeHash = 36bb5c053b6b839c8f6b923fe852f91239b9fccc
//tstId smart contract codehash(hexadecimal format)
tstId.codeHash = ff00000000000000000000000000000000000003
//TST asset smart contract codehash(hexadecimal format)
asset.tst.codeHash = 0100000000000000000000000000000000000000
//TSG asset smart contract codehash(hexadecimal format)
asset.tsg.codeHash = 0200000000000000000000000000000000000000
//authority smart contract codehash(hexadecimal format)
auth.codeHash = 0600000000000000000000000000000000000000
The Mysql tables build script and Properties of the Explorer project in the config directory
- tbl_tst_block Storage block information.
- tbl_tst_txn_detail Storage transaction information.
- tbl_tst_tstid_detail Storage transaction information on the tstId operation.
- tbl_tst_current Storage the current block and transaction amount.(Don't forget the insert statements in the script.)
In addition to the default spring boot configuration, you only need to modify the following configuration items.
################port#######################
//service startup port
server.port=7575
################database##################
//the type of database
spring.jpa.database = MYSQL
//the driver for database
spring.datasource.driverClassName = com.mysql.jdbc.Driver
//the url for database
spring.datasource.url = jdbc:mysql://localhost:3306/explorer?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
//the username for database
spring.datasource.username = root
//the password for databse
spring.datasource.password = 1111
masternode.restful.url = http://dapp1.tesra.me:25770
genesisblock.time=1530316800
Put the index.html and static folder into the correct directory according to the Nginx server configuration Example, the Nginx server configuration is
....
server {
listen 80;
server_name localhost;
location / {
root /root/www/;
index index.html index.htm;
}
}
....
So, put the index.html and static folder into your system /root/www directory.
When the above steps are completed, you can run the Explorer project.
Attention:
The Spring boot framework loads the application.properties configuration file from these paths at priority.
- The /config directory in the current directory.
- In the current directory
- The /config directory in the classpath.
- The classpath to the directory
So, you‘d better make sure the explorer-0.0.1-SNAPSHOT.jar and the /config directory in the same directory. Then run the following command:
java -jar explorer-0.0.1-SNAPSHOT.jar
To run the project in the background, run the following command:
nohup java -jar explorer-0.0.1-SNAPSHOT.jar
You‘d better make sure the tstsynchandler-0.0.1-SNAPSHOT.jar and the /config directory in the same directory. Then run the following command:
java -jar tstsynchandler-0.0.1-SNAPSHOT.jar
To run the project in the background, run the following command:
nohup java -jar tstsynchandler-0.0.1-SNAPSHOT.jar
- check the process
In the linux system,use the following command ps -ef|grep java
, then check for the following process.
java -jar target/explorer-0.0.1-SNAPSHOT.jar
java -jar target/tstsynchandler-0.0.1-SNAPSHOT.jar
- check the log
cd the Explorer back-end project log directory,check for the latest log display and ERROR information.
- check by your browser Input the ip and port into your browser according to your Nginx server configuration, you can see the block and transaction information in your browser just like the Tesra Explore
The TesraSupernet library (i.e. all code outside of the cmd directory) is licensed under the GNU Lesser General Public License v3.0, also included in our repository in the License file.