Ubuntu环境下搭建区块链FISCO BCOS节点和WeBASE
说明:
1.搭建的是webase-deploy并不是webase-front
2.参考本文档因ubuntu版本的不同可能导致一些小问题发生建议自行排查并解决问题
如:java环境变量;数据库权限、密码等。
(一)搭链
参考文献:Web_BASE管理系统 — FISCO BCOS 2.0 v2.11.0 手册
1.安装依赖:
sudo apt install -y openssl curl
2.创建fisco目录,并进入
cd ~ && mkdir -p fisco && cd fisco
3.下载脚本,并添加权限
(1)官方的github:
Execute the curl command with the -LO flag set appropriately to download the FISCO-BCOS release from GitHub. And then, grant execute permissions to this specific build_chain.sh file.
(2)国内的镜像:
使用curl命令通过HTTP客户端下载由FISCO-BCOS/FISCO-BCOS/releases/v2.11.0提供链接的资源到build_chain.sh文件中,并以用户权限和执行权的形式赋予build_chain.sh文件相应的访问权限
4.在目录下执行
- 生成一条单群组4节点的FISCO链
- 确保机器的3030030303,2020020203,8545~8548端口没有被占用
bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545
注解:
- -l 选项 用来配置区块链节点的 IP 地址信息及节点数设置。
- -p 选项 则分别指定起始端口为 p2p 端口、通道端口以及 JSON-RPC 端口。
国密版:(如何区分用国密还是普通暂不知道)
bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545 -g -G
- 其中-g表示生成国密配置,-G表示使用国密SSL连接
5.至此搭链成功
会出现:会显示 All completed;如果未查看到 nodes/build.log 中的错误信息,则需要手动检查此处的错误信息。
6.启动节点
bash nodes/127.0.0.1/start_all.sh
出现下列现象:
The system aims to initiate the starting process for nodes 0 through 3. After initiating, nodes 1 and 2 have achieved successful starting, enabling nodes 0 and 3 to also begin their starting processes successfully.
失败:
(1)进程检查
- 通过 netstat -an | grep tcp 查看端口号 3030030303、2020020203 和 8545~8548 是否有占用情况
- 检测与 fisco-bcos 相关的相关进程
出现下列现象,不足4则进程启动没有成功(一般端口号被占用导致)
运行至状态码5453的FISCOS服务容器,在时间戳为\texttt{pts}/\texttt{O}时启动了一个新的节点,并将配置文件配置至指定位置。
启动节点状态码为\texttt{5459}的FISCOS服务容器,在时间戳为\texttt{pts}/\texttt{O}时运行至指定位置。
在时间戳为\texttt{pts}/\texttt{O}时运行至状态码\texttt{5464}的FISCOS服务容器,并启动了节点node2。
启动节点状态码为\texttt{5476}的FISCOS服务容器,在时间戳为相同时间点运行至指定位置。
(2)日志检查
- 查看节点数 tail -f nodes/127.0.0.1/node0/log/log* | grep connected
正常情况下会有其他3个不断连接
info|2019-01-21 17:30:58.316769| [P2P][Service] heartbeat, connected number=3 info|2019-01-21 17:31:08.316922| [P2P][Service] heartbeat, connected number=3 info|2019-01-21 17:31:18.317105| [P2P][Service] heartbeat, connected number=3
- 执行下面指令,检查是否在共识
tail -f nodes/127.0.0.1/node0/log/log* | grep +++
正常情况会不停输出带有++++Generating seal的日志,即表示共识正常。
info|2020-12-22 17:24:43.729402|[g:1][CONSENSUS][SEALER]++++++++++++++++ Creating seal for,blkNum=1,tx=0,nodeIdx=1,hash=2e133146...
info|2020-12-22 17:24:47.740603|[g:1][CONSENSUS][SEALER]++++++++++++++++ Creating seal for,blkNum=1,tx=0,nodeIdx=1,hash=eb199760...
(二)WeBASE的搭建
快速入门指南 — WeBASE v1.5.5 官方开发文档
- 建议采用CentOs 7.2及以上版本及Ubuntu 16.04以上系统版本进行部署操作
- 通过自动化部署工具一键生成所需的软件组件列表,并完成预装过程
- 配置当前用户的JDK环境变量JAVA HOME
- 用户自行下载并配置网络接口参数设置(可参考此处链接)
java -version
mysql --version
python3 --version
pip3 list | grep PyMySQL
下面这些安装到哪儿比较合适呢?目前放到了根目录下面

