本文根据 Fisco-BCOS 及 Webase 官方文档,就安装过程做了详细描述。针对官方文档中一些不清楚的地方,做了补充,方便新手搭建。
1、准备工作 1.1 系统: Ubuntu 20.04.3 Desktop / Server
Fisco-BCOS 2.8.0
sudo apt update -y && sudo apt upgrade -y
2.1.2 配置 SSH注意:对于 Ubuntu Server 20.04,由于系统默认已经安装并配置了 openSSH,故无需此步骤。
而 Ubuntu Desktop 20.04 则未配置 SSH,需手动配置。配置命令如下:
sudo apt install openssh-server -ysudo ufw allow ssh
2.2 安装依赖 2.2.1 安装依赖包此处将所有需要用到的依赖包,一并安装。
sudo apt install -y openssl curl wget git nginx dos2unix vim python3-pip unzip software-properties-common dirmngr apt-transport-https
2.2.2 Python 及相关库的安装由于 Ubuntu 20.04 自带 Python 3.8 版,符合 Fisco-BCOS 安装要求,因此不必再重复安装。
安装 PyMySQL 库
sudo pip3 install PyMySQL
2.2.3 安装 Java创建新的文件夹,安装 Java 8 或以上的版本,推荐 JDK 8 - JDK 13 版本,将下载的 jdk 放在 /usr/local 目录
从Oracle官网( https://www.oracle.com/java/technologies/downloads/#java8 )选择Java 8或以上的版本下载,例如下载 jdk-8u311-linux-x64.tar.gz
# 移动 JDK 包到 /usr/local 目录cp ./jdk-8u311-linux-x64.tar.gz /usr/local/# 解压jdksudo tar -zxvf jdk-8u311-linux-x64.tar.gz#修改解压后文件的文件名mv jdk1.8.0_311 jdk-8u311# 配置Java环境,编辑/etc/profile文件sudo vim /etc/profile# 打开以后将下面三句输入到文件里面并保存退出export JAVA_HOME=/usr/local/jdk-8u311 #这是一个文件目录,非文件export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar# 生效profile# 注意,下面这条命令前,不用加 sudosource /etc/profile# 查询Java版本,出现的版本是自己下载的版本,则安装成功。java -versionjavac -version
2.2.4 安装 MariaDB 10.3 (等效 MySQL 5.7)配置安装源并安装 MariaDB 10.3
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'sudo add-apt-repository 'deb [arch=amd64] https://mirrors.aliyun.com/mariadb/repo/10.3/ubuntu focal main'sudo apt update -ysudo apt install -y mariadb-server mariadb-clientsudo systemctl enable mariadb.service
如果出现 mariadb_release_signing_key.asc 无法下载的情况,可先用 wget 下载 mariadb_release_signing_key.asc,再导入 repo 中。具体命令如下:
wget https://mariadb.org/mariadb_release_signing_key.ascsudo apt-key add mariadb_release_signing_key.asc sudo add-apt-repository 'deb [arch=amd64] https://mirrors.aliyun.com/mariadb/repo/10.3/ubuntu focal main'sudo apt update -ysudo apt install -y mariadb-server mariadb-clientsudo systemctl enable mariadb.service
安装过程中,会配置 root 账户密码
用 root 账户 登录 MySQL
mysql -u root -p -h localhost -P 3306
授权root用户远程访问 与 创建test用户并授权本地访问
mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;mysql > GRANT ALL PRIVILEGES ON *.* TO 'test'@localhost IDENTIFIED BY '123456' WITH GRANT OPTION;mysql > flush PRIVILEGES;mysql > create database webasenodemanager;mysql > exit
2.3 搭建单群组4节点联盟链 2.3.1 创建操作目录cd ~ && mkdir -p fisco && cd fisco
2.3.2 下载脚本curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.8.0/build_chain.sh && chmod u+x build_chain.sh
如果因为网络问题导致长时间无法下载 build_chain.sh 脚本,请尝试
curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/releases/v2.8.0/build_chain.sh && chmod u+x build_chain.sh
2.3.3 搭建单群组4节点联盟链bash ~/fisco/build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545## 启动所有节点bash ~/fisco/nodes/127.0.0.1/start_all.sh## *关闭所有节点bash ~/fisco/nodes/127.0.0.1/stop_all.sh
2.3.4 检查进程检查进程是否启动
ps -ef | grep -v grep | grep fisco-bcos
检查日志输出
tail -f ~/fisco/nodes/127.0.0.1/node0/log/log* | grep connected
检查是否在共识
tail -f ~/fisco/nodes/127.0.0.1/node0/log/log* | grep +++
3、配置控制台获取控制台并回到fisco目录
cd ~/fisco && curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master-2.0/tools/download_console.sh && bash download_console.sh && bash download_console.sh
拷贝配置文件与证书
cp -n ~/fisco/console/conf/config-example.toml ~/fisco/console/conf/config.tomlcp -r ~/fisco/nodes/127.0.0.1/sdk/* ~/fisco/console/conf/、
注意:此处必须启动区块链后,才能启动控制台,否则会报错
bash ~/fisco/console/start.sh
4、配置 Webasecd ~/fisco/ && wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/Webase/releases/download/v1.5.3/webase-deploy.zip
这里注意,解压等操作,应使用普通账户,不能 sudo
unzip webase-deploy.zip
修改 common.properties
vi ~/webase-deploy/common.properties# ----------common.properties内容如下:# Webase子系统的最新版本(v1.1.0或以上版本)webase.web.version=v1.5.3webase.mgr.version=v1.5.3webase.sign.version=v1.5.3webase.front.version=v1.5.3####################################################################### 使用Docker启用Mysql服务,则需要配置以下值# 1: enable mysql in docker# 0: mysql run in host, required fill in the configuration of webase-node-mgr and webase-signdocker.mysql=1# if [docker.mysql=1], mysql run in host (only works in [installDockerAll])# run mysql 5.6 by dockerdocker.mysql.port=23306# default user [root]docker.mysql.password=123456####################################################################### 不使用Docker启动Mysql,则需要配置以下值# 节点管理子系统mysql数据库配置mysql.ip=127.0.0.1mysql.port=3306mysql.user=dbUsername <-------这里要改mysql.password=dbPassword <-------这里要改mysql.database=webasenodemanager# 签名服务子系统mysql数据库配置sign.mysql.ip=localhostsign.mysql.port=3306sign.mysql.user=dbUsername <-------这里要改sign.mysql.password=dbPassword <-------这里要改sign.mysql.database=webasesign# 节点前置子系统h2数据库名和所属机构front.h2.name=webasefrontfront.org=fisco# Webase管理平台服务端口web.port=5000# 启用移动端管理平台 (0: disable, 1: enable)web.h5.enable=1# 节点管理子系统服务端口mgr.port=5001# 节点前置子系统端口front.port=5002# 签名服务子系统端口sign.port=5004# 节点监听Ipnode.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)# 只有国密链才能使用国密SSLencrypt.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
部署并启动所有服务
cd ~/webase-deploy/ && python3 deploy.py installAll
服务部署后,需要对各服务进行启停操作,可以使用以下命令:
# 一键部署部署并启动所有服务 python3 deploy.py installAll停止一键部署的所有服务 python3 deploy.py stopAll启动一键部署的所有服务 python3 deploy.py startAll# 各子服务启停启动FISCO-BCOS节点: python3 deploy.py startNode停止FISCO-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
Webase管理平台的访问:
http://{deployIP}:{webPort}示例:http://localhost:5000
参考文献: https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/installation.html#fisco-bcos
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/webase/webase.html