fabric实战记录滚滚红尘
发布于 2 个月前 作者 stvenyin 389 次浏览 来自 fabric
  • 前面我们已经讲述了环境搭建的相关内容,接下来我们花几篇文章来讲一讲一些概念和原理性的东西。首先我们来看一看Fabric的逻辑架构是怎么样的?

  • image.png

  • 上图所示的逻辑结构图是从不同角度来划分的,上层从应用程序角度,提供了标准的gRPC接口,在API的基础之上封装了不同语言的SDK,包括go、nodejs、java、python等,开发人员可以利用SDK开发基于区块链的应用。

  • 区块链强一致性要求各个节点之间达成共识需要较长的执行时间,应用程序也是采用异步通讯的模式进行开发的,事件模块可以在触发区块链事件或者链代码的时候执行预先定义的回调函数。

  • 下面分别从应用程序(红色部分)和底层的角度(蓝色部分)分析应该关注的几个要素。

  • ** 1.从应用程序角度**

  • 1.1身份管理

  • 联盟链考虑到商业应用对安全、隐私、监管、审计、性能的需求,提高入门门槛,成员必须被许可才能加入网路。Fabric成员管理服务为整个区块链提供身份管理、隐私、保密和可审计的服务。成员管理服务通过公钥基础设施PKI和去中心共识机制使得非许可的区块链变成许可制的区块链。

  • 1.2账本管理

  • 授权用户是可以查询账本数据的,这可以通过多种方式查询的,包括:
    
  • 根据区块号查询区块
    
  • 根据区块哈希查询区块
    
  • 根据交易号查询区块
    
  • 根据交易号查询交易
    
  • 根据通道名称查询区块链信息
    
  • 1.3交易管理 账本数据只能通过交易执行才能更新,应用程序通过交易管提交提案(Proposal),并获取到交易背书(Endorsement)以后,再给排序服务节点为(order)提交交易,然后打包生成区块。SDK提供接口,利用用户证书本地生成交易号,背书节点和记账节点都会效验是否存在重复交易。

  • 1.4智能合约 实现“可编程的账本",能过链代码执行提交的交易,实现基于区块链的智能合约业务逻辑。只有智能合约才能更新账本数据,其他模块不是直接修改状态数据(world state)

  • ** 2.从底层角度**

  • 2.1成员管理 MSP(Member Service Provider)对成员管理进行了抽象,主要为成员服务模块,包括会员注册,身份保护、内容保密、交易审计等功能。可以使用可拔插的Fabric-CA模块或第三方的CA来代替。

  • 2.2共识服务 负责节点间共识管理、账本分布式的计算、账本的存储节点间的P2P协议功能的实现,是区块链的核心组成部分,为区块链的主体功能提供了底层技术支撑。

  • 2.3链码服务 提供了一些列接口,为智能合约实现提供了方便。智能合约实现依赖于安全的执行环境,确保安全的执行过程和用户数据隔离。Fabric采用Docker管理普通的链码,提供安全的沙箱环境和镜像文件仓库,可支持多种语言的链码。

  • 2.4链码服务 安全问题是企业级区块链关系的问题,Hyperledger Fabric专门定义了人一个BCCSP(BlockChain Cryptographic Service Provider),使其实现密钥生成、哈希运算、签名验签、加密解密等基础功能。

  • ** 3 fabric 逻辑架构上设计的介个特点**

  • 3.1模块插件化 很多功能模块(如CA模块、共识算法、状态数据库存储、ESCC、VSCC、BCCSP等)都是可拔插的,系统,提供了通用接口和默认的实现,这满足了大多的业务需求。这些模块也可以根据需求进行扩展,集成到系统中。 3.2充分利用容器技术 不仅节点使用容器作为运行环境,链码也默认运行在安全的容器中。应用程序或者外部系统不能直接操作链码,必须通过背书节点提供接口转发给链码来执行。容器给链码运行提供的安全沙箱环境,把链码的环境和背书节点的环境隔离开,链码存在安全问题也不影响到背书节点。 3.3可拓展性 Hyperledger Fabric 1.0后,节点的角色进行了不同的拆分,有主节点(Leader)、背书节点(Endorser)、记账节点(Committer)、排序服务节点(Orderer)等,不同角色的节点有不同的功能。节点可以加入不同的通道(Channel)中,链码可以运行在不同的节点上,这样可以更好的提升并行执行的效率和吞吐量。 3.4安全性 Hyperledger Fabric 提供的授权访问的区块链网络、节点共同维护成员信息,MSP(Member Service Provide)模块验证、授权了最终用户才能使用区块链网络功能。多链和多通道的设计容易实现数据隔离,提供了应用程序和链码之间的安全通道,实现了隐私保护。 4总结 Hyperledger Fabric采用模块化架构设计,利用通道的功能模块和接口。模块化的方法带来了可扩展性、灵活性等优势,会减少模块修改、升级带来的影响,很好利用微服务实现区块链应用系统的开发和部署。

5参考资料 1.http://hyperledger-fabric.readthedocs.io/en/release-1.2/index.html 2.<<深度区块链探索:Hyperledger技术与应用>> Thank you very Much.

回到顶部