初识Hyperledger Fabric

2019-11-04  本文已影响0人  soojade

Hyperledger 顶级项目

Fabric 名词解释

Fabric 架构

fabric 架构图.png

Fabric 交易流程

fabric交易流程.png
  1. 应用向单个或多个节点(Peer)发送对交易的背书提案(Proposal),提案包括本次交易要调用的合约标识、合约方法和参数信息以及客户端签名等 ;
  2. 背书(Endorsing)节点验证签名并确定提交者是否有权执行操作,同时根据背书策略模拟执行智能合约;
  3. 背书节点将结果及其各自的CA证书签名返还给应用程序客户端;
  4. 应用程序客户端收到背书(Endorsing)节点返回的信息后,判断提案结果是否一致,以及是否参照指定的背书策略执行,如果没有足够的背书,则中止处理;否则,应用程序客户端把数据打包到一起组成一个交易并签名,发送给Ordering-Service;
  5. Ordering-Service对接收到的交易进行共识排序,然后按照区块生成策略,将一批交易打包到一起,生成新的区块,发送给记账(Committting)节点;
  6. 记账(Committting)节点收到区块后,会对区块中的每笔交易进行校验,检查交易依赖的输入输出是否符合当前区块链的状态,完成后将区块追加到本地的区块链,修改WorldState;
  7. 记账节点通知应用程序客户端。

Peer节点

fabric peer.png

Fabric是联盟链,Peer代表一系列组织,Peers是整个区块链网络的基础,因为它是账本和智能合约的载体。通过智能合约,账本通过不可篡改的方式记录了交易的全过程。

对于不能的公司来说,是有不同的业务的,不同的业务又与不同的公司相关联,需要创建多个联盟链,因此就需要创建多个channel,channel是多个特定成员之间以机密交易为目的建立的私网,一个peer可以加入多个channel,每个channel维护自己的账本,账本和账本之间是隔离的,每个channel可以维护一个或多个账本。所以为了满足复杂的交易需求,每个peer上可以安装不同的智能合约,当peer交易完成时,会发送事件通知Client。peer上还有一个Local MSP(成员服务提供器)服务,提供身份认证和加密签名等功能。

Leader Peer和Anchor Peer

Block

block.png

Transaction

transaction.png

World State

WorldState 以key-value的形式,维护着当前账本的当前信息。

WorldState.png

智能合约和链码

智能合约(Smart Contract)是区块链的核心,定义了各个不同组织间的业务规范,创建交易并记录在账本里。多个智能合约可以打包到一个链码中。只有链码(Chaincode)部署之后,智能合约才能被应用使用。

智能合约和账本

智能合约和账本.png

链码的生命周期

链码生命周期.png
  1. 打包 peer chaincode package
    • 链码部署规则(CDS),包含链码的源码、名称、版本
    • 初始化policy,可以指定由谁来实例化
    • 签名,指定链码的所有者 peer chaincode signpackage
  2. 安装 peer chaincode install
    • 安装到peer节点
    • 一个peer可以安装多个链码
    • 必须把链码安装到这个channel所有的背书节点上
  3. 实例化 peer chaincode instantiate
    • 在一个channel上创建并初始化一个链码
    • 设置背书策略(endorsement policy)
  4. 运行 peer chaincode query||peer chaincode invoke
    • 客户端提交交易
    • 智能合约处理交易,更新账本并返回响应
    • 客户端接收响应
  5. 更新 peer chaincode upgrade
    • 链码可以在任何时候通过修改版本进行更新
    • 在更新之前,必须把新版本安装到所有的背书节点上
    • 类似于实例化过程,每次只影响一个channel

系统链码

不同于一般的链码运行在一个独立的容器,系统链码运行在peer进程上,实现了一些系统行为。

Gossip Protocol

Fabric为了优化网络性能,提高安全性和可扩展性,将每个交易分到Endorsing PeerOrding-ServiceCommittting Peer三个部分,这就需要一种安全的,可信的和可扩展的数据传输协议——Gossip Protocol。Gossip传输协议以随机的方式将信息散播到网络中,主要执行三个功能:

Gossip Messaging

私有数据

带私有数据的交易流程

私有数据交易流程.png
  1. 客户端向背书节点(Endorsing Peer)提交一个带私有数据的请求
  2. 背书节点模拟交易执行,并把私有数据存储在临时数据库中,同时通过gossip协议,把私有数据向其它有权限的peers传播
  3. 当传播到指定数量时,背书节点对响应签名并返回给客户端,响应不包含私有数据,只是私有数据的keys和values的哈希
  4. 客户端把响应再提交给排序服务(Ordering-Service)
  5. Ordering-Service把交易信息传递给记账节点(Committing Peer)
  6. Committing Peer对带有私有数据哈希的交易和临时数据库中存储的数据进行验证比较,验证无误后,将私有数据存储到真实的私有数据库中,提交交易和区块到Worldstate中
  7. Committing Peers通知客户端
上一篇 下一篇

猜你喜欢

热点阅读