Ubuntu 20.04 搭建 Fisco-BCOS 2.8.0 区块链系统

2023-10-30

0. 摘要

本文根据 Fisco-BCOS 及 Webase 官方文档,就安装过程做了详细描述。针对官方文档中一些不清楚的地方,做了补充,方便新手搭建。

1. 准备工作

1.1 系统:

Ubuntu 20.04.3 Desktop / Server
Fisco-BCOS 2.8.0

1.2 虚拟机配置:

硬件推荐配置 实际配置
CPU 2.4GHz * 8核 8核
内存 8GB 12GB
存储 4TB 128GB
网络带宽 10Mbps 1000Mbps

2. 搭建单群组FISCO BCOS联盟链

2.1 配置系统

2.1.1 更新系统

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 -y
sudo 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/

# 解压jdk
sudo 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:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

# 生效profile
# 注意,下面这条命令前,不用加 sudo
source /etc/profile

# 查询Java版本,出现的版本是自己下载的版本,则安装成功。
java -version
javac -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 -y
sudo apt install -y mariadb-server mariadb-client
sudo systemctl enable mariadb.service

如果出现 mariadb_release_signing_key.asc 无法下载的情况,可先用 wget 下载 mariadb_release_signing_key.asc,再导入 repo 中。具体命令如下:

