写点什么

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

  • 2020-04-19
  • 本文字数:1786 字

    阅读完需:约 6 分钟

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

仲裁链组织结构

下图是一个仲裁链示例:



企业 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 << EOF127.0.0.1:2 arbitrator 1,2,3127.0.0.1:2 agencyA 1127.0.0.1:2 agencyB 2127.0.0.1:2 agencyC 3EOF
复制代码


调用 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 HelloWorld0x8c17cf316c1063ab6c89df875e96c9f0f5b2f744# 查看group1当前块高,块高增加为1表明出块正常,否则请检查group1是否共识正常$ [group:1]> getBlockNumber 1# ... 向group2发交易...# 切换到group2$ [group:1]> switch 2Switched 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


本文转载自 FISCO 金链盟公众号。


原文链接:https://mp.weixin.qq.com/s/gwk1ejkdIHXIV3RkD9Ez9g


2020-04-19 17:411081

评论

发布
暂无评论
发现更多内容

杨明越:Kubernetes的下一仗可能是提升标准化程度

杨明越

【STM32】串口通信出现乱码(使用官方标准库)

AXYZdong

硬件 stm32 2月春节不断更

《我们脑中挥之不去的问题》 - 卓克科普(2)

石云升

读书笔记 科普 2月春节不断更

Chrome浏览器多进程架构3个必会知识点

梁龙先森

面试 大前端 浏览器

JDBC速查手册

jiangling500

Java JDBC

面试官系列:你对Spring事件发布和广播监听有了解吗?

后台技术汇

面试 2月春节不断更

Elasticsearch dynamic mapping

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

Tomcat速查手册

jiangling500

Java tomcat

架构师训练营 4 期 第7周

引花眠

架构师训练营 4 期

Spring框架源码:BeanFactory与Bean的生命周期

程序员架构进阶

Java spring 源码阅读 七日更 2月春节不断更

SpringMVC专栏 第1篇 - 快速入门

小马哥

Java spring Spring MVC 七日更 二月春节不断更

ElasticSearch.01-简介

insight

elasticsearch 2月春节不断更

深入理解gradle中的task

程序那些事

Java maven Gradle 程序那些事 构建工具

工作学习累了?试试 GitHub 上的那些简单易学的游戏项目吧!

JackTian

GitHub 开源 游戏 2月春节不断更

9. Python 学习过程的第一个山坡,99%的人都倒在了山坡下

梦想橡皮擦

Python 2月春节不断更 python入门 python学习

【STM32】串口通信---用代码与芯片对话

AXYZdong

硬件 stm32 2月春节不断更

「架构师训练营 4 期」 第七周 - 001&2

凯迪

架构师训练营 4 期

Java SE最佳实践

jiangling500

Java 最佳实践 Java SE

盘点关于程序员的那些经典案例

孙叫兽

程序员 程序人生 话题讨论 薪水 计算机原理

深入浅出函数式编程:Stream流水线的实现原理

李尚智

Java 架构 微服务

熬夜7天,我总结了JavaScript与ES的25个重要知识点!

我是哪吒

学习 程序员 面试 大前端 2月春节不断更

Tomcat异常: Unable to process Jar entry [module-info.class] from Jar

小马哥

Java maven 七日更 二月春节不断更

聊聊大公司创新的机制:饱和攻击

boshi

创新 七日更

日记 2021年2月14日(周日)

Changing Lin

2月春节不断更

第十二周课后作业

Binary

第十二周 数据应用一 作业 「架构师训练营 3 期」

胡云飞

第十二周学习总结

Binary

10. 比找女朋友还难的技术点,Python 面向对象

梦想橡皮擦

Python 2月春节不断更 python入门

还傻傻分不清楚equals和==的区别吗?看完就明白了

codevald

Java 源码分析 string Object

Scrum Patterns:梳理产品待办列表(译)

Bruce Talk

敏捷开发 译文 Agile Scrum Patterns

【LeetCode】情侣牵手Java题解

Albert

算法 LeetCode 2月春节不断更

FISCO BCOS 2.0使用教程: 群组架构实操演练_文化 & 方法_FISCO金链盟_InfoQ精选文章