江会文 | MAC系统部署WeBASE各个子系统教程详解¶
- 作者:江会文
- github:https://github.com/Jay1213811
本文主要分为三章节来讲解:¶
- 搭建联盟链
- 搭建节点前置服务
- 搭建WeBASE管理平台
1.基于FISCO搭建联盟链¶
第一步:构建一条FISCO BCOS的链
1.创建一个文件夹 以后就是基于这个文件夹进行的操作
mkdir fisco
安装centos依赖及下载最新版脚本
# 最新homebrew默认下载的为openssl@3,需要指定版本openssl@1.1下载
brew install openssl@1.1 curl
openssl version
OpenSSL 1.1.1n 15 Mar 2022
Copy to clipboard
## 下载脚本
curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.9.1/build_chain.sh && chmod u+x build_chain.sh
Copy to clipboard
这时候运行ls查看当前目录下文件我们会发现多了一个build_chain.sh
3搭建单群组4节点联盟链
bash build_chain.sh -l "127.0.0.1:4" -p 30300,20200,8545
命令执行成功会输出All completed。如果执行出错,请检查nodes/build.log文件中的错误信息 4.启动所有节点
bash nodes/127.0.0.1/start_all.sh
在这里插入图片描述 5执行下面指令,检查是否在共识
tail -f nodes/127.0.0.1/node0/log/log* | grep +++
正常情况会不停输出++++Generating seal,表示共识正常。
第二步:安装一个交互式控制台
在fisco目录下执行1234 1.
bash <(curl -s https://raw.githubusercontent.com/FISCO-BCOS/console/master/tools/download_console.sh)
cp -n console/conf/applicationContext-sample.xml console/conf/applicationContext.xml
cp nodes/127.0.0.1/sdk/* console/conf/
4.启动控制台
cd console && ./start.sh
成功后会出现这个 在这里插入图片描述
此时,你已经进入控制台界面,可以通过help查看命令列表,通过getPeers获取节点连接列表,通过exit或quit命令退出控制台。
同时,控制台内置了一个HelloWorld合约,可以直接调用deploy HelloWorld进行部署,然后调用call HelloWorld进行访问。
首先部署合约
deploy HelloWorld
我们可以得到两个值一个交易哈希值,和合约地址 在这里插入图片描述 合约包含两个方法set和get方法。调用合约方法使用
call HelloWorld contractaddress 方法名
如我们使用get方法
call HelloWorld 0x65fba847909e119c04245fbc8feff5891cacc319 get
在这里插入图片描述 我们自己set一个方法,再调用get得到我们set的值 set方法
call HelloWorld 0x65fba847909e119c04245fbc8feff5891cacc319 set "Hello FISCO"
get方法
call HelloWorld 0x65fba847909e119c04245fbc8feff5891cacc319 get
在这里插入图片描述
至此,我们完成了基于Fisco-Bcos搭建一条单群组四节点的联盟链,并在链上完成了简单的数据操作。但是这些控制都是在控制台进行的,对于节点的管理以及出块数据的查看可视性较差。我们将通过第二节和第三节的内容讲解如何基于WeBase更好的操作我们搭建的联盟链。
2.节点前置服务(WeBASE-Front)搭建¶
第一个坑就是java版本 ,安装默认Java版本(Java 8或以上)
#centos系统安装java
sudo yum install -y java java-devel
配置Java环境,编辑/etc/profile
文件
# java environment
export JAVA_HOME=/usr/java/jdk1.8.0_262(换成你自己的地址)
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
关于如何查询JAVA_HOME
which java # 返回路径
ls -l 返回的路径 # 会再返回一个新的途径
ls -l 新的路径 # 返回最终的路径
生效
source /etc/profile
查询java_home是否修改成功,如果前面生效不成功,java_home就不会生效
echo $JAVA_HOME
3.Webase 平台的搭建¶
前提条件¶
环境 | 版本 |
---|---|
Java | Oracle JDK 8 至 14 |
MySQL | MySQL-5.6及以上 |
Python | Python3.6及以上 |
PyMySQL |
检察环境¶
java -version
mysql --version
python --version
# python3时
python3 --version
安装PyMySQL¶
sudo yum -y install python36-pip
sudo pip3 install PyMySQL
cd ~
wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.4/webase-front.zi
unzip webase-front.zip
cd webase-front
copy证书¶
将节点所在目录nodes/${ip}/sdk下的ca.crt、node.crt和node.key文件拷贝到conf下 可以直接用命令拷贝
sudo cp fisco/nodes/127.0.0.1/sdk/ca.crt webase-front/conf/
最后启动we-base
bash start.sh
打开浏览器http://127.0.0.1:5000
在这里插入图片描述
我们可以看到我们搭建的节点数量以及交易的数量,并且可以进行合约操作管理。
3.WeBASE一键部署¶
一键部署可以在 同机 快速搭建WeBASE管理台环境,方便用户快速体验WeBASE管理平台。
一键部署会搭建:节点(FISCO-BCOS 2.0+)、管理平台(WeBASE-Web)、节点管理子系统(WeBASE-Node-Manager)、节点前置子系统(WeBASE-Front)、签名服务(WeBASE-Sign)。其中,节点的搭建是可选的,可以通过配置来选择使用已有链或者搭建新链。一键部署架构如下:
一 前提条件:¶
环境 | 版本 |
---|---|
Java | JDK8或以上版本 |
MySQL | MySQL-5.6或以上版本 |
Python | Python3.4+ |
PyMySQL | 使用python3时需安装 |
1、下载安装包【v1.5.4版本】¶
wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.4/webase-deploy.zip
2、解压¶
unzip webase-deploy.zip
3、进入目录:¶
cd webase-deploy
3、服务起停¶
启动: bash start.sh
停止: bash stop.sh
检查: bash status.sh
二 修改配置¶
# WeBASE子系统的最新版本(v1.1.0或以上版本)
webase.web.version=v1.5.4
webase.mgr.version=v1.5.4
webase.sign.version=v1.5.3
webase.front.version=v1.5.4
#####################################################################
## 使用Docker启用Mysql服务,则需要配置以下值
# 1: enable mysql in docker
# 0: mysql run in host, required fill in the configuration of webase-node-mgr and webase-sign
docker.mysql=1
# if [docker.mysql=1], mysql run in host (only works in [installDockerAll])
# run mysql 5.6 by docker
docker.mysql.port=23306
# default user [root]
docker.mysql.password=123456
#####################################################################
## 不使用Docker启动Mysql,则需要配置以下值
# 节点管理子系统mysql数据库配置
mysql.ip=127.0.0.1
mysql.port=3306
mysql.user=dbUsername
mysql.password=dbPassword
mysql.database=webasenodemanager
# 签名服务子系统mysql数据库配置
sign.mysql.ip=localhost
sign.mysql.port=3306
sign.mysql.user=dbUsername
sign.mysql.password=dbPassword
sign.mysql.database=webasesign
# 节点前置子系统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
# 节点监听Ip
node.listenIp=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)
# 只有国密链才能使用国密SSL
encrypt.sslType=0
# 是否使用已有的链(yes/no)
if.exist.fisco=no
# 使用已有链时需配置
# 已有链的路径,start_all.sh脚本所在路径
# 路径下要存在sdk目录(sdk目录中包含了SSL所需的证书,即ca.crt、sdk.crt、sdk.key和gm目录(包含国密SSL证书,gmca.crt、gmsdk.crt、gmsdk.key、gmensdk.crt和gmensdk.key)
fisco.dir=/data/app/nodes/127.0.0.1
# 前置所连接节点,在127.0.0.1目录中的节点中的一个
# 节点路径下要存在conf文件夹,conf里存放节点证书(ca.crt、node.crt和node.key)
node.dir=node0
# 搭建新链时需配置
# FISCO-BCOS版本
fisco.version=2.7.2
# 搭建节点个数(默认两个)
node.counts=nodeCounts
Ps:一键部署支持使用已有链或者搭建新链。服务端口不能小于1024。
通过参数”if.exist.fisco”配置是否使用已有链,以下配置二选一即可:
当配置”yes”时,需配置已有链的路径
当配置”no”时,需配置节点fisco版本和节点安装个数,搭建的新链默认两个群组
注:使用国密版需要修改设置配置项encrypt.type=1
。前置SDK与节点默认使用非国密SSL,如果需要使用国密SSL,需要修改设置配置项encrypt.sslType=1
。
四 进入网页¶