①PyMySQL部署(Python3.6+)
sudo apt-get install -y python3-pip
sudo pip3 install PyMySQL
②Ubuntu环境安装Java
安装预装Java,默认从Java 8开始
sudo apt install -y default-jdk
检查当前运行的Java版本
java -version
Java环境变量
apt-get安装通常会预先设置好必要的环境变量
使用sudo update-alternatives --config java查看
通常会显示相应的路径位置
配置Java环境时,请编辑~/.bashrc文件并打开以下命令:
vim /etc/profile #打开后输入以下内容并保存退出: export JAVA_HOME=/software/jdk-8u301 export PATH=JAVA_HOME/bin:$PATH
#修改后重新启动系统以生效
③Ubuntu安装mysql数据库
来源于官方文档的一份指南中指出,默认情况下不会对软件包进行自动更新。不过由于不再进行软件包更新"因此无法继续使用"我们可以直接选择安装MySQL服务器组件以及客户端工具软件包:包括mysql-server-5.6版本以及mysql-client-5.6版本等选项即可完成安装过程
用下面这个:
sudo apt-get install mysql-server
(1)初始化:
sudo mysql_secure_installation
执行mysql_secure_installation命令的结果如下:
- 增强数据安全防护措施;
a. 重新设置root用户的密码以加强账户安全;
b. 删除现有的匿名账户以消除潜在的安全隐患;
c. 禁止远程root登录(推荐做法);
d. 移除临时测试数据库以便清理环境;
e. 更新系统权限表以确保变更立即生效;
总结:这个脚本是官方推荐的操作,能够强化 MySQL 安装后的安全性,特别适合生产环境。
2. 不 mysql_secure_installation 的结果:
- 你将保留 默认的配置,这可能包括:
- root 用户可能没有设置密码或有弱密码(具体依赖于 MySQL 版本)。
- 保留匿名用户,这让更多用户可以访问数据库。
- 可能允许 root 用户进行远程登录,这会增加外部攻击风险。
- 存在不必要的测试数据库。
总结指出,在不执行mysql_secure_installation的情况下可能会遗留潜在的安全隐患。
因此执行mysql_secure_installation被认为是强化安全性的重要步骤。
则意味着若采用默认配置可能面临较高的安全风险。
2.这个问题涉及到了是否需要更改密码。

2.密码强度

- 遇到这种情况时,则必须放弃为root设置密码。
- 跳过设置root用户的密码是因为默认情况下使用auth_socket插件进行身份验证。
- 是否决定移除匿名账户?

3.是否禁用远程登录

请确认是否需要删除测试数据库及其相应的访问权限?按 y 或 Y 表示同意回应其他任意字符或组合表示拒绝回应

5.现在重新加载权限表吗?(按 y 或 Y 表示同意,按其他任意键表示拒绝):

补充说明:如果选择了使用插件来进行验证,则按照以下步骤进行修改:
3.刷新权限:(root 用户将会通过密码验证,而不是 auth_socket 插件)
FLUSH PRIVILEGES;
(2)检验成功:
输入mysql –version显示下面,则代表安装成功(但是由于不是root用户可能会出现权限不够)
mysql Ver 14.14 Distrib 5.6.16, for debian-linux-gnu (x86_64) using EditLine wrapper
1.进行下载压缩包到:~/fisco/
2.解压
unzip webase-deploy.zip
3.进入目录
cd webase-deploy
4.修改配置文件
配置:common.properties文件
根据下面图片配置
第二部分目录是节点是上一级目录

(1)下面是一键
python3 deploy.py installAll
出现:deploy has completed 表示成功
再用python3 deploy.py stopAll 停止
之后:python3 deploy.py startAll 启动
之后便可以用
python3 deploy.py startAll 启动
python3 deploy.py stopAll 停止
(2)一条一条启动

