区块链部署和运维
一 . 使build_chain部署一条区块链网络
使用build_chain.sh部署一条区块链网络,其中ip与端口为默认配置。完成配置并启动后,使用ps以及tall命令进行验证。
第一步:创建操作目录,下载安装脚本
cd fisco-bcos
第二步:搭建单群组4节点联盟链
bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545 –e ./fisco-bcos
第三步:启动FISCO BCOS链
bash nodes/127.0.0.1/start_all.sh
第四步:检查进程
-
检查进程是否启动
ps -ef | grep fisco
第五步:检查日志输出
查看节点node0链接的节点数
tail -f nodes/127.0.0.1/node0/log/log* | grep connected
二 . 配置及使用控制台
进入fisco-bcos目录,基于已有的console目录,配置连接正在运行的FISCO BCOS区块链,并启动。在启动成功后使用getBlockNumber命令获取区块高度。
第一步:
进入fisco-bcos目录,基于已有的console目录
第二步:
配置连接正在运行的FISCOBCOS区块链,拷贝控制台配置文件conf
cp ../nodes/127.0.0.1/sdk/* conf/
第三步
启动并使用控制台
bash start.sh
使用getBlockNumber命令获取区块高度。
三 . FISCO BCOS WeBASE一键部署
第一步
关闭所有FISCO BCOS服务
bash nodes/127.0.0.1/stop_all.sh
第二步:
使用命令一键启动,进入webase-deploy文件
python3 deploy.py startAll
第三步
通过浏览器以访问web的形式验证
第四步
通过ps命令验证进程
-
检查节点进程
ps -ef | grep node
-
检查节点前置webase-front的进程
-
检查webase.node对应的mgr进程
-
检查签名服务webase-sign的进程
四 . 使用console控制台连接WeBASE一键部署后的FISCO BCOS节点
第一步
进入console项目控制台:cd console
第二步
通过拷贝配置文件,连接WeBASE一键部署后的FISCO BCOS节点
cp ~/fisco-bcos/webase-deploy/nodes/127.0.0.1/sdk/* conf
第三步
启动并使用控制台
bash start.sh
五 . 在console中分别完成教程2Console功能的1-8功能。
1.创建账户
newAccount
2.查看所有账户
listAccount
3.查看区块高度
getBlockNumber
4.查看共识节点列表
getSealerList
5.查看节点及连接 p2p 节点的 nodeId 列表
getNodeIDList
6.查看共识状态
getConsesusStatus
7.查看同步状态
getSyncStatus
8.查看节点 peers 信息
getPeers
六 . 使用Console完成HelloWorld合约的部署
使用Console完成HelloWorld合约的部署,并调用Set和Get功能通过Console命令获取调用后生成交易hash值对应的详细内容
第一步
部署helloword合约
deploy HelloWorld
第二步
调用部署的helloworld合约
call HelloWorld 0x605f2de4bccdff3d1d1ae877de9c644db5326eea get
call HelloWorld 0x605f2de4bccdff3d1d1ae877de9c644db5326eea set “Hello,CCIT”
call HelloWorld 0x605f2de4bccdff3d1d1ae877de9c644db5326eea get
第三步
通过交易号查看指定交易
七.WeBASE登录并修改密码
第一步:
登录(admin/Abcd1234),修改密码后进入控制台主页
第二步:
节点查看
第三步
使用Console调用HelloWorld合约Set功能,通过WeBASE主页观察区块变化情况
八.FISCO BCOS相同机构内节点扩容
第一步:为节点生成私钥证书
在nodes/127.0.0.1目录下运行
cd fisco-bcos/webase-deploy/nodes/127.0.0.1/
下载生成脚本
curl -#LO https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/master-2.0/tools/gen_node_cert.sh
第二步:生成新节点私钥证书
bash gen_node_cert.sh -c ../cert/agencyA -o node2/
第三步:准备节点配置文件
-
拷贝
node0/config.ini
、node0/start.sh
和node0/stop.sh
到node2目录;cp node0/config.ini node0/start.sh node0/stop.sh node2/
-
修改
node2/config.ini
。对于[rpc]
模块,修改channel_listen_port=20204
和jsonrpc_listen_port=8549
;对于[p2p]
模块,修改listen_port=30304
并在node.
中增加自身节点信息vim node2/config.ini
-
节点3拷贝节点1的
node0/conf/group.1.genesis
(内含群组节点初始列表)和node0/conf/group.1.ini
到node2/conf
目录下,不需改动cp node0/conf/group.1.genesis node0/conf/group.1.ini node2/conf/
-
执行
node2/start.sh
启动节点;bash node2/start.sh
-
确认node2与其他节点连接已经建立,加入网络操作完成。
-
tail -f node2/log/log* | grep "connected count"
第四步:节点加入群组
-
获取node2的nodeid
cat node2/conf/node.nodeid
-
webase 查看节点情况
第五步:创建用户(私钥管理)
第六步:修改新增节点为共识节点
九 .WeBASE与WeBASE-Front交互操作
1.使用WeBASE导出admin用户至WeBASE-Front
-
第一步:webase(5000 端口),导出以p12 加密形式导出 admin 账户。
-
第二步:webase-front(5002 端口)导入(合约管理->测试用户)
-
#网址: http://192.168.200.100:5002/WeBASE-Front/#/
2.通过WeBASE-Front部署StringGetSet合约
-
第一步:合约 IDE 创建 StringGetSet合约
-
合约内容:
-
pragma solidity ^0.4.24; contract StringGetSet { string myValue; function StringGetSet(){ myValue = "demo"; } function get()constant returns(string) { return myValue; } function set(string input) { myValue = input; } }
编译 - > 部署
-
第二步:部署StringGetSet合约
-
第三步:获得合约部署地址和 abi
3.调用StringGetSet合约验证
-
第一步:使用合约调用进行合约验证
-
首先把合约调用的方法选择成get
-
交易回执就是demo
-
把合约调用的方法改成set,其参数为hello,然后调用其信息
-
把合约调用的方法选择成get
其调用的结果就是hello
十 . FISCO BCOS委员会操作
基于WeBASE实现FISCO BCOS委员会操作,分别实现:委员新增、权重修改、阈值修改以及委员撤销。
第一步:webase平台创建三个账户
第二步:添加委员
点击权限管理->新增委员投票->添加user1
点击权限管理->新增委员投票->添加user2
点击权限管理,分别使用user1和user2,添加user3
第三步:修改委员权重,修改user1权重为2
user1投票
user2投票后修改成功
第三步:修改阈值投票,修改投票阈值为49
user1投票
user2投票后修改成功
第四步:撤销委员,将user3委员撤销
由于user1权重比大于49%,投票后直接成功撤销
十一 . FLSCO BCOS 链委会相关操作
第一步:创建3个账户(a1,a2,a3)并验证
使用三次bash get_account.sh创建用户a1,a2,a3
bash get_account.sh
进行验证:
tree accounts
第二步 : 委员添加(将a1、a2、a3)加入链委会并验证
第一步:a1控制台的操作(指定账户1登录控制台)
./start.sh 1 -pem accounts/0xc8dc3d333633968b5637fea669942e2e21a19cdb.pem
先查看有没有链委会成员
listCommitteeMembers
grantCommitteeMember 0xc8dc3d333633968b5637fea669942e2e21a19cdb
添加第二条链委会
grantCommitteeMember 0xa53862955615fe046396c3c1b230d4c38c67149b
添加第三条链委会
grantCommitteeMember 0x93cb4ebd941a5dee23f60cbe5180d1c802408f40
第二步:a2控制台的操作
grantCommitteeMember 0x4f666e3a34661fdd2d76d6f03d85e1f2a0f11801
验证:
第三步:修改a1的权重为2并验证
第一步:a1控制台的操作
updateCommitteeMemberWeight 0xb8f33204441c4e43b5be6f4875a2fd42bf994a6b 2
第二步:a2控制台的操作
updateCommitteeMemberWeight 0xb8f33204441c4e43b5be6f4875a2fd42bf994a6b 2
验证:
第四步:将投票阈值修改为49并验证
第一步:a1控制台的操作
updateThreshold 49
第二步:a2控制台的操作
updateThreshold 49
验证:
第五步: 撤销a3的委员并验证
revokeCommitteeMember 0x93cb4ebd941a5dee23f60cbe5180d1c802408f40
由于委员会a1的权重比大于49%,所以在控制台al可以直接撤销a3的委员。
验证:
FSICO BCOS Data-Export使用
一.准备操作
启动webase,并确认webase-front中已部署StringGetSet合约
cd fisco-bcos/webase-deploy/
python3 deploy.py startAll
二:实际操作
通过data-export准实时监控StrngGetSet合约
第一步:解压
cd ~/fisco-bcos
删除原本的data-export-docker
rm -rf data-export-docker/
tar xzvf data-export-1.7.2.tar.gz
第二步:复制nodes证书
选择channel方式连接链节点时,需配置证书
cd data-export-docker
cp ../webase-deploy/nodes/127.0.0.1/sdk/* config/
tree config
第三步:在config/abi以及config/bin中分别创建StringGetSet对应文件
cd config/abi/
vim StringGetSet.abi
把webase里面的合约IDE部署的abi复制粘贴到此文件里面
cat StringGetSet
进入到config/bin环境中
cd ../
ls
cd bin
vim StringGetSet.bin
把webase里面的合约IDE部署的bytecodeBin复制粘贴到此文件里面
第四步:启动服务
docker rm mysql
bash build_export.sh -m
上述脚本会自动安装docker,并拉取对应镜像,进行执行。如果docker安装失败,请手动安装后重新执行脚本。
脚本参数说明
参数 | 说明 |
---|---|
-m | 自动安装mysql,数据存储在/data/mysql下 |
-e | 自动安装elasticsearch,数据存储在/data/elasticsearch下 |
-g | 自动安装grafana |
解析:
- 加后缀 -m 启动脚本,会通过docker自动安装mysql, 并创建一个名为 data_export 的数据库, application.properties 中默认配置了该mysql的信息,无需另配置mysql连接信息。
- 加后缀 -e 启动脚本,会通过docker自动安装elasticsearch,并自动修改配置文件中es相关配置。
- 加后缀 -g 启动脚本, 会通过docker自动安装grafana,并自动修改配置文件中可视化相关配置,生成可视化脚本。
- 不加后缀执行如: bash build_export.sh,这时需自行安装相关组件,并配置连接信息。
- ElasticSearch用于商用场景时需自行去ElasticSearch官网下载或采购。该行为与微众区块链无关。
第五步:监控(通过如下命令可查看运行日志)
docker logs -f dataexport
有如下输出说明启动连接成功
第六步: 查看mysql中data_export数据库
访问docker数据库命令如下
docker exec -it mysql bash
进入mysql端口
mysql -uroot -p
查看mysql中data_export数据库
use data_export
show tables;
第七步: 配置可视化
配置文件application.properties位于config目录下
修改application.properties文件:该文件包含了所有的配置信息。以下配置信息是必须要配置的:
第八步:重启dataexport容器
第九步:启动grafana镜像
docker run -itd -p 3000:3000 --name=grafana grafana/grafana
第十步: 浏览器访问grafana
用户名和密码:admin/admin
第十一步:配置grafana,添加mysql连接
第十二步:加载配置文件(config/default_dashboard.json)
需要从/home/arthur/fisco-bcos/data-export-docker/config/拉取文件default_dashboard.json到桌面,然后import加载配置文件
加载成功示例
第三部分:实操练习
一、通过build_chain.sh一键部署FISCO BCOS、以及WeBASE-Front
第一步
进入fisco-bcos目录,一键部署FISCO BCOS
cd fisco-bcos
ls
bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545 –e ./fisco-bcos
第二步:启动FISCO BCOS链
bash nodes/127.0.0.1/start_all.sh
第三步:启动WeBASE-Front
进入WeBASE-Front目录,拷贝证书
cd WeBASE-Front
ls
#在dist目录下拷贝
cd dist
cp ../../nodes/127.0.0.1/sdk/* conf/
启动WeBASE-Front服务
bash start.sh
监控日志
tail -f log/WeBASE-Front.log
页面呈现:网址为:192.168.200.100:5002/WeBASE-Front/(ip地址)
二、基于第一步中已的FISCO BCOS区块链在机构中扩容一个节点(node4),并将node4作为共识节点
第一步:下载gen_node_cert.sh
cd fisco-bcos
cd nodes/127.0.0.1
#下载链接
curl -#LO https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/master-2.0/tools/gen_node_cert.sh
第二步: 运行生成node4
bash gen_node_cert.sh -c ../cert/agency -o node4
第三步:拷贝node0中config.ini、start.sh、stop.sh
cp node0/config.ini node0/start.sh node0/stop.sh node4/
第四步: 修改node4的config.ini
vim config.ini
第五步:拷贝群组1中的配置信息
cp node0/conf/group.1.* node4/conf/
第六步:启动node4
bash node4/start.sh
第七步:验证node4的节点连接情况
tail -f node4/log/log* | grep connected
第八步:
配置连接正在运行的FISCOBCOS区块链,拷贝控制台配置文件conf ,启动服务器
cp ../nodes/127.0.0.1/sdk/* conf/
bash start.sh
第九步:在打开一个终端,获取node4的节点id
cd fisco-bcos
cat nodes/127.0.0.1/node4/conf/node.nodeid
第十步:添加node4为共识节点
getNodeIDList
getSealerList
addrSealer 07ac6053d176f857ce66eee5443a5b095aba694a2b0ac52ce1352be7f8ee66aab881d8682e4266a04c07956cae605a6dc16304b488d54179d63773240d8d61ac
在控制台上验证:
getSealerList
通过日志验证:
cd ../nodes/127.0.0.1/
tail -f node4/log/log* | grep +++
三.在WeBASE-Front中分别部署Adoption以及FoodTraceNew智能合约,获取合约地址,abi,bin,分别调用合约中的功能
第一步: HelloWorld智能合约的部署与调用
部署HelloWorld合约
第二步:调用Helloworld 合约
Get方法:
Set方法:
第三步: Adoption智能合约的部署与调用
Adoption智能合约的部署:
Adoption智能合约调用
调用合约中register功能
首先指定注册用户
调用register结果返回:
调用登录功能login
第四步:FoodTraceNew智能合约的部署与调用
FoodTraceNew智能合约的部署
FoodTraceNew智能合约的调用
分别调用createMember以及getMember
createMember调用
调用createMember返回结果
getMember调用
四.使用Data-export组件分别将Adoption、FoodTraceNew合约调用数据导出至MySQL,再通过Grafana组件监控Mysql的变化
第一步:调用前的操作
删除mysql容器
cd fisco-bcos
docker ps -a
docker rm mysql
清空volume
docker volume prune
删除data-export-docker目录
rm -rf data-export-docker
重新解压
tar xzvf data-export-1.7.2.tar.gz
第二步:复制证书
cd fisco-bcos
cd data-export-docker
cp ../nodes/127.0.0.1/sdk/* config
第三步: 删除HelloWorld.abi和HelloWorld.bin
cd config/abi
ls
rm -rf HelloWorld.abi
cd ../bin
ls
rm -rf HelloWorld.abi
第四步:分别添加监控合约的abi和bin文件(Adoption、FoodTraceNew)
cd ../abi
vim Adoption.abi
vim FoodTraceNew.abi
cd ../bin
ls
vim Adoption.bin
vim FoodTraceNew.bin
在WeBASE-Front中复制Adoption.abi和Adoption.bin内容到指定文件中
第五步:启动data-export
bash build_export.sh -m
第六步:监控dataexport容器日志,以下为正确输出
第七步:监控mysql容器
docker exec -it mysql bash
mysql -uroot -p
show databases;
第八步:show tables看到指定合约对应的表table
use data_export
show tables;
五.分别调用Adoption以及FoodTraceNew智能合约功能,通过Grafana监控情况
第一步: 配置data-export组件允许使用grafana
vim config/application.properties
第二步:启动grafana容器
docker run -itd -p 3000:3000 --name=grafana grafana/grafana
第三步:登录grafana页面登录(admin/admin)
第四步:进入configuration页面,新增mysql选项
第五步:配置mysql链接
第六步:加载default_dashboard.json
有如下页面:
第七步:调用Adoption智能合约功能,通过Grafana监控情况
第八步:调用FoodTraceNew智能合约功能,通过Grafana监控情况
Grafana监控情况文章来源:https://www.toymoban.com/news/detail-802939.html
文章来源地址https://www.toymoban.com/news/detail-802939.html
到了这里,关于区块链部署和运维的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!