tron-节点-FullNode节点启动
简述
tron 有三种节点类型:
- SuperNode:负责生产区块。tron链是DPOS共识,只有27个SR能够产块。
- FullNode: 节点负责广播区块,不进行产块,网络中的FullNode转发区块、广播区块。
- SolidityNode: 该节点类型已经合并为其它两种节点类型,不会单独运行或部署,所以不再单独部署。
环境准备
保证以下环境正常使用
- JDK 1.8
- 注意不能高于或低于
1.8
版本,否则会有问题
- 注意不能高于或低于
- FullNode.jar
启动节点
项目的启动方式:
- 官方脚本启动
- 手动指定参数启动
- docker 启动
脚本方式
这种方式最简单,不过一般使用区块链的开发者都需要debug代码,所以一般在部署的时候使用脚本启动。
需要用到的文件,都可以从 java-tron
这个项目中获得。
1 | git clone https://github.com/tronprotocol/java-tron.git |
gradlew
是在java-tron项目中的gradle-wrapper.jar
提供的功能Mave
也有类型的功能。
使用gradle编译后,把主要的关键文件拿出来:
- 配置文件 config.conf
- 主程序 FullNode.jar
- 启动脚本 start.sh,在项目根目录
FullNode.jar
使用 gradle 编译后会在java-tron/build
目录下生成 FullNode.jar文件。
java-tron/build/libs/FullNode.jar
config.conf
java-tron/framework/src/main/resources/config.conf
start.sh
java-tron/start.sh
准备好以上文件后,准备启动FullNode.jar,并查看日志
sh start.sh
产块日志,到这个阶段大概卡了30秒左右
所有启动前和启动后的文件
手动启动
手动启动服务,就是jar包启动,先排除JVM相关的优化参数,看看哪些是必须的参数。
至于JVM的优化参数,可以参考启动脚本当中官方给出的调优参数。
-c: config配置文件路径
-d: 指定数据库存放路径
java -jar FullNode.jar -c config.conf
docker 方式启动
在系统中先保证 docker 正常使用。
取拉项目代码
1 | git clone https://github.com/tronprotocol/java-tron.git |
构建本地镜象
1 | docker build -t tronprotocol/java-tron . |
查看本地镜象
1 | docker images |
启动镜象
1 | docker run -it -d -p 8090:8090 -p 8091:8091 -p 18888:18888 -p 50051:50051 --restart always tronprotocol/java-tron |
查看镜象运行情况,动行成功,状态 STATUS 是 Up 17 hours,这是因为我启动之后过了17个小时才回来查看状态。
1 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
查看下日志,容器ID是: f181fab2948f
,number=26981
这个是当前处理的块高,跑了17个小时才处理到这里。
docker exec -it f181fab2948f tail -f /java-tron/logs/tron.log
停止容器
docker container kill f181fab2948f
如果不使用了可以把容器和镜象完全删除,容器运行会产生很多的数据占磁盘空间。