一.账户权限控制
参考:
账户权限控制 — FISCO BCOS 2.0 v2.9.0 文档
1.生成账户
在生成账户之前可能会出现下面的错误,
解决方法如下:
cd ..
cd webase-deploy
python3 deploy.py stopAll
cd ..
bash nodes/127.0.0.1/start_all.sh
cd console
cp ../nodes/127.0.0.1/sdk/* conf/
生成账户:a1,a2,a3
bash get_account.sh
#连续三次生成新的账户
验证:
2.新增委员
新增委员a1:
./start.sh 1 -pem 第一个账户的私钥
grantCommitteeMember 第一个账户的地址
新增委员a2:
grantCommitteeMember 第二个账户的地址
新增委员a3:
a1操作:
grantCommitteeMember 第三个账户的地址
a2操作:
./start.sh 1 -pem 第二个账户的私钥
grantCommitteeMember 第三个账户的地址
验证:
listCommitteeMembers
3.修改委员权重
updateCommitteeMemberWeight 第一个账户的地址 2
#2表示修改的比例
a1操作:
a2操作:
a2需要在a2里面进行下面的代码:
updateCommitteeMemberWeight 第一个账户的地址 2
验证:
queryCommitteeMemberWeight 第一个账户的地址
4.阈值修改
a1操作:
updateThreshold 49
#在a1中进行
a2操作:
updateThreshold 49
#在a2中进行
验证:
queryThreshold
5.撤销委员
注意出现两个委员时,需要执行两次投票,在账户一中执行一次,账户二中执行一次。增加委员和修改阈值同样如此。
a1操作:
在a1中进行
revokeOperator 需要撤销委员的地址
验证:
listCommitteeMembers
6.在控制台.切换到群组1
switch 1
7. 将账户4设置为运维角色
用账户1添加账户4为运维
grantOperator 账户四地址
#查看
listOperators
二.实训
实训一
1.链搭建(FISCO-BCOS,WEBASE-FRONT)
先恢复快照
配置:
cd fisco-bcos
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
cd WeBASE-Front
cd dist
#拷贝证书
cp ../../nodes/127.0.0.1/sdk/* conf/
#启动服务
bash start.sh
页面呈现:
2.节点扩容(在fisco-bcos中扩容一个节点)
下载gen_node_cert.sh
cd ../..
cd nodes/127.0.0.1
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的节点连接情况
tail -f node2/log/log* | grep "connected count"
获取node4的节点id
cat nodes/127.0.0.1/node4/conf/node.nodeid
cd console
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合约为例)
cd config/abi
rm -rf HelloWorld.abi
rm -rf HelloWorld.bin
vim Adoption.abi
vim Adoption.bin
启动data-export
cd ../..
bash build_export.sh -m
监控dataexport容器日志,以下为正确输出
注意:出现错误你可能需要重启虚拟机,重启后你需要再次查看webase-front是否打开
docker logs -f dataexport
监控mysql容器
docker exec -it mysql bash
mysql -uroot -p
#密码:123456
show databases;
use data_export;
show tables;
两次
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”关键词的进程存在
出现下面的情况表示已经启动了
cd fisco-bcos
ps -ef | grep fisco
若没有,则需要启动,步骤如下:
首先启动FISCO BCOS
cd fisco-bcos
bash nodes/127.0.0.1/start_all.sh
启动WeBASE-Front
cd WeBASE-Front/dist
bash start.sh
监控WeBASE-Front启动情况
通过网页验证
2.配置与启动软件应用
打开虚拟机,用mobaxterm等软件连接虚拟机,并创建AdoptionProject
mkdir AdoptionProject
将软件应用的前后端代码拷贝至虚拟环境的AdoptionProject目录
解压前后端代码
cd AdoptionProject
unzip pet-store-front-master.zip
unzip pet-store-flask-master.zip
部署Adoption智能合约
打开WeBASE-Front网页,找到Adoption智能合约,分别“保存”->“编译”->“部署”,使用“admin”进行部署
现在开始首先部署软件应用后端(pet-store-flask),进入~/AdoptionProject/pet-store-flask-master,使用virtualenv创建虚拟环境
cd pet-store-front-master
python -m virtualenv venv
安装后端所有依赖
pip install -r requirements.txt
修改后端项目中对应的config.py
文件,其中包括admin_address,contract_address
vim config.py
vim app.py
找到app.py将端口改成8081
通过nohup启动后端 ,. 使用tail监控
nohup python app.py &
tail -f nohup.out
注意:启动后端可以使用
python app.py
查看端口是否占用及占用方法:
netstat -nlp | grep 8081
注意:76775与实际相关
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
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
重启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
cd ~/AdoptionProject
vim BackDockerfile
FROM python:3.8
ADD ./pet-store-flask-master /root/pet-store
ADD ./.pip /root/.pip
WORKDIR /root/pet-store
RUN pip install -r requirements.txt
EXPOSE 8081
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
一般使用这两个命令可能会出现下面的错误:
解决方法:
先停止,后删除
docker stop pet-store-back
docker rm pet-store-back
运行后端时,就是python app.py出现这个错误,端口占用
解决方法:
ps aux | grep python
#arthur 12345 0.0 0.0 11111 22222 pts/0 S+ 12:34 0:00 python app.py
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,具体内容如下:
(注意: 这里文件路由要用绝对路径)
version: '3.3'
services:
back:
image: back:v1
container_name: petstore_back
ports:
- 8081:8081
front:
image: nginx
container_name: petstore_front
volumes:
- /home/arthur/AdoptionProject/pet-store-front-master/dist:/root/dist
- ./nginx.conf:/etc/nginx/nginx.conf
ports:
- 8020:8020
. 使用docker-compose up启动项目
docker-compose up
验证启动结果
访问{虚拟机IP}:8020
(1)注册
(2)登录
(3)领养
(4)查看文章来源:https://www.toymoban.com/news/detail-752701.html
文章来源地址https://www.toymoban.com/news/detail-752701.html
到了这里,关于区块链部署与运维2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!