FISCO BCOS 2.0使用教程: 群组架构实操演练

2023-11-12

FISCO BCOS 2.0系列课程启动,我们将交叉推出《FISCO BCOS 2.0原理解析》、《FISCO BCOS 2.0使用教程》、《FISCO BCOS 2.0源码分析》等文章系列。


本文主讲群组架构的实操攻略。

我将以搭建仲裁链为例,并演示如何向该链发送交易。

  课程知识点:

  • 使用build_chain创建多群组区块链安装包

  • 如何启动区块链节点、查看节点共识状态和出块状态

  • 搭建控制台,向多个群组部署合约

 仲裁链组织结构

 下图是一个仲裁链示例:

企业A、企业B和企业C分别和仲裁机构合作,采用区块链搭建仲裁服务。在群组架构下,搭链方式为:仲裁机构配置两个节点,分别加入三个群组;企业A配置两个节点,加入群组1;企业B配置两个节点,加入群组2;企业C配置两个节点,加入群组3。

仲裁链组网详情

上节介绍了仲裁链组织结构,这里在一台机器的环境下模拟仲裁链组网环境。仿真的组网环境如下:

  • 仲裁机构:包括两个节点,节点IP均为127.0.0.1,同时属于群组1,群组2和群组3

  • 企业A:包括两个节点,节点IP均为127.0.0.1,仅属于群组1

  • 企业B:包括两个节点,节点IP均为127.0.0.1,仅属于群组2

  • 企业C:包括两个节点,节点IP均为127.0.0.1,仅属于群组3

温馨提示: 

实际应用场景中,不建议将多个节点部署在同一台机器,建议根据机器负载选择部署节点数目。本例中仲裁机构节点归属于所有群组,负载较高,建议单独部署于性能较好的机器。

 仲裁链搭建关键流程

如下图所示,使用FISCO BCOS 2.0快速建链脚本搭建仲裁链(以及所有其他区块链系统)主要包括五个步骤:

  • step1:安装依赖软件,主要是openssl和build_chain.sh脚本

  • step2: 使用build_chain.sh生成区块链节点配置

  • step3: 启动所有机构区块链节点

  • step4: 启动控制台

  • step5: 使用控制台发送交易

下面我将就这五个步骤详细叙述构建仲裁链的关键流程。

安装依赖软件

搭建FISCO BCOS 2.0区块链节点需要准备如下依赖软件:

  • openssl:FISCO BCOS 2.0的网络协议依赖openssl

  • build_chain.sh脚本:主要用于构建区块链节点配置,可从https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/master/tools/build_chain.sh下载

生成区块链节点配置

FISCO BCOS 2.0提供的build_chain.sh可快速生成区块链节点配置,按照【仲裁链组网详情】介绍的节点组织结构,先生成区块链配置文件ip_list:

#ip_list文件内容格式:[ip]:[节点数] [机构名] [所属群组列表]

$ cat > ipconf << EOF

127.0.0.1:2 arbitrator 1,2,3

127.0.0.1:2 agencyA 1

127.0.0.1:2 agencyB 2

127.0.0.1:2 agencyC 3

EOF

调用build_chain.sh脚本构建仿真的本机仲裁链:

$ bash build_chain.sh -f ipconf -p 30300,20200,8545

区块链节点配置成功后,会看到[INFO] All completed.的输出。

启动节点

生成区块链节点后,需要启动所有节点,节点提供start_all.sh和stop_all.sh脚本启动和停止节点。

# 启动节点

$ bash start_all.sh

# 查看节点进程

$ ps aux | grep fisco-bcos

