1. 项目概述 
    1. Fabric的目标是实现一个通胀的权限区块链的底层基础框架。为了适用于不同的场合,采用了模块化结构,提供可切换和可扩展的组件,比如共识算法、加密安全等服务
  2. 应用场景 
    1. 超级账本有一个很重要的设计原则:按照“用例驱动”的方式实现,所有功能都应该有对应的用例需求。鉴于超级账本是一个通用型框架,无法预先确定将来所有的应用场景、因此先定义出部分典型的用例,可使超级账本先满足这部分代表性的区块链应用需求,然后再用可替换模块来满足其他需求
    2. 场景 
      1. 金融资产管存
      2. 公司行为
      3. 供应链
      4. 主数据管理
      5. 分享经济
  3. 项目架构 
    1. 底层服务构成 
      1. 身份服务 
        1. Fabric与比特币、以太坊等无权限区块链网络最大的区别在于他有身份识别能力。
        2. 身份服务管理着系统中各种实体、参与者、对象的身份信息,包括参与者的组织,验证者,交易。账本中的资产和智能合约,系统组件以及运行环境。
      2. 策略服务 
        1. Fabric里面有许多功能需要使用策略方式驱动,因此有独立的策略服务来提供系统的策略配置和管理功能
        2. 策略服务最重要的是访问控制和授权功能,Fabric交易通常需要参与方具有相关权限才能进行
      3. 区块链服务 
        1. 区块链服务提供构建分布式账本最基础的能力,实现数据传输、共识达成等底层功能,并且提供了发布/订阅的事件管理框架
        2. 主要组件 
          1. P2P协议组件:提供区块链节点之间直接双向通信的能力
          2. 分布式账本组件:管理Fabric的区块链数据
          3. 共识管理器组件:管理其它Fabric组件所使用的共识接口
          4. 账本存储组件:提供链外数据的持久化能力,每个链外文档的哈希值保存在区块链上,从而保证数据的完整性
      4. 智能合约服务 
        1. 智能合约服务也叫链上代码,实质是在验证节点上运行的分布式交易程序,用于自动执行特定的业务规则,最终更新账本状态 
        2. 上层结构 
          1. 编程接口(API)
          2. 软件开发工具(SDK)
          3. 命令行工具(CLI)
  4. 部署方式 
    1. Fabric的网络节点由身份服务节点、验证节点、非验证节点以及应用节点组成
    2. 节点分类 
      1. 身份服务节点:负责发放和管理用户及组织的身份,具体来说就是在注册、交易、传输过程中使用的各类数字证书,以及区块链相关的密钥。
      2. 验证节点:创建以及校验交易,并且维护智能合约的状态。在执行交易时、需要和其它的多数验证节点达成共识,然后才能更新本地账本数据。每个验证节点在本地都保存一份账本的副本。
      3. 非验证节点:主要是接收客户端的请求,组装交易,并且发往验证节点进行处理,类似于交易预处理器,不负责交易的实际执行。为了回事客户端的查询响应速度,非验证节点在本地也保留一份账本数据的拷贝。
      4. 应用节点:主要提供用户端(浏览器或者移动设备等)的后台服务,在收到请求之后,把交易请求直接发往(或者由非验证节点转发)验证节点处理
    3. Fabric有多种部署方式,既可以部署在自己的数据中心,也可以部署在公有云上。在部署的时候应该把通信延迟、网络故障、节点失效、网络恢复、恶意攻击等因素考虑在内
  5. 交易执行 
    1. 交易分类 
      1. 部署智能合约
      2. 执行智能合约
    2. 分发机制:Fabric客户端可以通过API提交应用代码给任意一个验证节点,该验证节点在确认是有效的应用代码后,就会将该应用同步到其它验证节点中。通过止方法,最终,每个验证节点都会保存一份应用代码
    3. 交易步骤 
      1. 客户端发送执行请求给任意一个验证节点
      2. 验证节点接收到请求之后 、向本地账本发送启动交易的指令
      3. 验证节点创建隔离的运行环境,启动智能合约代码
      4. 在应用的执行过程中、更新本地账本的状态
      5. 应用完成后、向本地账本确认交易
      6. 验证节点向其它的验证节点广播交易

 

  •