Advertisement

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命令的结果如下:

  1. 增强数据安全防护措施;
    a. 重新设置root用户的密码以加强账户安全;
    b. 删除现有的匿名账户以消除潜在的安全隐患;
    c. 禁止远程root登录(推荐做法);
    d. 移除临时测试数据库以便清理环境;
    e. 更新系统权限表以确保变更立即生效;

总结:这个脚本是官方推荐的操作,能够强化 MySQL 安装后的安全性,特别适合生产环境。

2. 不 mysql_secure_installation 的结果:

  • 你将保留 默认的配置,这可能包括:
    • root 用户可能没有设置密码或有弱密码(具体依赖于 MySQL 版本)。
    • 保留匿名用户,这让更多用户可以访问数据库。
    • 可能允许 root 用户进行远程登录,这会增加外部攻击风险。
    • 存在不必要的测试数据库。

总结指出,在不执行mysql_secure_installation的情况下可能会遗留潜在的安全隐患。
因此执行mysql_secure_installation被认为是强化安全性的重要步骤。
则意味着若采用默认配置可能面临较高的安全风险。
2.这个问题涉及到了是否需要更改密码。

2.密码强度

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

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/

获取资源 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

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)一条一条启动

全部评论 (0)

还没有任何评论哟~