赞
踩
开发部署工具 build_chain.sh 脚本依赖于以下库 openssl:用于在构建节点时生成证书 wget:用于下载开发部署工具 虚拟机已经提前预装了 openssl 和 wget,可在终端输入命令查看 openssl 和 wget 的 版本。
查看 openssl、 wget 版本信息
openssl veriosn
wget vcersion
下载工具:在终端输入如下命令,创建 fisco 目录并进入,在 fisco 目录下,输入如下面命令,下载开发部署工具 build_chain.sh
mkdir fisco && cd fisco
wget http://res.zhonghui.vip/blockchain/fiscobcos/01/resource/build_chain.sh
输入以下命令,修改脚本运行权限,权限修改成功后,再次输入 ‘ls’ 命令,可看到文件 名变为绿色
chmod u+x build_chain.sh
1.输入如下命令,检查 p2p 端口(30300-30303)是否占用,若端口没有被占用,则不 会输出任何信息
2.输入如下命令,检查 channel 端口(20200-20203)是否占用,若端口没有被占用, 则不会输出任何信息
3.输入如下命令,检查 rpc 端口(8545-8548)是否占用,若端口没有被占用,则不会输 出任何信息
lsof -i:30300-30303
lsof -i:20200-20203
lsof -i:8545-8548
使用开发部署工具在本地构建单群组4节点的区块链网络,命令如下:
bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545
参数说明:
-l:用于指定要生成的链的 IP 列表以及每个 IP 下的节点数,以逗号分隔。
-p:分别指定节点的 p2p, channel, jsonrpc 端口,同一个 IP 下的不同节点所使 用端口从起始端口递增
tail -f nodes/127.0.0.1/node*/log/log* | grep connected
输入以下命令,可查看节点 node0 的共识状态,正常情况下,终端会不断输出 “[SEALER]++++++++++++++++” 信息,表示节点共识正常。共识信息会不断打印,可 按 “ctrl + c” 退出。
tail -f nodes/127.0.0.1/node*/log/log* | grep +++
cat > ipconf << EOF
127.0.0.1:1 agencyA 1,2,3
127.0.0.1:1 agencyB 1
127.0.0.1:1 agencyC 2
127.0.0.1:1 agencyD 3
EOF
参数说明
ip:num:物理机 IP 以及物理机上的节点数目
agency_name: 机构名称
group_list: 节点所属的群组列表,不同群组以逗号分隔
输入如下命令查看配置文件的内容是否正确
cat ipconf
启动节点并查看节点运行状态 、启动星型拓扑网络节点 输入如下命令并启动所有节点:
bash build_chain.sh -f ipconf -p 30300,20200,8545
bash nodes/127.0.0.1/start_all.sh
ps -ef | grep -v grep | grep fisco-bcos
tail -f nodes/127.0.0.1/node*/log/log* | grep connected
tail -f nodes/127.0.0.1/node*/log/log* | grep +++
构建并行多组网络节点
说明:在并行多组网络的构建场景中,我们为演示并行多组的扩容流程,将先构建单群 组四节点网络,随后将群组2加入到区块链中,当然,并行多组的构建也可以采用星型 拓扑组网的构建方式。
首先,输入如下命令,构建一个单群组四节点的网络
bash build_chain.sh -l 127.0.0.1:4 -o multi_nodes -p
30300,20200,8545
参数说明:
-l:用于指定要生成的链的 IP 列表以及每个 IP 下的节点数,以逗号分隔。
-o:指定生成的配置所在的目录,默认为nodes。
-p:分别指定节点的 p2p, channel, jsonrpc 端口,同一个 IP 下的不同节点所使 用端口从起始端口递增。
bash multi_nodes/127.0.0.1/start_all.sh
ps -ef | grep -v grep | grep fisco-bcos
tail -f multi_nodes/127.0.0.1/node0/log/* | grep +++
输入如下命令,可查看节点 node0 目录下的群组配置文件 group.1.genesis 和 group.1.ini
ls multi_nodes/127.0.0.1/node0/conf/
由于在并行多组区块链中,每个群组的 ini 文件文件相同, 但 genesisi 文件中的 [group.id] 不同,为群组号,所以我们需要拷贝群组1的配置文件(genesis 和 ini 文 件),并修改拷贝后 genesis 文件。
为减少路径输入引起的麻烦和错误,我们先进入节点目录:
cd multi_nodes/127.0.0.1
拷贝节点 node0 中的群组1的配置文件 group.1.genesis,并将其命名为 group.2.genesis
cp node0/conf/group.1.genesis node0/conf/group.2.genesis
输入如下命令验证拷贝是否成功,如出现 group.2.genesis 文件则说明成功
ls node0/conf/
接着拷贝节点 node0 中的群组1的配置文件 group.1.ini ,并将其命名为 group.2.ini
cp node0/conf/group.1.ini node0/conf/group.2.ini
输入如下命令验证拷贝是否成功,如出现 group.2.ini 文件则说明成功
ls node0/conf/
输入如下命令,修改 group.2.genesis 文件中的 id 参数
sed -i "s/id=1/id=2/g" node0/conf/group.2.genesis
输入如下命令,验证是否修改成功
cat node0/conf/group.2.genesis | grep "id"
自此,节点 node0 的配置已经完成,接下来我们依次将群组2的配置文件拷贝到 其余节点
cp node0/conf/group.2.genesis node1/conf/group.2.genesis
cp node0/conf/group.2.ini node1/conf/group.2.ini
输入如下命令检查是否拷贝成功,若出现 group.2.genesis 和 group.2.ini 文件表示拷 贝成功
ls node1/conf/
重启节点并查看节点运行状态
bash stop_all.sh && bash start_all.sh
tail -f node*/log/log* | grep +++
使用开发部署工具在本地构建国密版单群组4节点的区块链网络,命令如下:
bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545 -g -G
参数说明: -l:用于指定要生成的链的 IP 列表以及每个 IP 下的节点数,以逗号分隔。 -p:分别指定节点的 p2p, channel, jsonrpc 端口,同一个 IP 下的不同节点所使 用端口从起始端口递增。 -g:搭建国密版本的链 -G:设置 chain.sm_crypto_channel=true ,表示节点与SDK连接使用国密SSL
输入如下命令,查看国密版证书文件:
ls nodes/gmcert
仔细观察,国密版 FISCO BCOS 在 nodes 目录下比标准版多了 gmcert 目录,此目录 为国密版证书文件,包括国密版证书和私钥等文件。国密版 FISCO BCOS 采用双证书 模式,分别为加密证书和签名证书,当然国密版 FISCO BCOS 还有其他特性,如SSL链 接、签名验证、消息摘要算法等
启动国密版网络节点 输入如下命令,运行所有节点
bash nodes/127.0.0.1/start_all.sh
查看节点进程,正常情况下应该有 4 个节点进程
ps -ef | grep -v grep | grep fisco-bcos
查看节点共识 输入如下命令,查看节点 node0 的共识状态,出现 “[SEALER]++++++++++++++++” 信 息表示共识正常。
tail -f nodes/127.0.0.1/node0/log/* | grep +++
在终端输入如下命令,生成并行多组网络的配置文件 ipconf,该文件将用于构并 行多组的网络节点(注意参数之间的空格)
cat > ipconf << EOF
127.0.0.1:4 agency 1,2
EOF
使用开发部署工具构建并行多组网络节点,命令如下:
bash build_chain.sh -f ipconf -p 30300,20200,8545
bash nodes/127.0.0.1/start_all.sh
ps -ef |grep -v grep | grep fisco-bcos
tail -f nodes/127.0.0.1/node*/log/log* |grep +++
控制台是基于 Java SDK 实现的,虚拟机已经预装了 Java,输入如下命令检查 Java 版 本。
java --version
在终端输入如下命令,下载控制台压缩包
wget http://res.zhonghui.vip/blockchain/fiscobcos/01/resource/console.tar.gz
tar -zxf console.tar.gz
在终端输入如下命令,查看控制台目录结构,若出现下图(部分截图)结构,则说 明解压成功
tree ./console
cp nodes/127.0.0.1/sdk/* console/conf/
cp console/conf/config-example.toml console/conf/config.toml
输入如下命令,启动控制台,成功启动控制台后,会出现下图标志
bash console/start.sh
getNodeVersion
deploy HelloWorld.sol
call HelloWorld.sol 0x3b890219b503a15634ed539aaf651e7c31537974 get
getTransactionReceipt 0x9a7d2fef9d17c8d49349c6f31dd9576b5c9ba8433a95e93143093ce523c5a93c
输入如下命令,查看之前调用 HelloWorld 合约 set 接口的交易回执。 其中第一个参数为交易hash,由之前调用合约set接口时获得,根据实际情况填写。
除了交易索引、区块高度、发送和接收地址,交易回执还包括以下信息:
status:执行结果,1表示成功,0表示失败
gasUsed:已消耗的Gas数量
transactionHash:交易Hash …
输入以下命令,查看当前的区块高度。
getBlockNumber
输入如下命令,可查看区块链中的总交易数,不改变合约状态的方法不会产生交易,比 如调用 get 接口。
getTotalTransactionCount
输入以下命令,可根据区块高度查看区块信息。
getBlockByNumber 4
输入如下命令,查看区块高度为 4 的区块 hash。
getBlockHashByNumber 4
输入如下命令,根据区块 hash 查看区块头信息。
getBlockHeaderByHash 0x61fa7091b8d5289e2a4d7c0b8a5258f2aad53a187d56833b3f66c8ccf90ecfed
输入如下命令,切换群组。
switch 2
]
输入以下命令,可根据区块高度查看区块信息。
getBlockByNumber 4
[外链图片转存中…(img-WFR1jw6j-1722769941444)]
输入如下命令,查看区块高度为 4 的区块 hash。
getBlockHashByNumber 4
[外链图片转存中…(img-K2HQpAZM-1722769941444)]
输入如下命令,根据区块 hash 查看区块头信息。
getBlockHeaderByHash 0x61fa7091b8d5289e2a4d7c0b8a5258f2aad53a187d56833b3f66c8ccf90ecfed
[外链图片转存中…(img-pMLc1d29-1722769941444)]
输入如下命令,切换群组。
switch 2
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。