# witness_node 使用教程

witness_node是GXChain节点程序,包含打包区块、验证区块、状态存储等区块链核心功能。使用help参数启动witness_node程序,会输出该工具支持的所有命令,以下为启动常用功能的说明示例。

# 1. 重放区块

重放区块为重新执行区块内容,并更新状态数据库,使用命令如下:

./programs/witness_node/witness_node --replay-blockchain --fast-replay

其中fast-replay为可选参数,开启之后,取消重放区块的速度限制、睡眠时间。

# 2. 重新同步

重新同步区块为重新从相连接的p2p节点同步区块并执行,使用命令如下:

./programs/witness_node/witness_node --resync-blockchain

# 3. 创世文件

genesis-json文件为创世文件,每一条链对应一个genesis-json文件。在GXChain主网,该文件已经内置,无需手工指定。如果使用GXChain测试网络,或者启动GXChain私有网络,则需要配置该文件。

#指定genesis.json 文件
./programs/witness_node/witness_node --genesis-json genesis.json

# 4. 开启API服务

API服务提供了查询链上信息、查询内存对象、发起交易等功能接口,可以通过curl工具或者cli_wallet工具与之交互,出块节点无需开启。

./programs/witness_node/witness_node --rpc-endpoint="0.0.0.0:28090"

# 5. 开启P2P服务

P2P服务开启之后,其他节点可以从本节点同步区块数据。

./programs/witness_node/witness_node --p2p-endpoint="0.0.0.0:9999"

# 6. 设置种子节点列表

种子节点列表,包含节点启动后,连接并同步区块的节点。主网已经内置了部分种子节点,无需手工指定。

./programs/witness_node/witness_node --seed-nodes='["testnet.gxchain.org:6789"]'

# 7. 设置存储目录

指定保存区块数据、内存状态数据的目录,不指定默认为witness_node_data_dir

./programs/witness_node/witness_node --data-dir=testnet_node

# 8. 结束witness_node

  • 如果witness_node没有后台运行,则执行一次Ctrl + C, 然后等待程序保存内存数据后自动退出。
  • 如果witness_node运行在后台, 执行kill -s SIGINT $(pgrep witness_node),等待程序保存内存数据后自动退出。不能使用kill -9, 否则下次启动会重建索引,启动比较慢。