区块链部署与运维2

这篇具有很好参考价值的文章主要介绍了区块链部署与运维2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.账户权限控制

参考:

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

1.生成账户

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

区块链部署与运维2,运维

解决方法如下:

cd ..
cd webase-deploy
python3 deploy.py stopAll

区块链部署与运维2,运维

cd ..
bash nodes/127.0.0.1/start_all.sh
cd console
cp ../nodes/127.0.0.1/sdk/* conf/

区块链部署与运维2,运维

生成账户:a1,a2,a3

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

 区块链部署与运维2,运维

验证:

 区块链部署与运维2,运维

2.新增委员 

新增委员a1:

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

区块链部署与运维2,运维

新增委员a2:


grantCommitteeMember 第二个账户的地址

区块链部署与运维2,运维

新增委员a3:

a1操作:

grantCommitteeMember 第三个账户的地址

区块链部署与运维2,运维

 a2操作:

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

区块链部署与运维2,运维

验证:

listCommitteeMembers

 区块链部署与运维2,运维

3.修改委员权重

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

 a1操作:区块链部署与运维2,运维

a2操作:

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

updateCommitteeMemberWeight 第一个账户的地址 2

 区块链部署与运维2,运维

验证:

queryCommitteeMemberWeight 第一个账户的地址

 区块链部署与运维2,运维

 4.阈值修改

a1操作:

updateThreshold 49
#在a1中进行

区块链部署与运维2,运维

a2操作:

updateThreshold 49
#在a2中进行

区块链部署与运维2,运维

验证:

queryThreshold

 区块链部署与运维2,运维

5.撤销委员

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

a1操作:

在a1中进行

revokeOperator 需要撤销委员的地址

区块链部署与运维2,运维

验证:

listCommitteeMembers

 区块链部署与运维2,运维

 

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

switch 1

 区块链部署与运维2,运维

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

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

grantOperator 账户四地址
#查看
listOperators

区块链部署与运维2,运维

 

二.实训

实训一

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,运维

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

区块链部署与运维2,运维

 运行生成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

区块链部署与运维2,运维

拷贝群组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

区块链部署与运维2,运维

cd console

cp ../nodes/127.0.0.1/sdk/* conf/

启动控制台

bash start.sh

添加node4为共识节点:

区块链部署与运维2,运维

console验证

getSealerList

区块链部署与运维2,运维

3.WeBASE-Front部署智能合约

HelloWorld智能合约的部署与调用

区块链部署与运维2,运维

 get方法

区块链部署与运维2,运维

 区块链部署与运维2,运维

Set方法

 区块链部署与运维2,运维

Adoption智能合约的部署与调用

 区块链部署与运维2,运维

调用合约中register功能

 首先指定注册用户(test1)

区块链部署与运维2,运维

调用register功能结果返回:

 区块链部署与运维2,运维

调用登录功能:

 区块链部署与运维2,运维

FoodTraceNew智能合约的部署与调用

区块链部署与运维2,运维

分别调用createMember以及getMember

createMember调用(producter)

区块链部署与运维2,运维

getMember

区块链部署与运维2,运维

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

删除mysql容器

docker rm mysql

区块链部署与运维2,运维

 清空volume

docker volume prune

删除data-export-docker目录

rm -rf data-export-docker 

重新解压

tar xzvf data-export-1.7.2.tar.gz

区块链部署与运维2,运维

1. 复制证书

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

 区块链部署与运维2,运维

 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

区块链部署与运维2,运维

启动data-export

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

区块链部署与运维2,运维

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

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

docker logs -f dataexport

 区块链部署与运维2,运维

监控mysql容器

docker exec -it mysql bash
mysql -uroot -p
#密码:123456
show databases;
use data_export;
show tables;
两次
exit;

 区块链部署与运维2,运维

区块链部署与运维2,运维

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

vim config/application.properties

区块链部署与运维2,运维

 区块链部署与运维2,运维

 启动grafana容器

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

admin/admin 

区块链部署与运维2,运维

进入configuration页面,新增mysql选项

区块链部署与运维2,运维

配置mysql连接

 区块链部署与运维2,运维

 区块链部署与运维2,运维

 加载default_dashboard.json

区块链部署与运维2,运维

指定的文件: 

 区块链部署与运维2,运维

 区块链部署与运维2,运维

区块链部署与运维2,运维

 5.查看监控变化

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

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

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

部署后端

1.预操作

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

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

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

cd fisco-bcos
ps -ef | grep fisco

区块链部署与运维2,运维

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

首先启动FISCO BCOS

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

区块链部署与运维2,运维

 启动WeBASE-Front

cd WeBASE-Front/dist
bash start.sh

区块链部署与运维2,运维

监控WeBASE-Front启动情况

 区块链部署与运维2,运维

通过网页验证

 区块链部署与运维2,运维

 2.配置与启动软件应用

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

mkdir AdoptionProject

区块链部署与运维2,运维

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

 区块链部署与运维2,运维

解压前后端代码

cd AdoptionProject
unzip pet-store-front-master.zip
unzip pet-store-flask-master.zip

  部署Adoption智能合约

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

区块链部署与运维2,运维

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

cd pet-store-front-master
python -m virtualenv venv

区块链部署与运维2,运维

安装后端所有依赖 

pip install -r requirements.txt

 区块链部署与运维2,运维

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

文件,其中包括admin_address,contract_address 

vim config.py
vim app.py

区块链部署与运维2,运维

 区块链部署与运维2,运维

区块链部署与运维2,运维

区块链部署与运维2,运维

找到app.py将端口改成8081

 区块链部署与运维2,运维

 区块链部署与运维2,运维

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

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

区块链部署与运维2,运维

区块链部署与运维2,运维

 区块链部署与运维2,运维

部署前端及验证

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

npm install

 区块链部署与运维2,运维

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

npm run build

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

区块链部署与运维2,运维

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

获取nginx.conf地址

sudo nginx -t

区块链部署与运维2,运维

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

sudo vim /etc/nginx/nginx.conf

区块链部署与运维2,运维

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

 区块链部署与运维2,运维

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

sudo nginx -s reload

 检查8022端口占用情况:

sudo netstat -nlp | grep 8022

检查网页使用情况

区块链部署与运维2,运维

 验证功能:

首先进入注册页面

区块链部署与运维2,运维

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

区块链部署与运维2,运维

有如下输出说明注册成功

区块链部署与运维2,运维

进入登录页

 区块链部署与运维2,运维

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

 区块链部署与运维2,运维

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

宠物商店后端容器化部署

1.预操作

修改docker源为国内

sudo vim /etc/docker/daemon.json

区块链部署与运维2,运维

{
    "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

区块链部署与运维2,运维

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

区块链部署与运维2,运维

区块链部署与运维2,运维

 区块链部署与运维2,运维

 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配置:

区块链部署与运维2,运维

 4.生成back:v1

docker build -f BackDockerfile -t back:v1 .

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

区块链部署与运维2,运维

 区块链部署与运维2,运维

 5.验证自定义镜像

docker images

区块链部署与运维2,运维

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

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

使用docker ps,验证

区块链部署与运维2,运维

验证进程是否正在运行

netstat -nlp |grep 8081

区块链部署与运维2,运维

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

解决方法:

先停止,后删除

docker stop pet-store-back
docker rm pet-store-back

区块链部署与运维2,运维

运行后端时,就是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

区块链部署与运维2,运维

 6.使用postman验证

 区块链部署与运维2,运维

验证/user/register

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

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

区块链部署与运维2,运维

 区块链部署与运维2,运维

 客户端生成静态文件

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

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

区块链部署与运维2,运维

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

npm run build

区块链部署与运维2,运维

复制配置nginx.conf

 区块链部署与运维2,运维

 修改nginx.conf

区块链部署与运维2,运维

 区块链部署与运维2,运维

 配置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

区块链部署与运维2,运维

. 使用docker-compose up启动项目

docker-compose up

验证启动结果

访问{虚拟机IP}:8020

(1)注册

区块链部署与运维2,运维

 (2)登录

区块链部署与运维2,运维

(3)领养 

 区块链部署与运维2,运维

 (4)查看

区块链部署与运维2,运维文章来源地址https://www.toymoban.com/news/detail-752701.html

到了这里,关于区块链部署与运维2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 区块链技术与应用 【全国职业院校技能大赛国赛题目解析】第五套区块链系统部署与运维

    第五套区块链系统部署与运维题目 环境 : ubuntu20 fisco : 2.8.0 此题在官网有例子如图: 每个机构拥有两个节点,机构A属于中心,属于群组1,2,3, 机构B只属于群组1, 机构C 只属于群组3,机构D只属于群组2。 然后根据此图编写ipconf文件,使用文件形式搭建节点【题目没有指定

    2024年02月04日
    浏览(36)
  • 区块链技术与应用 【全国职业院校技能大赛国赛题目解析】第二套区块链系统部署与运维

    第二套区块链系统部署与运维题目 环境 : ubuntu20 fisco : 2.8.0 docker: 20.10.21 webase-deploy : 1.5.5 mysql: 8.0.34 使用 build_chain.sh 脚本文件进行搭建区块链 ,要求: 四节点,默认配置,单机,docker

    2024年02月08日
    浏览(64)
  • 区块链技术与应用 【全国职业院校技能大赛国赛题目解析】第一套区块链系统部署与运维

    第一套区块链系统部署与运维题目 环境 : ubuntu20 fisco : 2.8.0 题意: 要求搭建一条四节点的区块链系统,我们选择使用fisco作为此次测试的链子 我们使用build_chain.sh进行构建单机四节点,并且使用官方的默认端口【正式比赛大概率不会用默认端口,会有详细的说明使用什么端

    2024年02月08日
    浏览(50)
  • JAVA开发与运维(web生产环境部署)

    web生产环境部署,往往是分布式,和开发环境或者测试环境我们一般使用单机不同。 一、部署内容 1、后端服务 2、后台管理系统vue 3、小程序 二、所需要服务器 5台前端服务器  8台后端服务 三、所需要的第三方组件 redis mysql clb OSS CDN WAF RocketMQ redis用来缓存应用的数据 mysq

    2024年02月04日
    浏览(34)
  • JAVA开发与运维(怎么通过docker部署微服务jar包)

    目标: 通过docker的方式部署微服务。 我们通过java开发的微服务可以打成jar包,我们可以直接通过裸机部署,也可以通过docker来部署,本文介绍通过docker来部署微服务。 Docker 是一个用于开发,交付和运行应用程序的开放平台。 Docker 将应用程序与基础架构分开,从而可以快速

    2024年02月09日
    浏览(35)
  • Memcache简介与运维

            开源、高性能、高并发的分布式内存缓存系统。          缓存关系型数据库的结果,减少数据库自身访问的次数。 memcache                              纯内存 redis、memcachedb               可持久化存储,同时会使用磁盘存         数据

    2024年01月21日
    浏览(27)
  • 区块链部署和运维

    区块链部署和运维 一 . 使build_chain部署一条区块链网络 使用build_chain.sh部署一条区块链网络,其中ip与端口为默认配置。完成配置并启动后,使用ps以及tall命令进行验证。 第一步:创建操作目录,下载安装脚本 第二步:搭建单群组4节点联盟链 第三步:启动FISCO BCOS链 第四步

    2024年01月19日
    浏览(25)
  • 区块链部署和运维---食品溯源

    一.应用背景:     基于FISCO BCOS部署去中心化的食品溯源系统,部署方式为基于容器技术Docker,部署内容包括系统前端、后端、数据库,并在最后进行验证。具体工作内容如下:     1. 以容器的方式部署Mysql以及Redis数据库     2. 配置Dockerfile,生成系统后端的镜像    

    2024年02月04日
    浏览(32)
  • 区块链部署和运维---实战训练

    一.宠物商店领养项目实施部署练习  1.预操作: 第一步先检查是否有包含“FISCO”的进程存在 如果没有相关进程正在启动 首先启动FISCO BCOS 启动WeBASE-Front 监控WeBASE-Front启动情况 通过网页验证: 2.配置与启动软件应用 第一步: 1. 打开虚拟机,用mobaxterm等软件连接虚拟机,

    2024年02月03日
    浏览(27)
  • DevOps理念:开发与运维的融合

    在现代软件开发领域,DevOps 不仅仅是一个流行的词汇,更是一种文化、一种哲学和一种方法论。 DevOps 的核心理念是通过开发和运维之间的紧密合作,实现快速交付、高质量和持续创新。 本文将深入探讨 DevOps 文化的重要性、原则以及如何在团队中实现开发与运维的融合。

    2024年02月10日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包