wget https://mariadb.org/mariadb_release_signing_key.asc
sudo 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 -y
sudo apt install -y mariadb-server mariadb-client
sudo 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.toml
cp -r ~/fisco/nodes/127.0.0.1/sdk/* ~/fisco/console/conf/、

注意:此处必须启动区块链后,才能启动控制台,否则会报错

bash ~/fisco/console/start.sh

4. 配置 WeBase

cd ~/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.3
webase.mgr.version=v1.5.3
webase.sign.version=v1.5.3
webase.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-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

部署并启动所有服务

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu 20.04 搭建 Fisco-BCOS 2.8.0 区块链系统 的相关文章

随机推荐

  • AttributeError: module ‘networkx‘ has no attribute ‘from_numpy_matrix‘解决方法

    在我学习louvain算法时 运行了这样一段代码 from communities algorithms import louvain method from communities visualization import draw co
  • 初次使用QT5串口类QSerialPort

    因为工作需要 现在正在学习Qt的串口通信 Qt4的话需要使用第三方类 使用起来也非常简单 只需要把对应的文件添加到自己的项目中就可以了 我参考的是Qt论坛上的demo 刘大师和yafei的demo都非常详细 网上都可以下载到 不过 Qt5添
  • Elementui设置样式不起效

    在使用ElementUI时 其渲染的dom元素有时是在模板外的 虽然代码写在了vue文件对用的模板内 但elementui在渲染的时候可能会渲染到和body一级 如这种弹窗 有时候想给这种el dialog加个样式 发现是不起效的 原因是
  • VCS命令行CTRL+C后dump完整的fsdb波形

    UCLI命令行CTRL C后dump完整的fsdb波形 1 ucli fsdbDumpFinish 2 ucli fsdbDumpvars 0 harness mda struct 如果仿真过程中直接CTRL C会调到UCLI接口 此时如果
  • 工作不好找,普通打工人如何破局

    大家好 我是苍何 我的一位阿里朋友被裁后 找工作找了一个月都没结果 很多到最后一面被pass了 不由得做一下感慨 即使是大厂背景又如何 面对经济环境和大环境市场 每个人都不容易 我身边很多都是程序员群体 最近也在在编程导航 收到了很多小伙伴
  • 13.linux进程基础

    一 进程基础 基础概念 关于进程和线程的基本概念在操作系统中早已学过 可以概括为一下几点 根本区别 进程是操作系统资源分配的基本单位 而线程是处理器任务调度和执行的基本单位 资源开销 每个进程都有独立的代码和数据空间 程序上下文 程序之间的
  • Unable to negotiate with 172.16.28.137 port 22: no matching host key type found. Their offer: ssh-rs

    Unable to negotiate with 172 16 28 137 port 22 no matching host key type found Their offer ssh rsa ssh dss ssh连接服务器报错 Un
  • 数字化转型升级是企业的一项重要决策

    无独有偶 世界经济数字化转型是一个大命题 也是一个大趋势 未来一段时期 数字经济将成为拉动经济增长的一个重要引擎 各行业各领域数字化转型步伐将大大加快 不论是行业老大 还是国家政策 数字化转型都纷纷提上了日程 看来 在2020年 进行数字化
  • 贪吃蛇的小程序

    1 创建项目 1 打开微信开发者工具如图所示的界面 点击 2 填写项目以后 点击确定即可 如图所示 2 编程 1 编写index wxml的代码如下
  • ITIL是什么意思?ITIL是什么?

    ITIL是什么 ITIL是Information Technology Infrastructure Library的缩写 即 信息技术基础架构库 ITIL是由英国政府部门CCTA Central Computing and Telecom
  • 解决 hsdb jinfo jmap sa-jdi等mac不可用问题

    mac 使用 hsdb 调试的时候报错 hsdb gt attach 3196 Attaching to process 3196 please wait ERROR attach task for pid 3196 failed os k
  • linux查看文件行数

    这本阿里P8撰写的算法笔记 再次推荐给大家 身边不少朋友学完这本书最后加入大厂 Github 疯传 史上最强悍 阿里大佬 LeetCode刷题手册 开放下载了 使用wc命令 具体通过wc help 可以查看 如 wc l filename
  • 论文笔记:nnU-Net: a self-configuring method for deep learning-based biomedical image segmentation

    nature 2019 配套论文笔记 nnU Net Self adapting Frameworkfor U Net Based Medical Image Segmentation UQI LIUWJ的博客 CSDN博客 1 abstr
  • flutter windows 配置

    按照官网的教程安装好Android Studio flutter3 3 7 添加flutter目录的bin到环境变量Path 特别要注意的是 要添加以下两个环境变量 否则在运行flutter run 编译android程序时 会非常慢 Ru
  • 【python基础知识】19.产品思维以及流程图的使用 - 思维篇

    文章目录 前言 产品思维 流程图 顺序结构 条件结构 循环结构 产品设计 如何提需求 如何设计解决方案 前言 这是一节思维课程 我会向大家讲述如何利用编程知识去解决实际生活的问题 我曾反复提到 我们学习编程的目的从来不是为了考试 而是要学会
  • ESP32+TFTLCD实现WiFi天气语音播报(六)

    ESP32 MY1680U实现语音播报 文章目录 ESP32 MY1680U实现语音播报 前言 一 MY1680U 12P 语音模块 1 概述 2 参数说明 二 代码实现 1 MY1690 c 2 MY1690 h 3 main c 总结
  • 鸿蒙系统开发工具DevEco Studio 2.2下载/安装教程

    鸿蒙开发包括鸿蒙应用开发 手机app 和鸿蒙设备开发 硬件开发 两大部分 其中设备开发又包括TV 音响 眼镜 手表 PC 平板 汽车 耳机以及未来的各种智能家居 手机作为一个超级终端 与各种设备实现互联 未来无论是在工作 学习 运动还是做家
  • Ubuntu卸载Anaconda步骤

    1 进行相关文件的删除 删除12个文件夹 删除anaconda3文件夹 rm rf anaconda3 删除 anaconda文件夹 rm rf anaconda 删除 condarc文件夹 rm rf condarc 删除 conda文件
  • QT项目移植Ubuntu碰到的问题及解决

    项目可以直接移植 移植过程中需要删除两个文件 意思就是除了项目相关的文件 其他的编译文件不要移植过去 我的项目似乎是这几个文件的问题 要是不删除上面多余文件的话 我的项目是直接从windows复制到装载ubuntu的虚拟机上 不删的话 在w
  • Ubuntu 20.04 搭建 Fisco-BCOS 2.8.0 区块链系统

    0 摘要 本文根据 Fisco BCOS 及 Webase 官方文档 就安装过程做了详细描述 针对官方文档中一些不清楚的地方 做了补充 方便新手搭建 1 准备工作 1 1 系统 Ubuntu 20 04 3 Desktop Server F