一,WeBASE简介
1.1什么是WeBASE
WeBASE(WeBank Blockchain Application Software Extension)是在区块链应用和FISCO-BCOS节点之间搭建的一套通用组件。围绕交易、合约、密钥管理,数据可视化管理来设计各个模块,开发者可以根据业务所需,选择子系统进行部署。
WeBASE屏蔽了区块链底层的复杂度,降低开发者的门槛,大幅提高区块链应用的开发效率,包含节点前置、节点管理、交易链路,数据导出,Web管理平台等子系统。
1.2WeBASE整体架构
WeBASE完整的部署架构如下,WeBASE管理平台基于区块链网络集成交易上链代理、私钥托管和签名、节点管理与数据导出等功能形成一套完整的应用开发环境。其中WeBASE-Front需要和区块链节点同机部署。
如图所示,WeBASE-Front需要跟节点同机部署,一个节点对应一个WeBASE-Front服务。
WeBASE-Front是和FISCO-BCOS节点配合使用的一个子系统,它作为WeBASE管理平台的前置节点服务,具备可视化控制台、在控制台上开发智能合约、部署合约、发送交易以及查看交易和区块详情的作用。它还可以管理私钥,对节点健康度进行监控和统计。
1.3WeBASE设计原则
WeBASE的设计原则包括按需部署、微服务、零耦合以及可定制四个部分
1.4WeBASE功能一览
从可视化,智能合约,交易,数据四个维度设计各个中间件,各块主要功能如下
二,WeBASE搭建流程
2.1WeBASE部署架构
WeBASE支持一套快速部署的方法(简称“一键部署”),,可以快速搭建WeBASE管理台环境,方便用户快速体验WeBASE管理平台。
一键部署会搭建:节点(FISCO-BCOS2.0+),管理平台(WeBASE-Web),节点管理子系(WeBASE-Node-Manager),节点前置子系统(WeBASE-Front),签名服务(WeBASE-Sign),其中节点的搭建是可选的,可以通过配置来选择使用已有链或者搭建新链。一键部署架构如图所示。
2.2部署前提
硬件要求
软件要求:
注意:系统推荐使用CentOS 7.2+或Ubuntu 16.04及以上版本, 一键部署脚本将自 动安装openssl, curl, wget, git, nginx, dos2unix相关依赖项。
2.3拉取部署脚本
2.3.1获取部署安装包:
wget https://osp-1257653870.cos.ap-
guangzhou.mygcloud.com/WeBASE/releases/download/v1.5.2/webase-deploy.zip
2.3.2解压安装包
unzip webase-deploy.zip
2.3.3进入目录
cd webase-deploy
2.4修改配置
注意 :
- 提前安装mysql数据库。
- 在webase-deploy目录下使用 vi common.properties 命令进入配置文件的编辑界面。
- 把配置文件的内容改为如下代码:
# WeBASE子系统的最新版本(v1.1.0或以上版本)
webase.web.version=v1.5.2
webase.mgr.version=v1.5.2
webase.sign.version=v1.5.0
webase.front.version=v1.5.2
# 节点管理子系统mysql数据库配置
mysql.ip=127.0.0.1
mysql.port=3306
mysql.user=dbUserame
mysql.password=dbPassword
mysql.database=webasenodemanager
# 签名服务子系统mysql数据库配置
sign.mysql.ip=localhost
sign.mysq!.port=3306
sign.mysq!.user=dbUsername
sign.mysgl.password=dbPassword
sign.mysql.database=webasesian
#节点前置子系统h2数据库名和所属机构
front.h2.name=webasefront
front.org=fisco
# WeBASE管理平台服务端口
web.port=5000
#启用移动端管理平台(0: disable,1: enable)
web.h5.enable=1
# 节点管理子系统服务端口
mgr:port=5001
#节点前置子系统端口
front.port=5002
#签名服务子系统端口
sign.port=5004
# 节点监听lp
node.listenlp=127.0.0.1
# 节点p2p端口
node.p2pPort=30300
#节点链上链下端口
node.channelPort=20200
# 节点rpc端口
node.rpcPort=8545
# 加密类型(0: ECDSA算法,1: 国密算法)
encrypt.type=0
# SSL连接加密类型(0: ECDSA SSL, 1:国密SSL)
# 只有国密链才能使用国密
SSLencrypt.ssl7ype=0
# 是否使用已有的链(yes/no)
if exist.fisco=no
# 使用己有链时需配置
# 已有链的路径,start al.sh脚本所在路径
#路径下要存在sdk目录(sdk目录中包含了SSL所需的证书,即ca.crt、sdk.crt、sdk.key和gm目录(包含国密SSL证书gmca.crt、gmsdk.crt、gmsdk.key、gmensdk.crt和gmensdk.key)
fisco.dir=/datalapp/nodes/127.0.0.1
# 前置所连接节点的绝对路径#节点路径下要存在conf文件来,conf里存放节点证书(ca.crt、node.crt和node.key)
node.dir=/datalapp/nodes/127.0.0.1/node0
# 搭建新链时需配置
# FISCO-BCOS版本fisco.version=2.7.2
# 搭建节点个数(默认两个)
node.counts=nodeCounts
2.5命令
#部署并启动所有服务:
python3 deploy.py installAll
#执行命令部署服务将自动部署FISCO BCOS节点,并部署 WeBASE 中间件服务,包括签名服务(sign)、节点前置(front)、节点管理服务(node-mgr)、节点管理前端(web)
2.5.1启停操作
# 一键部署
部署并启动所有服务 python3 deploy. py installAll
停止一键部署的所有服务 python3 deploy.py stopAll
启动一键部署的所有服务 python3 deploy.py startAll
#各子服务启停
启动FISCO-BCOS节点 python3 deploy.py startNode
停止HSCO-BCOS节点 python3 deploy.py stopNode
启动WeBASE-Web: python3 deploy.py startWeb
停止WeBASE-Web: python3 deploy.py stopWeb
启动WeBASE-Node-Manager: python3 deploy.py startManager
停止WeBASE-Node-Manager: python3 deploy.py stopManager
启动WeBASE-Sign: python3 deploy.py startSign
停止WeBASE-Sign: python3 deploy.py stopSign
启动WeBASE-Front: python3 deploy.py startFront
停止WeBASE-Front: python3 deploy.py stopFront
# 可视化部署
部署并启动可视化部署的所有服务 python3 deploy.py installWeBASE
停止可视化部署的所有服务 python3 deploy.py stopWeBASE
启动可视化部署的所有服务 python3 deploy.py startWeBASE
2.5.2检查操作
#节点进程
ps -ef | grep node
#检查webase-front
ps -ef | grep webase.front
#检查webase-node-mannager
ps -ef | grep webase.node.mgr
#检查nignx
ps -ef | grep nginx
#检查webase-sign
ps -ef | grep webase.sign
#检查端口
netstat -anlp | grep 20200
netstat -anlp | grep 5002
netstat -anlp | grep 5001
netstat -anlp | grep 5000
netstat -anlp | grep 5004
localhost:5002/WeBASE-Front 为节点控制台
http://localhost:5000 webase管理平台
第三章 WeBASE管理平台上的智能合约开发
3.1 管理平台各模块详细介
主要提供的管理功能有如下七个部分
3.1.1、区块链数据概览
数据概览页面,展示了区块链的核心数据指标:节点个数,区块数量,交易数量,通 过管理台部署的合约数量。关键监控指标:最近有交易的7天交易量。
节点信息列表:展示了节点的ID,节点块高,节点view和运行状态。区块信息展示 了最近5个块的概览信息,点击更多可以查看更多历史区块。交易信息展示了最近5 个交易的概览信息,点击更多可以查看更多历史交易
3.1.2节点管理
节点管理主要提供了前置列表和节点列表的功能。用户可以通过新增节点前置,把新 的节点前置添加到前置列表。系统会默认拉取这些前置所在的群组和各个群组的节点 信息。
3.1.3合约管理
合约管理提供了一个图形化的合约IDE环境。这个IDE提供了一整套的合约管理工具: 新建合约,保存合约,编译合约,部署合约,调用合约接口。
3.1.4私钥管理
在私钥管理界面,可以看到合约部署和交易调用功能。这里的私钥管理可以新建私钥 用户,然后拿新建用户的私钥来做合约部署和合约交易的签名
3.1.5系统监控
系统监控主要包括节点监控和主机监控。节点监控主要有区块高度,pbftview,待 打包交易。主机监控主要有主机的CPU,内存,网络和硬盘IO。
3.1.6交易审计
联盟链中各个机构按照联盟链委员会制定的规章在链上共享和流转数据。这些规章往 往是字面的,大家是否遵守缺乏监管和审计。因此为了规范大家的使用方式,避免链 的计算资源和存储资源被某些机构滥用,急需一套服务来辅助监管和审计链上的行为。
交易审计就是结合上面的区块链数据,私钥管理和合约管理三者的数据,以区块链数 据为原材料,以私钥管理和合约管理为依据做的一个综合性的数据分析功能。交易审 计提供可视化的去中心化合约部署和交易监控、审计功能,方便识别链资源被滥用的 情况,为联盟链治理提供依据。
3.1.7登录账号管理
提供管理台登陆账号的管理功能。管理台用户分为两种角色:普通用户和管理员用户。 这两者的区别是,管理员拥有管理平台的读写权限,而普通用户只有查看权限
3.2 WeBASE管理平台上的智能合约开发流程
3.2.1新建账户
在WeBASE上开发智能合约需要创建私钥账户,创建私钥账户需要使用私钥管理功能, 私钥管理提供了新建私钥用户和导入公钥用户两种用户导入方式。第一种方式主要用 于新建用户在管理平台的合约管理中部署和调用合约。第二种方式主要用于把交易和 用户关联起来
3.2.2、添加合约
对智能合约进行开发首先需要有合约文件,管理平台提供两种添加合约的方式,一种 是新建一个合约(按钮在图中左侧红色圆圈内),一种是导入已有合约(按钮在图中 右侧红色圆圈内)。添加合约需要用到合约管理中的合约IDE功能。合约添加完成后, 需要对其进行保存与编译
3.2.3部署合约
编译后的合约需要进行部署
3.2.4调用合约
完成部署后表明该合约已经在区块链上了,此时可以对其功能进行调用
*WeBASE-Front上也可以进行以上智能合约开发流程的相关操作。
版权归原作者 Allover#56699 所有, 如有侵权,请联系我们删除。