Hyperledger Fabric(一)- 基本概念与名词解释


一、 Hyperledger

Hyperledger超级账本为Linux基金会主办的开源合作项目 , 旨在推进跨行业区块链技术。它是一个全球的合作项目, 领导者来自包括金融、银行、物联网、供应链、制造和技术领域。

Hyperledger 下管理着多个区块链框架,简介如下:

  • Hyperledger Sawtooth
    Hyperledger Sawtooth 是一个模块化平台,用以创建、部署和运行分布式账本。Hyperledger Sawtooth包含诺韦尔共识算法,计时验证(PoET), 它针对的是以最小的资源消耗处理大量的分布式验证器。
  • Hyperledger Iroha
    Hyperledger Iroha 是一个业务区块链框架,用于简单和容易地并入需要分布式账本技术的基础设施项目。
  • Hyperledger Fabric
    Hyperledger Fabric目标是成为开发应用和解决方案的基础,设计为模块化架构,允许组件如共识和成员服务模块,可以插入即用。
  • Hyperledger Burrow
    Hyperledger Burrow 是一个可以许可的智能合同机。Burrow发布于2014年12月,首次提供了一个模块化的、带经过许可的智能合约解释器的区块链客户端,它采用了部分以太坊虚拟机(EVM)的技术规范。
  • Hyperledger Indy
    Hyperledger Indy 提供了工具、程序库和可重复使用的组件,用于提供基于区块链或者其它分布式账本的数字身份,从而让它们跨管理域、跨应用和其他silo进行互操作。

二、 Hyperledger Fabric

以下内容参考自Hyperledger Architecture Explained。在了解区块链或者接触过以太坊的基础上可以加深对fabric的理解,也可以在实践学习后再回头进行概念的梳理。

2.1 基本概念

区块链(blockchain)是一个分布式系统,由许多相互通信的节点组成。区块链运行的程序称为链码(chaincode),保存状态(state)和账本数据(ledger data)、执行交易(transaction)。链码是核心要素,交易操作在链码上调用。交易必须被“背书(endored)”,只有经过背书的交易才可以提交,并对状态产生影响。有可能存在一个或多个特定的链码用于管理功能和参数,统称为系统链码。

Hyperledger Fabric是一个提供分布式账本解决方案的平台。Hyperledger Fabric由模块化架构支撑,并具备极佳的保密性、可伸缩性、灵活性和可扩展性。Hyperledger Fabric被设计成支持不同的模块组件直接拔插启用,并能适应在经济生态系统中错综复杂的各种场景。

2.2 名词解释

2.2.1 交易(Transaction)

交易可以理解成链码执行的操作(chaincode),分为以下两种交易,其中部署交易时调用交易的特例:

  • 部署交易(deploy trasaction)
    创建新的链码并设置一个程序作为参数。当一个部署交易执行成功,表明链码已被安装到区块链上。

  • 调用交易(invoke transaction)
    是在之前已部署链码的情况下执行一个操作。调用交易引用链码提供的一个函数。当成功时,链码执行特定的函数-它可能涉及修改相应的状态,并返回一个输出。

2.2.2 状态(State)

区块链的状态被建模为一个版本键/值存储(KVS key/value store),键的名称和值可以是任意的。整体上由运行在区块链上的链码进行操作,通过存和取KVS操作实现。

2.2.3 账本(Ledger)

账本提供了在系统运行过程中发生的可验证历史,它包含所有成功的状态更改(有效交易)和不成功的状态更改尝试(无效交易)。

账本是由排序服务(ordering service)构建的一个全部有序的交易哈希链块(有效的或无效的)。哈希链强制将全部排序块置入账本,每个块包含一批全部排序交易。这个强制全部排序覆盖所有交易。

每个peer节点都保存有账本,而orderer节点负责实现容错。

2.2.4 节点(Node)

节点类型分为三种:

  • 客户端(client)或者提交客户端(submitting-client)
    客户端代表最终用户实体,必须连接到一个peer节点以便与区块链交互。客户端可以选择连接任何peer节点,并进行交易。

  • peer节点
    可以提交交易、维持状态和账本的拷贝。此外,peer节点可以有一个特殊的背书角色。

  • ordering-service-node或orderer节点
    实现交付保证,进行全序广播(即共识)。
    排序服务(ordering service)为客户端和peer节点提供共享的channel,为包含交易的消息提供广播服务。客户端连接到channel,可以在channel上广播消息,随后channel将消息传递给所有peer节点。

2.2.5 链码(Chaincode)

fabric用go语言实现链码,实现对peer节点的操作,也即是智能合约。

2.2.6 Fabric-ca

Fabric-ca是默认的证书管理组件,它向网络成员及其用户颁发基于PKI的证书。CA为每个成员颁发一个根证书(rootCert),为每个授权用户颁发一个注册证书(eCert),为每个注册证书颁发大量交易证书(tCerts)。


三、 参考链接

  1. Hyperledger
  2. Hyperledger Architecture Explained

你可能感兴趣的:(Fabric)