-
Notifications
You must be signed in to change notification settings - Fork 256
平行链环境搭建
linj edited this page Nov 23, 2022
·
1 revision
平行链的运行是依赖于主链的,它通过grpc接口同主链进行通信,所以平行链一定是在主链环境已经具备的情况下才能搭建。
为解决专有问题,适用于特定场景,用户可以在主链上搭建平行链来解决,实现各个击破 。平行链共享主链共识网络,每条平行链只运行自己的数据,平行链与平行链之间数据相互隔离。 本文分别介绍Window和Linux两种操作系统上搭建Chain33平行链,请根据实际情况查阅对应文档。
准备好已搭建好的主链。主链的形态可以是:
下载页面: 资源下载 平行链软件包有window和linux两个版本,根据自己的操作系统下载对应的平行链软件包,再解压到任意指定目录。
软件包分别包含
# windows
chain33.exe -- chain33节点程序
chain33-cli.exe -- chain33节点命令行工具
chain33.para.toml -- chain33平行链配置文件
# linux
chain33 -- chain33节点程序
chain33-cli -- chain33节点命令行工具
chain33.para.toml -- chain33平行链配置文件
平行链根据具体情况修改对应的平行链title,主链地址,和super manager地址。
# 平行链title,用来唯一标识一条平行链,修改其中的xxxx(只支持英文字符,另外xxxx后面那个 . 不能省略)
Title="user.p.xxx."
# 平行链上创世积分的名称,可以自定义,但只支持英文字符
CoinSymbol="para"
[rpc]
# 平行链的jsonrpc和grpc地址,可以自定义,如果主链和平行链放在同一台服务器上, 只需要保证以下两个端口和主链配置不一样就行
jrpcBindAddr=":8901"
grpcBindAddr=":8902"
[consensus]
# 平行链创世积分所在的地址,可以修改成自己的地址(命令行地址生成方式见: https://chain.33.cn/document/126#1%20%E5%B9%B3%E8%A1%8C%E9%93%BE%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E5%8F%8A%E8%BF%90%E8%A1%8C, JAVA-SDK地址生成方式见:https://baas.33.cn/doc/detail/69 )
genesis="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
[consensus.sub.para]
# 主链的grpc地址,根据主链节点的具体情况修改 (具体的端口可以看主链配置文件中的:grpcBindAddr这个参数的配置)
ParaRemoteGrpcClient="127.0.0.1:8802"
# 指示从主链哪个高度开始同步,比如主链高度是1万,建议配置是提前1000个区块(10000-1000=9000),配置为1代表从主链第1个高度开始同步。 此参数不能配置成大于主链的高度
startHeight = 1
[exec.sub.manage]
# 平行链管理合约的super manager地址,用于设置一些合约权限相关的配置, 地址生成方式参考上述genesis地址
superManager=["14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"]
[exec.sub.evm]
# 前面coins.是固定配置,后面的参数和上述的CoinSymbol对应
ethMapFromSymbol="coins.para"
windows 1.在软件包解压目录打开windows终端,执行启动命令,启动后会一直打印日志。
chain33.exe -f chain33.para.toml
2.在软件包解压目录下重新打开windows终端,执行以下命令查询平行链网络信息,判断平行链是否创建成功。
chain33-cli.exe net peer
创建成功后,将输出如下类似的信息:
{
"peers": [
{
"addr": "192.168.0.157",
"port": 13802,
"name": "03a2314f11d5f78b93f13aba18618d61a652720003d8941415c6e8008761d58452",
"mempoolSize": 0,
"self": true,
"header": {
"version": 0,
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"txHash": "0xe34a933c5abf350db4db5122abbf43f6a54da2dbd67d214f67362c36bd70d23e",
"stateHash": "0x88f0b06df8cd2cd6da81e1580e6f179128e42aa8c66e2dba9c38af3e18f9fa44",
"height": 0,
"blockTime": 1514533394,
"txCount": 1,
"hash": "0xfd39dbdbd2cdeb9f34bcec3612735671b35e2e2dbf9a4e6e3ed0c34804a757bb",
"difficulty": 0
}
}
]
}
如果执行出错,请检查logs/chain33.log
文件中的错误信息。
linux 1.在待搭建平行链的服务器中,解压软件包。
tar -zxvf chain33_para_linux_0670237.tar.gz
2.在软件包解压缩目录中,执行启动命令。
nohup ./chain33 -f chain33.para.toml >/dev/null 2>&1 &
3.执行命令,查看进程。
ps -ef | grep -v grep | grep chain33
4.如果进程已经启动,执行命令查询平行链网络信息。
# --rpc_laddr参数指向的是平行链jsonrpc端口地址, 此端口配置对应在配置文件的 jrpcBindAddr
./chain33-cli --rpc_laddr="http://localhost:8901" block last_header
创建成功后,将输出如下类似的信息:
{
"version": 0,
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"txHash": "0xe4bf83e83b4624b5c39e333ec251eba8dab6a87ced457d44fda84c8b1a2c8a38",
"stateHash": "0x94a510c6ecb9bbee0f5b7c21dfb2fe4cc21251882292ebece60b59a6acd4961d",
"height": 0,
"blockTime": 1514533390,
"txCount": 1,
"hash": "0xebd9ba0fa9bdb26cd937ab1fd77650236b935bac48ede4522c5b2d85dc890be2",
"difficulty": 0
}
如果执行出错,请检查logs/chain33.log
文件中的错误信息。
hello world