fabric生产环境搭建一:架构解析

fabric的结构非常的复杂,这也是IBM的富贵病,经常把软件设计到复杂无比,乍一看又专业又帅气,名家之作,一上手操作起来巨费劲,讲出去没人懂,勉强用上了发现是大炮打蚊子,有用的就那么一点点,只好时间长了慢慢的死掉,比如说lotus,WebSphere,db2,甚至包括AIX, 哪样不是满满IBM风格呢?

但IBM在乎吗?不在乎,IBM的目标是:

  • 抢占市场,唬住客户,拉住订单,向下一个风口出发!!!

吐槽真是简单的快乐,现在我们回归正题,来看fabric的网络结构。

本文是部署fabric网络的心法总纲

一:物理结构

我们先说一下fabric网络中,运行的物理结构,即实际运行的程序是什么。

核心的只有两个:orderer和peer。

orderer负责出块,peer负责处理业务逻辑。其相互关系为:

  • 首先由orderer组成fabric基础网络,这时候就有区块链的雏形了,有共识,能出块,能够形成一条链。但是没业务逻辑
  • 然后peer连接到orderer, peer负责块数据的业务逻辑,和orderer结合,形成完整网络

图中一共由三个orderer节点,两个peer节点,组成一个fabric网络

组织关系

有了运行实体,还得再增加一个概念:组织。orderer和peer可以属于不同的组织。

组织的基本应用场景是这样:fabric设计为一个联盟链,也就是多个公司都可以进入这条链共襄盛举。那么一个公司总得有自己私密数据吧,因此可以把公司当作一个组织。每个组织可以有自己的orderer,peer节点,组织间数据默认是隔离的,不允许串组织访问,但是区块链嘛,总得需要协作,因此配置后组织间节点才可以相互访问

总的说来,组织起着权限控制的基本作用

有了组织 ,就得有身份认证,fabric通过CA证书来管理身份, 同一个组织的节点,都要有相同的根证书

一般来说,生产环境中,不同组织之间,都有自己的CA证书服务器,由证书服务器生成证书,各组织之间根证书各不相同

所有市面上标准的证书都可以在项目中使用。同时fabric也提供了两个证书生成工具:

  • fabric-ca。生产环境中使用
  • cryptogen。测试环境中使用,用于开发测试

引入组织的概念后,fabric的物理结构中增加了CA程序

图中有三个orderer节点,两个peer节点,两个CA服务器,各自隶属于不同组织,共同组成一个fabric网络

因此fabric网络中,除去中间一些辅助工具,最后实际运行的物理程序只有三种:

  • orderer
  • peer
  • CA

二:逻辑结构

有了物理程序,网络还建不起来,实体程序之间至少得相互通讯啊,还得需要一定的部署步骤。而要理解fabric的部署步骤,就得懂fabric的逻辑结构了

  1. 多个orderer节点组成network。并且维护一个配置:network configuration(也常常被叫做system channel)

2. 在orderer上安装application channel。一个application channel就相当于一条私链,fabric支持多个私链,application channel也维护自己的配置:channel configuration

3. 每个application channel(私链)都对应一个账本ledger(私链数据)。ledger对应application channel的业务逻辑。可以简单的理解为ledger和application channel是一个东西的不同表示形式

4. peer连接到Application channel后, 拥有可以访问ledger的权利

5. 在peer上安装chaincode,通过chaincode读写ledger。chaincode是ledger的访问入口,其实就相当于其他链的智能合约

6. 最终的用户user, 访问链的过程就是:

urser向peer发起请求->
    peer根据请求调用chaincode->
        chaincode操作ledger->
            ledger数据变化被orderer同步->
                 同步后的数据保存在区块链数据库中->

三:部署顺序

明白了逻辑结构,当我们要部署一个fabric网络的时候,需要一些什么成员就很清楚了:

  • orderer, 用于搭建fabric底层网络
  • peer, 维护ledger
  • Application channel和ledger, 用于创建私链
  • Organization,成员间的组织
  • CA服务,给组织成员颁发证书
  • chaincode, 智能合约
  • user,最终用户

大致部署步骤也归纳如下:

  1. 设计网络结构,规划组织数据,组织成员
  2. 部署CA服务器,给组织成员如orderer, peer,user颁发证书
  3. 部署orderer,配置network configuration, 启动网络(network)
  4. 部署application channel,配置channel configuration,启动私链
  5. 配置peer, 链接到channel

至此,一个完整的fabric网络就应该运行正常了,接下来就是chaincode操作了:

  1. 发布chaincode
  2. 调用chaincode, 更新或读取ledger

Next

怎么样,小伙伴们,天下有始,以知其子,这一章是理解fabric的心法总纲,您学废了吗?

纸上得来终觉浅,接下来我们来实战一把吧:

[虚掩着的神秘之门~~~>]()

Ref

  • https://hyperledger-fabric.readthedocs.io/en/release-2.2/network/network.html



《 “fabric生产环境搭建一:架构解析” 》 有 3 条评论

  1. The Women s Health Initiative Study Group 22, which has randomly assigned 27 348 women to receive HRT, could establish whether estrogen protects against CHD lasix drug class

  2. Pritchard replied that this might be the case buy priligy 60 mg

  3. best site to buy priligy Apparently the nolva reduces the amount of estrogen cells in the lower region thus eliminating some fat

回复 furosemide and spironolactone 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

About Me

一位程序员,会弹吉他,喜欢读诗。
有一颗感恩的心,一位美丽的妻子,两个可爱的女儿
mail: geraldlee0825@gmail.com
github: https://github.com/lisuxiaoqi
medium: https://medium.com/@geraldlee0825