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

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


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

 

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

  课程知识点:github

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

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

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

 

 仲裁链组织结构

 

 下图是一个仲裁链示例:架构

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

 

仲裁链组网详情

 

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

  • 仲裁机构:包括两个节点,节点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

 

PS/

本文首发于公众号【FISCO BCOS开源社区】,如转载请注明出处,原创不易,谢谢珍惜