进阶:轻节点服务与轻节点客户端部署
当系统中还没有共识节点
启动带轻节点服务的共识节点
./venachainctl.sh setupgen --nodeid 0 --auto true
./venachainctl.sh init --nodeid 0 --ip 127.0.0.1 --rpc_port 6791 --p2p_port 16791 --ws_port 26791 --auto "true"
## 启动节点时,lightmode参数设置为lightserver
./venachainctl.sh start --nodeid 0 --lightmode lightserver
./venachainctl.sh deploysys --nodeid 0 --auto true
启动轻节点
./venachainctl.sh init --nodeid 1 --ip 127.0.0.1 --rpc_port 6792 --p2p_port 16792 --ws_port 26792 --auto "true"
## 启动节点时,lightmode参数设置为lightnode
./venachainctl.sh start --nodeid 1 --lightmode lightnode
## 添加节点时,type设置为3
./venachainctl.sh addnode --nodeid 1 --type 3
当系统中已有共识节点
启动带轻节点服务的观察者节点
./venachainctl.sh init --nodeid 1 --ip 127.0.0.1 --rpc_port 6792 --p2p_port 16792 --ws_port 26792 --auto "true"
## 启动节点时,lightmode参数设置为lightserver
./venachainctl.sh start --nodeid 1 --lightmode lightserver
./venachainctl.sh addnode --nodeid 1
启动轻节点
./venachainctl.sh init --nodeid 2 --ip 127.0.0.1 --rpc_port 6793 --p2p_port 16793 --ws_port 26793 --auto "true"
## 启动节点时,lightmode参数设置为lightnode
# bootnodes结尾不要加 ?discport=0
# enode格式:enode://pubkey@ip:p2p_port
./venachainctl.sh start --nodeid 2 --lightmode lightnode --bootnodes ${观察者节点的enode}
## 添加节点时,type设置为3
./venachainctl.sh addnode --nodeid 2 --type 3
查看轻节点是否部署成功
进入节点控制台
./venachainctl.sh console -n 1
查看 nodeInfo
> admin.nodeInfo
返回结果
{
enode: "enode://06cb02b9f5f1a03f655172739bd0dba26a208e085733f94cf73543bb370e5a2a80749c8db95eb8b0ea8cfd046bda943f5630396e8f04c98cb044af5a27625e81@[::]:16792?discport=0",
id: "06cb02b9f5f1a03f655172739bd0dba26a208e085733f94cf73543bb370e5a2a80749c8db95eb8b0ea8cfd046bda943f5630396e8f04c98cb044af5a27625e81",
ip: "::",
listenAddr: "[::]:16792",
name: "Venachain/venachain/v1.1.2-stable-8d7bd37e/linux-amd64/go1.16.7",
ports: {
discovery: 0,
listener: 16792
},
protocols: {
les: {
cht: {
bloomRoot: "0x0000000000000000000000000000000000000000000000000000000000000000",
chtRoot: "0x0000000000000000000000000000000000000000000000000000000000000000",
sectionHead: "0x0000000000000000000000000000000000000000000000000000000000000000",
sectionIndex: 0
},
config: {
chainId: 300,
interpreter: "all",
istanbul: {...},
licenseCheck: false
},
genesis: "0xe969d8d9205f6b4f1fb7afde3201ddeeebd1b7a9302f1195b368631cca349b1f",
head: "0x1b0285a1de6905ca0ff9991aac5c4a4e2e8fa69e5f4bf8fd2b108b68da8047e4",
network: 1
}
}
}
可以看到,节点使用的协议是 les 协议。而 enode 是节点连接的启动了轻节点服务的节点。