区块链部署和运维

区块链部署和运维
一 . 使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.ininode0/start.shnode0/stop.sh到node2目录;

     cp node0/config.ini node0/start.sh node0/stop.sh node2/
  • 修改node2/config.ini。对于[rpc]模块,修改channel_listen_port=20204jsonrpc_listen_port=8549;对于[p2p]模块,修改listen_port=30304并在node.中增加自身节点信息

    vim node2/config.ini
  • 节点3拷贝节点1的node0/conf/group.1.genesis(内含群组节点初始列表)和node0/conf/group.1.ininode2/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监控情况

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值