Advertisement

FISCO BCOS——搭建第一个区块链(搭建但群组FISCO BCOS联盟链)

阅读量:

搭建但群组FISCO BCOS联盟链

使用开发部署工具 build_chain.sh脚本搭建一条4节点的FISCO BCOS链。

第一步. 安装依赖

安装macOS依赖

复制代码

安装centos依赖

复制代码

安装ubuntu依赖

sudo apt install -y openssl curl

  1. sudo
    • 用于以超级用户(root)权限执行后续命令。普通用户在执行某些需要管理员权限的操作(如安装软件包)时,需要使用sudo
  2. apt
    • 是 Debian 及其衍生系统(如 Ubuntu)中的包管理工具,用于从软件仓库中搜索、安装、升级和卸载软件包。
  3. install
    • apt命令的子命令,用于安装软件包。
  4. -y
    • apt install命令的一个选项,代表 “yes”。它会自动回答安装过程中的所有确认提示,避免用户手动输入 “yes” 来确认安装。
  5. openssl
    • 是一个开源的加密库和工具包,提供了各种加密算法和安全相关的功能,常用于实现 SSL/TLS 协议,保障网络通信的安全。例如,它可用于生成密钥对、证书签名请求(CSR)等。
  6. curl
    • 是一个命令行工具,用于通过 URL 传输数据。它支持多种协议,如 HTTP、HTTPS、FTP 等。可以用来从服务器下载文件、发送 HTTP 请求等。例如,可以使用curl来获取网页内容、上传文件到支持相应协议的服务器等。

第二步. 创建操作目录, 下载安装脚本

创建操作目录

cd ~ && mkdir -p fisco && cd fisco(在用户主目录下创建一个名为 fisco 的目录,并进入该目录。)

cd ~:这部分命令用于切换到当前用户的主目录。在 Linux 系统中,每个用户都有自己的主目录,~是主目录的快捷表示方式。例如,如果当前用户是 testuser,那么 cd ~就等同于 cd /home/testuser(假设系统使用默认的用户主目录结构)。

mkdir -p fisco:mkdir 是创建目录(make directory)的命令。-p 选项表示如果要创建的目录的父目录不存在,会自动创建父目录。所以这部分命令会在当前目录(即用户主目录)下创建一个名为 fisco 的目录,如果 fisco 目录的父目录不存在,也会一并创建。

cd fisco:这部分命令是将当前工作目录切换到刚刚创建的 fisco 目录中。

下载脚本

curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/download/v2.11.0/build_chain.sh && chmod u+x build_chain.sh(这个命令组合的作用是从https://github.com/FISCO - BCOS/FISCO - BCOS/download/v2.11.0/这个地址下载名为build_chain.sh的脚本文件,并赋予该脚本文件所有者可执行权限)

  • curl -#LO https://github.com/FISCO - BCOS/FISCO - BCOS/download/v2.11.0/build_chain.sh
    • curl :它是一个功能强大的命令行工具,主要用于进行数据传输,支持多种协议,如 HTTP、HTTPS 等。在这里,它用于从指定的 URL 下载文件。
    • -# :这个选项让curl在下载时显示进度条,方便用户了解下载的进度情况。
    • -L :当遇到重定向时,curl会自动跟随重定向,继续下载目标文件。这在下载链接可能发生重定向的情况下很有用。
    • -O :它指示curl将下载的文件以服务器上的文件名保存到当前目录。所以,这里会把从指定 URL 获取的文件保存为build_chain.sh
  • chmod u + x build_chain.sh
    • chmod :用于改变文件或目录的访问权限。
    • u+xu代表文件所有者(user),+x表示给文件所有者添加执行权限。执行该命令后,文件所有者就可以运行build_chain.sh这个脚本了。

如果因为网络问题导致长时间无法下载build_chain.sh脚本,尝试 curl -#LO https://gitee.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.11.0/build_chain.sh && chmod u+x build_chain.sh

第三步. 搭建单群组4节点联盟链

在fisco目录下执行下面的指令,生成一条单群组4节点的FISCO链(请确保机器的3030030303,2020020203,8545~8548端口没有被占用):

bash build_chain.sh -l 127.0.0.1:4 -p 30300~30303,20200,8545(利用 build_chain.sh 脚本在本地构建一个区块链环境,创建 4 个节点,并为这些节点配置一系列特定的端口用于不同的通信和服务功能。)

命令执行成功会输出All completed。如果执行出错,请检查nodes/build.log文件中的错误信息。

**bash **——执行build_chain.sh脚本。

-l ——是脚本定义的一个选项,通常表示 “listen”(监听)相关的配置。

127.0.0.1:4 ——其中 127.0.0.1 是本地回环地址,代表当前机器自身。4 可能表示要在本地地址上创建 4 个节点(假设脚本逻辑如此),意味着脚本可能会在本地回环地址上启动 4 个与区块链相关的节点

-p —— 是另一个脚本定义的选项,可能与 “port”(端口)相关。

30300~30303,20200,8545 ——是端口相关的值。30300~30303 表示一个端口范围,即从 3030030303 这 4 个端口;,20200,8545 额外指定了两个单独的端口 202008545。这些端口可能被用于区块链节点之间的通信、RPC 服务(例如 8545 端口常被以太坊相关 RPC 服务使用)等不同功能。

国密版本请执行 bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545 -g -G

其中-g表示生成国密配置,-G表示使用国密SSL连接

第四步. 启动FISCO BCOS链

启动所有节点:bash nodes/127.0.0.1/start_all.sh (通过bash(Bourne - Again Shell)来执行位于nodes/127.0.0.1/目录下的start_all.sh脚本)

启动成功会输出类似下面内容的响应。否则请使用netstat -an | grep tcp检查机器的30300~30303,20200~20203,8545~8548端口是否被占用。

复制代码
 try to start node0

    
 try to start node1
    
 try to start node2
    
 try to start node3
    
  node1 start successfully
    
  node2 start successfully
    
  node0 start successfully
    
  node3 start successfull
    
    
    
    

第五步:检查进程

检查进程是否启动:ps -ef | grep -v grep | grep fisco-bcos(查找正在运行的与 fisco - bcos 相关的进程,同时排除掉用于查找进程的 grep 命令自身的进程显示)

-f—— 选项表示以完整格式(full - format)显示进程信息,包括进程的用户 ID、父进程 ID、启动时间等详细信息。所以 ps -ef 会列出系统中所有进程的详细信息。

-e—— 选项表示显示所有进程,包括系统进程和用户进程

ps 是 “process status” 的缩写,用于查看当前系统中运行的进程状态

|—— 这是管道符,它将 ps -ef 命令的输出作为下一个命令的输入。

grep ——是一个强大的文本搜索工具,用于在输入文本中查找匹配指定模式的行。

**-v—— **选项是 “invert match” 的意思,即显示不匹配指定模式的行。这里是要排除掉包含 “grep” 这个词的行,因为如果不排除,grep fisco - bcos 这个命令本身也会出现在搜索结果中,干扰对真正 fisco - bcos 进程的查找。

grep fisco-bcos——再次使用 grep 命令,这次是在经过 grep -v grep 过滤后的输出中查找包含 “fisco - bcos” 的行,这些行就是正在运行的 fisco - bcos 相关进程的信息。

正常情况会有类似下面的输出; 如果进程数不为4,则进程没有启动(一般是端口被占用导致的)

复制代码
 fisco       5453     1  1 17:11 pts/0    00:00:02 /home/ubuntu/fisco/nodes/127.0.0.1/node0/../fisco-bcos -c config.ini

    
 fisco       5459     1  1 17:11 pts/0    00:00:02 /home/ubuntu/fisco/nodes/127.0.0.1/node1/../fisco-bcos -c config.ini
    
 fisco       5464     1  1 17:11 pts/0    00:00:02 /home/ubuntu/fisco/nodes/127.0.0.1/node2/../fisco-bcos -c config.ini
    
 fisco       5476     1  1 17:11 pts/0    00:00:02 /home/ubuntu/fisco/nodes/127.0.0.1/node3/../fisco-bcos -c config.ini
    
    
    
    

第六步. 检查日志输出

查看节点node0链接的节点数

复制代码
    tail -f nodes/127.0.0.1/node0/log/log*  | grep connected

tail—— 用于查看文件的末尾部分内容

-f—— 选项表示 “follow”,即持续监控文件的变化。当文件有新内容追加时,tail 会实时显示这些新内容。在这里,它会持续关注 nodes/127.0.0.1/node0/log/ 目录下符合条件的日志文件的更新。

nodes/127.0.0.1/node0/log/log*—— 这是指定要监控的文件路径及文件名模式。表示 nodes 目录下以 127.0.0.1 命名的子目录中的 node0/log/ 目录下,所有以 log 开头的文件。

|--- 管道符号,将 tail -f 命令的输出作为下一个命令的输入。

grep—— 用于在输入文本中搜索匹配指定模式的行。这里指定的模式是 connected,它会在 tail -f 输出的实时日志内容中查找包含 connected 这个单词的行,并将这些行显示出来。

正常情况会不停地输出连接信息,从输出可以看出node0与另外3个节点有连接。

复制代码
 info|2019-01-21 17:30:58.316769| [P2P][Service] heartBeat,connected count=3

    
 info|2019-01-21 17:31:08.316922| [P2P][Service] heartBeat,connected count=3
    
 info|2019-01-21 17:31:18.317105| [P2P][Service] heartBeat,connected count=3
    
    
    
    

检查是否在共识

复制代码
    tail -f nodes/127.0.0.1/node0/log/log*  | grep +++

grep—— 是一个强大的文本搜索工具,用于在输入文本中查找包含特定模式的行。这里的模式是 +++,意味着 grep 会在 tail -f 实时输出的日志内容里,查找并显示所有包含 +++ 字符串的行。

正常情况会不停输出带有++++Generating seal的日志,即表示共识正常。

复制代码
 info|2020-12-22 17:24:43.729402|[g:1][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=1,hash=2e133146...

    
 info|2020-12-22 17:24:47.740603|[g:1][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=1,hash=eb199760..
    
    
    
    

全部评论 (0)

还没有任何评论哟~