Fisco Bcos学习 - 搭建第一个区块链网络
文章目录
- 一、前言
- 二、环境准备
- 三、安装依赖
- 在 macOS 上安装依赖
- 在 Ubuntu 上安装依赖
- 在 CentOS 上安装依赖
- 四、创建操作目录并下载安装脚本
- 五、搭建单群组 4 节点联盟链
- 六、启动 FISCO BCOS 链
- 七、检查进程
- 八、检查日志输出
在数字化时代,区块链技术正逐渐成为推动各行业变革的关键力量。FISCO BCOS 作为一款高性能、开源的区块链底层平台,为开发者提供了构建分布式应用的强大工具。本文将带你一步步搭建一个基于 FISCO BCOS 2.0 的区块链网络,开启你的区块链开发之旅。
一、前言
FISCO BCOS 是由微众银行牵头成立的 FISCO 开源社区推出的一个区块链底层平台。它支持 x86_64 和 aarch64(ARM)架构的 Linux 和 macOS 系统,适用于多种应用场景。通过本文的操作,你将能够在单机上部署一条包含 4 个节点的 FISCO BCOS 联盟链,并掌握基本的区块链操作。
二、环境准备
在开始搭建区块链网络之前,确保你的机器满足以下条件:
- 操作系统:推荐使用 Ubuntu 16.04 64bit 或 CentOS 7,但 FISCO BCOS 也支持其他 Linux 发行版和 macOS。
- 硬件要求:至少需要 4GB 内存和 20GB 硬盘空间。
- 网络连接:确保机器可以访问互联网,以便下载必要的软件包和脚本。
三、安装依赖
FISCO BCOS 的部署脚本 build_chain.sh
依赖于 openssl
和 curl
。根据你的操作系统,使用以下命令安装这些依赖。
在 macOS 上安装依赖
# 安装 Homebrew(如果尚未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"# 安装 openssl 和 curl
brew install openssl@1.1 curl
在 Ubuntu 上安装依赖
sudo apt update
sudo apt install -y openssl curl
在 CentOS 上安装依赖
sudo yum install -y openssl openssl-devel
四、创建操作目录并下载安装脚本
- 创建一个工作目录,用于存放 FISCO BCOS 的相关文件。
cd ~ && mkdir -p fisco && cd fisco
- 下载
build_chain.sh
脚本,并赋予执行权限。
curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.11.0/build_chain.sh && chmod u+x 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 BCOS 链。请确保机器的 30300~30303
、20200~20203
和 8545~8548
端口未被占用。
bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545
如果你需要搭建国密版本的链,可以添加 -g
和 -G
参数:
bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545 -g -G
其中 -g
表示生成国密配置,-G
表示使用国密 SSL 连接。
如果下载 fisco-bcos
二进制文件或 get_account.sh
脚本失败,建议手动访问 GitHub Release 页面 获取最新二进制文件,并使用 -e
参数指定节点。
六、启动 FISCO BCOS 链
- 启动所有节点。
bash nodes/127.0.0.1/start_all.sh
启动成功会输出类似以下内容的响应:
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 successfully
如果启动失败,请使用以下命令检查端口是否被占用:
netstat -an | grep tcp
确保 30300~30303
、20200~20203
和 8545~8548
端口未被占用。
七、检查进程
- 检查进程是否启动。
ps -ef | grep -v grep | grep fisco-bcos
正常情况下,你会看到类似以下的输出:
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
如果进程数不为 4,则可能是端口被占用导致进程未启动。
八、检查日志输出
- 查看节点
node0
的连接情况。
tail -f nodes/127.0.0.1/node0/log/log* | grep 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 +++
正常情况下,你会看到类似以下的输出,表明共识正常:
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...