文章目录

    • 一、前言
    • 二、环境准备
    • 三、安装依赖
      • 在 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...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/911849.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/911849.shtml
英文地址,请注明出处:http://en.pswp.cn/news/911849.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可视化图解算法53:表达式求值

牛客网 面试笔试 TOP 101 1. 题目 描述 请写一个整数计算器,支持加减乘三种运算和括号。 数据范围:0≤∣s∣≤100,保证计算结果始终在整型范围内 要求:空间复杂度: O(n),时间复杂度 O(n) 示例1 输入…

小白成长之路-Nginx配置(二)

文章目录 一、localtion配置1.匹配规则2.匹配优先级3.配置案例 二、rewrite1、 语法2、 可写入字段3 配置案例4 if 指令5.sutoindex6. nginx配置中的常用变量 三、配置Nginx状态统计1.下载vts模块2.编译nginx 提示:以下是本篇文章正文内容,下面案例可供参…

Qt的第一个程序

Qt的第一个程序 1.hello world2.使用图形化拖拽方式3.使用C代码的方式3.1.头文件3.2.setText3.3.对象树 4.设计MyLabel5.乱码问题 🌟🌟hello,各位读者大大们你们好呀🌟🌟 🚀🚀系列专栏&#xff…

图书数据接口

基本说明: 接口地址:http://data.isbn.work/openApi/getInfoByIsbn?isbn{isbn}&appKey{appkey}返回格式:json请求方式:get请求示例:http://data.isbn.work/openApi/getInfoByIsbn?isbn9787513159074&appKey…

MongoDB原理

目录 一、概念 二、架构 2.1 逻辑结构 2.2 数据模型 2.3 存储引擎:WiredTiger 三、事务 一、概念 MongoDB是文档数据库,基本存储单元是 文档(Document),以BSON格式(一种类json的二进制形式&#xff…

《解码音频:从基础到未来的听觉探索》

音频:开启声音世界的大门 在生活的每一个角落,音频如影随形,编织出丰富多彩的听觉体验。清晨,第一缕阳光尚未完全照进房间,手机里温柔的闹钟铃声,将我们从睡梦中轻轻唤醒,开启活力满满的一天。通…

web安全之h2注入系统学习

起初是在N1 Junior 2025 上面碰到一题,考点是h2的sql注入。由于之前没有见过,趁此机会系统学习一番 实验代码 public class H2Inject {public static void main(String[] args) throws Exception{JdbcDataSource dataSource new JdbcDataSource();dataS…

AWS认证系列:考点解析 - cloud trail,cloud watch,aws config

🎯一句话总览: 服务名类比/角色主要功能CloudTrail监控摄像头录像回放记录“谁在什么时候做了什么操作”CloudWatch护士测体温 护士喊医生实时监控系统状态,并能报警/自动应对AWS Config保安巡逻 记录资产变更历史记录 AWS 资源的“配置状…

Java八股文——数据结构「数据结构篇」

了解哪些数据结构? 面试官您好,我了解并使用过多种数据结构。在我的理解中,数据结构可以分为几个大的类别,每一类都有其独特的优势和适用场景。 1. 线性结构 (Linear Structures) 这类结构的特点是数据元素之间存在一对一的线性…

C#测试调用EPPlus根据批注设置excel单元格内容

EPPlus也是常用的Excel文件操作库,但不同于ClosedXML,使用EPPlus前需要设置授权信息,商业应用需要设置商业授权,个人使用或非商业应用也需要设置授权(测试的时候只需设置全名,保存excel文件时会保存到文件详…

windows本地搭建skywalking, 线程池中traceId不丢失

1.从官网下载9.0.0版本 Downloads | Apache SkyWalking 其它历史版本的 下载地址 Index of /dist/skywalking 这个页面 可以下载 apm服务: apache-skywalking-apm-9.0.0.tar.gz agent的包: apache-skywalking-java-agent-9.0.0.tgz 2.解压后, (看情况去config路径下 appli…

多模态大语言模型arxiv论文略读(135)

Agent S: An Open Agentic Framework that Uses Computers Like a Human ➡️ 论文标题:Agent S: An Open Agentic Framework that Uses Computers Like a Human ➡️ 论文作者:Saaket Agashe, Jiuzhou Han, Shuyu Gan, Jiachen Yang, Ang Li, Xin Eric…

wpa_supplicant连接到了路由,但是 udhcpc会分配到不同网段的ip,路由器ip为192.168.0网段,板子分配ip为192.168.1的网段

wpa_supplicant连接到了路由,但是 udhcpc会分配到不同网段的ip,路由器ip为192.168.0网段,板子分配ip为192.168.1的网段 你提到的情况: 使用 wpa_supplicant 成功连接到路由器; 然后通过 udhcpc(DHCP客户端&#xff09…

[Hestia]开源网络服务器控制面板,快速、可靠、开源

测评介绍 本期测评试用一下Hestia这款面板。Hestia是一个由国际社区支持开发的开源项目,2019年正式发布,目前已积累1.1万余次代码提交,几乎每周都有十多次的代码提交,更新热度很高。仅支持比较新的debian和ubuntu,对于…

Windows 安装 Redis8.0.2

1.下载 Releases redis-windows/redis-windowshttps://github.com/redis-windows/redis-windows/releases 下载后直接解压到想要的安装目录就行了,启动Redis直接双击 redis-server.exe 文件就行了,Redis启动后双击 redis-cli.exe 就可以直接连接到Redi…

GitHub中openmmlab和Detectron2的区别

MMDetection 和 Detectron2 都是计算机视觉领域中流行的开源目标检测框架,它们有许多相似之处,但也存在一些关键差异。以下是两者的主要区别: 1. 开发团队与社区 MMDetection 由中国开源组织 OpenMMLab 开发维护,社区以中文用户为…

开疆智能CCLinkIE转ModbusTCP网关连接施耐德TCP从站配置案例

本案例是三菱PLC通过CCLinkIE转ModbusTCP网关连接施耐德Modicon M262 Logic/Motion Controller的配置案例 配置方法: 首先设置Modicon M262 Logic/Motion Controller Modbus TCP 从站设备 I/O 映射选项卡 I/O 以如下方式从主站视角映射到 Modbus 寄存器&#xff1…

【源码】Reactive 源码

前言 用了很长时间的 componsition-api 了,最近想看看源码,抱着单纯的学习心态先从 reactive 开始吧。 个人习惯: 看代码要带着问题去看,不要盲目的去看问题就是这次看源码的主线,要围绕着主线去展开,过…

银河麒麟 | ubuntu 安装国产达梦DM8数据库(安装+外网通+IDEA连接)

目录 官网下载安装 下载安装包 创建安装用户组dinstall 创建安装用户dmdba并指定组 创建DM8软件安装目录修改权限 检查、修改系统资源限制 解压.zip的压缩包 安装mount数据库 图形化安装 清除之前的挂载 开启Disql服务 修改dmdba的环境变量 检查状态 进入数据库 …

MySQL与Oracle视图:深入解析与全面对比

视图概念 视图在 MySQL 与Oracle中本质上是一种虚拟表,其数据并非实际存储,而是基于一个或多个基础表的查询结果动态生成。它像是对复杂查询的一种封装,极大地简化了数据的查询操作。例如,当我们需要频繁从多个关联表中获取特定数…