当前位置: 首页 > news >正文

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 联盟链,并掌握基本的区块链操作。

二、环境准备

在开始搭建区块链网络之前,确保你的机器满足以下条件:

  1. 操作系统:推荐使用 Ubuntu 16.04 64bit 或 CentOS 7,但 FISCO BCOS 也支持其他 Linux 发行版和 macOS。
  2. 硬件要求:至少需要 4GB 内存和 20GB 硬盘空间。
  3. 网络连接:确保机器可以访问互联网,以便下载必要的软件包和脚本。

三、安装依赖

FISCO BCOS 的部署脚本 build_chain.sh 依赖于 opensslcurl。根据你的操作系统,使用以下命令安装这些依赖。

在 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

四、创建操作目录并下载安装脚本

  1. 创建一个工作目录,用于存放 FISCO BCOS 的相关文件。
cd ~ && mkdir -p fisco && cd fisco
  1. 下载 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~3030320200~202038545~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 链

  1. 启动所有节点。
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~3030320200~202038545~8548 端口未被占用。

七、检查进程

  1. 检查进程是否启动。
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,则可能是端口被占用导致进程未启动。

八、检查日志输出

  1. 查看节点 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
  1. 检查共识是否正常。
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...

相关文章:

  • 网站建设参考网站的说明书优秀企业网站模板
  • 云南网站建设一条龙网站页面优化内容包括哪些
  • 上海做网站较好的公司想在百度上推广怎么做
  • 网站搭建中单页面企业网站建设原则是
  • 网站开发用工工程师西安百度关键词优化排名
  • 常州有哪些做阿里巴巴网站的留号码的广告网站
  • WinForm使用webbrowser加mathjax显示数学公式符号
  • js截取地址详细信息(除去省市区、市市区、自治区市区)
  • Proteus仿真51单片机控制L298N PWM电机调速
  • 深入GPU编程:从硬件架构到内核优化
  • Gated CNN Block,抑制背景噪声、强化边缘特征,更好地融合不同尺度的特征信息
  • python的智慧养老院管理系统
  • 深入解析RS485通信:从原理到Linux驱动开发实践
  • 图像处理解决方案
  • Promptify与ReActAgent
  • Docker、Docker composer与Docker desktop
  • 【Elasticsearch】es初识,在项目架构中的用途,与mysql和kafka的配合使用,
  • .NET 7.0 EF Core:一、创建Web API 项目基础框架和用户表的增删改查
  • C++ 第二阶段项目三:图形绘制库
  • PDF24 Creator(PDF工具箱)
  • 中文PDF解析准确率排名
  • 设计模式:揭秘Java原型模式——让复杂对象的创建不再复杂
  • 使用pyflink编写demo并将任务提交到yarn集群
  • 【启发式算法】RRT*算法详细介绍(Python)
  • 一篇文章了解XML
  • LeetCode 3298.统计重新排列后包含另一个字符串的子字符串数目2