不发交易时,共识正常的节点会输出+++日志,使用tail -f node*/log/* | grep "++"查看各节点是否共识正常。

启动控制台

控制台是用户与FISCO BCOS 2.0区块链节点交互的重要工具,实现查询区块链状态、部署调用合约等功能,能够快速获取用户到所需要信息。

启动控制台前需获取并配置控制台:

  • 获取控制台:从https://github.com/FISCO-BCOS/console/releases/download/v1.0.0/console.tar.gz下载控制台

  • 配置控制台:主要拷贝证书、配置conf/applicationContext.xml所连接节点的IP和端口信息,控制台关键配置如下:

当然,控制台也支持连接多个群组,并提供了switch命令来切换群组,连接多个群组时,需要在groupChannelConnectionsConfig bean id中配置多个连接,分别连接到对应群组的区块链节点。

注: 控制台依赖于Java 8以上版本,Ubuntu 16.04系统安装openjdk 8即可。CentOS请安装Oracle Java 8以上版本。

使用start.sh脚本启动控制台,控制台启动成功会输出如下界面:

向群组发交易

控制台提供了deploy HelloWorld指令向节点发交易,发完交易后,区块链节点块高会增加

# ... 向group1发交易...

$ [group:1]> deploy HelloWorld

0x8c17cf316c1063ab6c89df875e96c9f0f5b2f744

# 查看group1当前块高,块高增加为1表明出块正常,否则请检查group1是否共识正常

$ [group:1]> getBlockNumber 

1

# ... 向group2发交易...

# 切换到group2

$ [group:1]> switch 2

Switched to group 2

[group:2]deploy Helloworld

...

 总结

本文介绍了搭建仲裁链的关键过程,FISCO BCOS 2.0的操作文档step by step介绍了如何部署多群组区块链,详细流程可以参考https://fisco-bcos-documentation.readthedocs.io/zh_CN/release-2.0/docs/tutorial/group_use_cases.html。


我们鼓励机构成员、开发者等社区伙伴参与开源共建事业,有你在一起,会更了不起。多样参与方式:

1 进入微信社群,随时随地与圈内最活跃、最顶尖的团队畅聊技术话题(进群请添加小助手微信,微信ID:fiscobcosfan);

2 订阅我们的公众号:“FISCO BCOS开源社区”,我们为你准备了开发资料库、最新FISCO BCOS动态、活动、大赛等信息;

3 来Meetup与开发团队面对面交流,FISCO BCOS正在全国举办巡回Meetup,深圳、北京、上海、成都……欢迎您公众号在菜单栏【找活动】中找到附近的Meetup,前往结识技术大咖,畅聊硬核技术;

4 参与代码贡献,您可以在Github提交Issue进行问题交流,欢迎向FISCO BCOS提交Pull Request,包括但不限于文档修改、修复发现的bug、提交新的功能特性。

代码贡献指引:

https://github.com/FISCO-BCOS/FISCO-BCOS/blob/master/docs/CONTRIBUTING_CN.md

了解更多干货内容,请关注FISCO BCOS开源社区公众号,访问FISCO BCOS代码仓库可下载项目所有源代码:https://github.com/FISCO-BCOS/FISCO-BCOS​​​​​​​,欢迎点击页面右上角star收藏,获取最新版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FISCO BCOS 2.0使用教程: 群组架构实操演练 的相关文章

  • 杭电OJ_(2043)密码

    Problem Description 网上流传一句话 常在网上飘啊 哪能不挨刀啊 其实要想能安安心心地上网其实也不难 学点安全知识就可以 首先 我们就要设置一个安全的密码 那什么样的密码才叫安全的呢 一般来说一个比较安全的密码至少应该满足
  • STL之vector的使用一(初始化vector)

    简介 vector可用于代替C中的数组 或者MFC中的CArray 从许多说明文档或者网上评论 一般一致认为应该多用vector 因为它的效率更高 而且具备很好的异常安全性 而且vector是STL推荐使用的默认容器 除非你知道你有特殊需要

随机推荐

  • 玩转ChatGPT:基于Mucloud建立本地知识库

    一 写在前面 人们普遍认为GPT有潜力颠覆教育行业 然而这种颠覆会以何种方式呈现呢 在刘慈欣的科幻世界中 三体人拥有知识遗传的能力 这使得他们的技术迭代成本降至最低 然而 我们人类并未具备这样的特性 每个新生命从出生之初就需要接受全新的教育
  • MarkDown中写UML图的方法

    目录 序 UML图之顺序图 顺序图的四个要素 关于消息箭头的语法 Mermaid中顺序图的简单例子 样例 用小人表示对象 为对象设置别名 激活对象 UML图之类图 类图中常见的关系 关于不同类型关系的语法 Mermaid中类图的简单例子 样
  • Python从菜鸟到高手(1):初识Python

    1 Python简介 1 1 什么是Python Python是一种面向对象的解释型计算机程序设计语言 由荷兰人吉多 范罗苏姆 Guido van Rossum 于1989年发明 第一个公开发行版发行于1991年 目前Python的最新发行
  • Verilog学习(2)运算符,赋值语句,块语句,条件语句,循环语句,生成块

    运算符 逻辑运算符 与 或 非 优先级高于 高于算术运算符 a gt b x gt y 可以写成 a gt b x gt y 一般还是加上括号 关系运算符 a b b 声明的关系是假的 返回0 优先级低于算术运算符 a b
  • mybatis 插入日期类型精确到秒的问题

    Mybatis 插入 数据库是为了防止插入空时报错 Mybatis 提供了一套机制 只要给定插入的字段的类型 如果为空 则它会自动处理为相应类型的默认值 ordercd jdbcType VARCHAR 我们都知道 Date类型是精确到时分
  • 【解决】NS3安装仿真可视化工具PyViz

    NS3安装仿真可视化工具PyViz 使用ns3软件版本是ns3 26 虚拟机系统Ubuntu16 04 问题 已经编译安装好ns3 并且也通过了测试 first second 等文件也可以正常编译 但是想用Pyviz看看图 运行命令sudo
  • 关于nginx proxy_pass指令’/’使用注意事项

    本文主要介绍了nginx代理配置完之后 nginx配置proxy pass 需要注意转发的路径配置 需要的朋友可以参考下 1 proxy pass配置说明 不带 代码如下 location test proxy pass http t6 8
  • Springboot中集成Prometheus

    目录 1 Prometheus基本原理和使用 2 Springboot中集成Prometheus 上文介绍了prometheus的基本原理和使用 本文将继续介绍如何在springboot中集成prometheus 基本配置 首先需要在spr
  • 提交微信小程序代码到微信代码管理git上

    背景 其实提交到github 码云 或者是 微信的git本质上没区别 这里只是想把微信的代码统一管理 所以决定放到微信的git上 创建远程项目 在微信开发管理工具上点击代码管理 完成用户名密码设定后 点击创建项目 纯英文路径 点击记入项目后
  • win10安装cuda10.2和对应的cudnn版本

    win10安装cuda10 2和对应的cudnn版本 查看自己电脑的显卡版本 1 点击 开始 键 打开NVIDIA控制面板 查看自己电脑的显卡版本 打开后点击 帮助 系统信息 组件 cuda安装 进入cuda官网 下载安装包 cuda官网
  • OpenCV代码提取:Windows上通过DShow获取Camera视频

    在OpenCV 3 1中获取视频的模块在videoio video input and output module 中 调用VideoCapture类接口 除了videoio模块外还依赖core highgui imgproc imgcod
  • 如何成为一名“受欢迎”的数据科学家和机器学习工程师

    机器学习项目交付实战 将介绍如何从模型和数据中获取最佳性能 帮助你构建稳定的数据管道 通过高效的可复用技术集合 来确保应用程序工作流程的顺利执行 以及提高模型的可维护性 基于数十年的良好软件工程实践 机器学习工程可确保你的机器学习系统具有弹
  • 虚拟机打不开github.com

    最近需要在虚拟机上用github的项目 但发现在虚拟机浏览器上打不开github网站 在终端执行 ping github com 返回的是localhost的数据包 在主机上用浏览器可以正常打开github网站 但是用cmd执行 ping
  • Java学习笔记-----用来迭代的iterable和iterator

    大家好 烦人的我又来了 小白今天已经更了两两篇博客了呀 但是感觉很充实 那么 开始这篇的内容吧 关于迭代 我先举个例子 大家应该都很喜欢玩角色扮演的游戏 那么现在该干什么呢 Java是面向对象的设计思想 第一步当然是设计类了 现在我设计一个
  • C语言与汇编——宏定义,头文件重复包含,内存申请和释放

    c文件 gt 替换 gt 编译 gt 链接 gt exe文件 typedef 只能给变量类型起别名 而 define可以给任何东西起别名 头文件重复包含问题 pragma once也能避免同一个头文件被包含 include 多次 一般由编译
  • 文字识别(OCR)介绍与开源方案对比

    目录 文字识别 OCR 介绍与开源方案对比 一 OCR是什么 二 OCR基本原理说明 三 OCR基本实现流程 四 OCR开源项目调研 1 tesseract 2 PaddleOC 3 EasyOCR 4 chineseocr 5 chine
  • 长尾理论(The Long Tail)与Google的成功

    根据wikipedia的解释 长尾 Long Tail 是2004年Chris Anderson在给连线杂志的文章中首次使用的词汇 用以描述某种经济模式如Amazon com或Netflix 长尾术语也普遍使用于统计学中 如 对财富分布或词
  • 全虚拟化与半虚拟化

    文章目录 虚拟化类型 虚拟化产品 虚拟化类型 全虚拟化 gt 基于硬件为基础以软件的形式模拟硬件设备 在一定程度上解决了性能利用率的问题 半虚拟化 gt 趋近于物理设备的性能 在提高利用率的同时 尽可能的提高性能 虚拟化产品 KVM gt
  • MATLAB 图像处理大作业 之人脸边缘检测

    1 基础知识 利用 MATLAB 提供的 Image file IO 函数完成以下处理 a 以测试图像中心为圆心 图像长宽中较小值一半为半径画一个红颜色的圆 b 将测试图像涂成国际象棋状的 黑白格 样子 用一种看图软件浏览上述两个图 看是否
  • FISCO BCOS 2.0使用教程: 群组架构实操演练

    FISCO BCOS 2 0系列课程启动 我们将交叉推出 FISCO BCOS 2 0原理解析 FISCO BCOS 2 0使用教程 FISCO BCOS 2 0源码分析 等文章系列 本文主讲群组架构的实操攻略 我将以搭建仲裁链为例 并演示