当前位置:   article > 正文

区块链部署与运维2_区块链网络运维

区块链网络运维

一.账户权限控制

参考:

账户权限控制 — FISCO BCOS 2.0 v2.9.0 文档

1.生成账户

在生成账户之前可能会出现下面的错误,

解决方法如下:

  1. cd ..
  2. cd webase-deploy
  3. python3 deploy.py stopAll

  1. cd ..
  2. bash nodes/127.0.0.1/start_all.sh
  3. cd console
  4. cp ../nodes/127.0.0.1/sdk/* conf/

生成账户:a1,a2,a3

  1. bash get_account.sh
  2. #连续三次生成新的账户

 

验证:

 

2.新增委员 

新增委员a1:

  1. ./start.sh 1 -pem 第一个账户的私钥
  2. grantCommitteeMember 第一个账户的地址

新增委员a2:

  1. grantCommitteeMember 第二个账户的地址

新增委员a3:

a1操作:

grantCommitteeMember 第三个账户的地址

 a2操作:

  1. ./start.sh 1 -pem 第二个账户的私钥
  2. grantCommitteeMember 第三个账户的地址

验证:

listCommitteeMembers

 

3.修改委员权重

  1. updateCommitteeMemberWeight 第一个账户的地址 2
  2. #2表示修改的比例

 a1操作:

a2操作:

a2需要在a2里面进行下面的代码:

updateCommitteeMemberWeight 第一个账户的地址 2

 

验证:

queryCommitteeMemberWeight 第一个账户的地址

 

 4.阈值修改

a1操作:

  1. updateThreshold 49
  2. #在a1中进行

a2操作:

  1. updateThreshold 49
  2. #在a2中进行

验证:

queryThreshold

 

5.撤销委员

注意出现两个委员时,需要执行两次投票,在账户一中执行一次,账户二中执行一次。增加委员和修改阈值同样如此。

a1操作:

在a1中进行

revokeOperator 需要撤销委员的地址

验证:

listCommitteeMembers

 

 6.在控制台.切换到群组1

switch 1

 

7. 将账户4设置为运维角色

用账户1添加账户4为运维

  1. grantOperator 账户四地址
  2. #查看
  3. listOperators

二.实训

实训一

1.链搭建(FISCO-BCOS,WEBASE-FRONT)

先恢复快照

配置:

  1. cd fisco-bcos
  2. 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 

  1. cd WeBASE-Front
  2. cd dist
  3. #拷贝证书
  4. cp ../../nodes/127.0.0.1/sdk/* conf/
  5. #启动服务
  6. bash start.sh

页面呈现:

2.节点扩容(在fisco-bcos中扩容一个节点)

下载gen_node_cert.sh

  1. cd ../..
  2. cd nodes/127.0.0.1
  3. curl -#LO https://gitee.com/FISCO-BCOS/FISCO-BCOS/raw/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 node4/config.ini

拷贝群组1中的配置信息

cp node0/conf/group.1.* node4/conf/

启动node4

bash node4/start.sh

验证node4的节点连接情况

  1. tail -f node2/log/log* | grep "connected count"

获取node4的节点id

cat nodes/127.0.0.1/node4/conf/node.nodeid

  1. cd console
  2. cp ../nodes/127.0.0.1/sdk/* conf/

启动控制台

bash start.sh

添加node4为共识节点:

console验证

getSealerList

3.WeBASE-Front部署智能合约

HelloWorld智能合约的部署与调用

 get方法

 

Set方法

 

Adoption智能合约的部署与调用

 

调用合约中register功能

 首先指定注册用户(test1)

调用register功能结果返回:

 

调用登录功能:

 

FoodTraceNew智能合约的部署与调用

分别调用createMember以及getMember

createMember调用(producter)

getMember

4. 使用Data-export组件分别将Adoption、FoodTraceNew合约调用数据导出至MySQL,再通过Grafana组件监控

删除mysql容器

docker rm mysql

 清空volume

docker volume prune

删除data-export-docker目录

rm -rf data-export-docker 

重新解压

tar xzvf data-export-1.7.2.tar.gz

1. 复制证书

cp ../nodes/127.0.0.1/sdk/* config/

 

 2. 删除HelloWorld.abi和HelloWorld.bin,分别添加监控合约的abi和bin文件(以Adoption合约为例)

  1. cd config/abi
  2. rm -rf HelloWorld.abi
  3. rm -rf HelloWorld.bin
  4. vim Adoption.abi
  5. vim Adoption.bin

启动data-export

  1. cd ../..
  2. bash build_export.sh -m

监控dataexport容器日志,以下为正确输出

注意:出现错误你可能需要重启虚拟机,重启后你需要再次查看webase-front是否打开

docker logs -f dataexport

 

监控mysql容器

  1. docker exec -it mysql bash
  2. mysql -uroot -p
  3. #密码:123456
  4. show databases;
  5. use data_export;
  6. show tables;
  7. 两次
  8. exit;

 

配置data-export组件允许使用grafana

vim config/application.properties

 

 启动grafana容器

docker run -itd -p 3000:3000 --name=grafana grafana/grafana

admin/admin 

进入configuration页面,新增mysql选项

配置mysql连接

 

 

 加载default_dashboard.json

指定的文件: 

 

 

 5.查看监控变化

在第三步上做出一样的方法,就可以看到变化,刷新

 三.实战(宠物商店领养项目实施部署练习)

下面的步骤是按照博主自己的环境进行的,与我环境不同的友友可以去我的资源下载宠物商店领养项目实施部署教程,该教程十分详细。(❤ ω ❤)

部署后端

1.预操作

FISCO BCOS链启动(不是重新安装),webase-front也启动

第一步先检查是否有包含“FISCO”关键词的进程存在

出现下面的情况表示已经启动了

  1. cd fisco-bcos
  2. ps -ef | grep fisco

若没有,则需要启动,步骤如下:

首先启动FISCO BCOS

  1. cd fisco-bcos
  2. bash nodes/127.0.0.1/start_all.sh

 启动WeBASE-Front

  1. cd WeBASE-Front/dist
  2. bash start.sh

监控WeBASE-Front启动情况

 

通过网页验证

 

 2.配置与启动软件应用

 打开虚拟机,用mobaxterm等软件连接虚拟机,并创建AdoptionProject

mkdir AdoptionProject

将软件应用的前后端代码拷贝至虚拟环境的AdoptionProject目录

 

解压前后端代码

  1. cd AdoptionProject
  2. unzip pet-store-front-master.zip
  3. unzip pet-store-flask-master.zip

  部署Adoption智能合约

打开WeBASE-Front网页,找到Adoption智能合约,分别“保存”->“编译”->“部署”,使用“admin”进行部署

现在开始首先部署软件应用后端(pet-store-flask),进入~/AdoptionProject/pet-store-flask-master,使用virtualenv创建虚拟环境

  1. cd pet-store-front-master
  2. python -m virtualenv venv

安装后端所有依赖 

pip install -r requirements.txt

 

修改后端项目中对应的config.py

文件,其中包括admin_address,contract_address 

  1. vim config.py
  2. vim app.py

 

找到app.py将端口改成8081

 

 

通过nohup启动后端 ,. 使用tail监控

  1. nohup python app.py &
  2. tail -f nohup.out
  3. 注意:启动后端可以使用
  4. python app.py
  5. 查看端口是否占用及占用方法:
  6. netstat -nlp | grep 8081
  7. 注意:76775与实际相关
  8. kill 76775

 

部署前端及验证

开始部署前端,进入pet-store-front-master目录,使用npm install安装前端依赖

npm install

 

 通过npm生成前端项目的静态文件

npm run build

 前端项目静态文件执行成功后会生成dist目录

配置nginx,通过反向代理的形式将8022端口指向本地pet-store-master目录中的dist子目录 

获取nginx.conf地址

sudo nginx -t

修改nginx.conf加上通过8022反向代理到本地dist目录的配置

sudo vim /etc/nginx/nginx.conf

在nginx.conf的http上下文中加入server配置,具体内容如下:

 

保存nginx.conf后,使用命令让nginx工具重新加载nginx.conf

sudo nginx -s reload

 检查8022端口占用情况:

sudo netstat -nlp | grep 8022

检查网页使用情况

 验证功能:

首先进入注册页面

在webase-front中复制一个用户的地址,进行注册:

有如下输出说明注册成功

进入登录页

 

将刚刚注册的用户地址,在登录页复制后登录,有如下输出说明登录成功:

 

四. 基于容器技术的区块链系统部署与验证

宠物商店后端容器化部署

1.预操作

修改docker源为国内

sudo vim /etc/docker/daemon.json

  1. {
  2. "registry-mirrors": [
  3. "http://hub-mirror.c.163.com",
  4. "https://docker.mirrors.ustc.edu.cn",
  5. "https://registry.docker-cn.com"
  6. ]
  7. }

重启docker

sudo service docker restart

2.部署config.py

 检查config.py中admin_address(部署合约用户地址)和contract_address(合约地址),webase_host(局域网下webase-front访问ip)

 

 3.生成服务端镜像(back:v1)

复制用户根目录(~)中的.pip目录到AdoptionProject目录中

cp -r .pip AdoptionProject/

接着生成dockerfile

  1. cd ~/AdoptionProject
  2. vim BackDockerfile
  1. FROM python:3.8
  2. ADD ./pet-store-flask-master /root/pet-store
  3. ADD ./.pip /root/.pip
  4. WORKDIR /root/pet-store
  5. RUN pip install -r requirements.txt
  6. EXPOSE 8081
  7. CMD /bin/bash -c "python app.py"

修改后端代码(~/AdoptionProject/pet-store-flask-master/app.py)在最后添加host配置:

 4.生成back:v1

docker build -f BackDockerfile -t back:v1 .

执行这个命令之后会出现这个错误,需要你重启,建议直接物理重启

 

 5.验证自定义镜像

docker images

 运行后端代码对应容器验证:

docker run -itd --name pet-store-back  -p 8081:8081 back:v1

使用docker ps,验证

验证进程是否正在运行

netstat -nlp |grep 8081

 一般使用这两个命令可能会出现下面的错误:

解决方法:

先停止,后删除

  1. docker stop pet-store-back
  2. docker rm pet-store-back

运行后端时,就是python app.py出现这个错误,端口占用

解决方法:

  1. ps aux | grep python
  2. #arthur 12345 0.0 0.0 11111 22222 pts/0 S+ 12:34 0:00 python app.py
  3. sudo kill 12345

 6.使用postman验证

 

验证/user/register

先在webase-front中创建一个test4用户

使用postman验证,url: /user/register?address=[你创建的用户地址]

 

 客户端生成静态文件

工程目录(~/AdoptionProject/pet-store-front-master)

进入此目录确认存在dist文件

如果dist文件夹不存在,那么使用如下命令进行生成:

npm run build

复制配置nginx.conf

 

 修改nginx.conf

 

 配置docker-compose.yml,具体内容如下:

(注意: 这里文件路由要用绝对路径)

  1. version: '3.3'
  2. services:
  3. back:
  4. image: back:v1
  5. container_name: petstore_back
  6. ports:
  7. - 8081:8081
  8. front:
  9. image: nginx
  10. container_name: petstore_front
  11. volumes:
  12. - /home/arthur/AdoptionProject/pet-store-front-master/dist:/root/dist
  13. - ./nginx.conf:/etc/nginx/nginx.conf
  14. ports:
  15. - 8020:8020

. 使用docker-compose up启动项目

docker-compose up

验证启动结果

访问{虚拟机IP}:8020

(1)注册

 (2)登录

(3)领养 

 

 (4)查看

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/674705
推荐阅读
相关标签
  

闽ICP备14008679号