49

区块链基础知识:Hyperledger Fabric 和 Hyperledger Composer

 5 years ago
source link: http://www.ibm.com/developerworks/cn/cloud/library/cl-blockchain-hyperledger-fabric-hyperledger-composer-compared/index.html?ca=drs-&%3Butm_source=tuicool&%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

区块链技术为创新提供了大量机会。它通过从根本上改变业务交易的完成方式,从而有能力进行业务变革。

开发人员若想开始为区块链网络开发代码,最佳方式是什么?我建议从扎实掌握以下两大开源 Hyperledger 项目开始:Hyperledger Fabric 和 Hyperledger Composer。这两者的名称很相似,而了解两者之间的差异正是着手区块链开发的关键所在。

剧透警告:这两者均为开源 Hyperledger 项目。一个是超酷的开发工具,另一个是强大的企业区块链网络引擎。

只需单击即可启动功能完善的区块链网络

使用 Hyperledger Composer 按本文所述为您的网络建模,然后将其部署到 IBM Blockchain Platform。Starter Plan 可帮助您快速入门!

试用全新的 Starter Plan

这两个项目都属于 Hyperledger 项目。Hyperledger 是一个开源协作项目,旨在完善跨行业区块链技术,进而实现商业用途。它是通过全球协作实现的,由 Linux 基金会托管。

Hyperledger 项目 包括区块链框架(例如,Hyperledger Fabric)和相关开发人员工具(例如,Hyperledger Composer),可简化区块链网络和应用的创建过程。

Hyperledger Fabric 是什么?

Hyperledger Fabric 是一种面向私有许可业务网络的开源框架实现,网络中的成员彼此知晓对方的身份和角色。它旨在作为解决方案的开发基础,拥有模块化的架构。它支持组件即插即用,比如账本数据库、共识机制和成员服务。它利用容器技术,并提供可供企业随时使用的网络安全性、可扩展性和保密性功能。

每个 Hyperledger Fabric 网络都具有以下组件:

  • 资产 。资产是任何具有价值的事物。资产具有状态和所有权。在 Hyperledger Fabric 中,资产以键/值对集合的形式来表示。
  • 共享账本 。账本负责记录资产的状态和所有权。账本包含以下两个组件:
    • 世界状态 描述了在给定时间点的账本状态。它是账本数据库。
    • 区块链 是记录所有交易的交易日志历史记录。
  • 智能合约 。Hyperledger Fabric 智能合约称为 链码 。链码是定义资产和相关交易的软件;换言之,它包含系统的业务逻辑。当应用需要与账本进行交互时,即调用链码。可使用 Golang 或 Node.js 来编写链码。
  • 对等节点 。由于对等节点负责托管账本和智能合约,因此它们是网络的基本要素。对等节点可执行链码,访问账本数据、进行交易背书以及与应用进行交互。某些对等节点可作为 背书对等节点 或背书者。每个链码均可指定一项背书策略,用于为有效的交易背书定义必要且充分的条件。
  • 渠道 。渠道是由对等节点集合组成的一种逻辑结构。该功能支持一组对等节点创建独立的交易账本。
  • 组织 :Hyperledger Fabric 网络是根据属于网络成员的不同组织所拥有并贡献的对等节点而构建的。正是由于组织将各自的资源贡献给集体网络,网络才会存在。对等节点具有的身份( 数字证书 ),是由其所属组织的成员资格服务提供者所分配的。不同组织的对等节点可位于相同渠道上。
  • 成员资格服务提供者 (MSP) 。MSP 是作为 认证中心 实施的,负责管理用于对成员身份和角色进行认证的证书。在 Hyperledger Fabric 网络中,身份未知就无法参与交易。它负责管理用户 ID,并对网络上的所有参与方进行认证,使 Hyperledger Fabric 能够作为私有许可网络来运行。
  • 订购服务 。订购服务将交易打包到区块中,以便交付至渠道上的对等节点。它负责保证网络中交易的正常交付。它可与对等节点和背书对等节点进行通信。支持的订购服务配置机制包括 Solo 和 Kafka。

图 1. Hyperledger Fabric 网络的组件(为简便起见,不显示渠道)

fMBbymV.png!web

fMBbymV.png!web

区块链解决方案的运作方式

在区块链解决方案中,Hyperledger Fabric 网络充当后端,通过应用前端与网络进行通信。SDK 可帮助设置前端与后端之间的通信,例如,Nodejs SDK 和 Java SDK。SDK 为执行用户链码、在网络中履行交易、监控事件等提供了途径。

要编写区块链应用,就需要:

  1. 使用支持的编程语言(如 Go)编写链码。
  2. 在 Hyperledger Fabric 网络上部署链码。
  3. 使用 SDK 开发客户端应用。

区块链交易的执行方式

在 Hyperledger Fabric 网络中,交易的高级请求流程如下所示:

  1. 客户端使用 Nodejs 或 Java SDK 连接至 Hyperledger Fabric 网络。客户端通过使用 SDK API 创建交易,并将其发送至背书对等节点。
  2. 背书对等节点对客户端签名进行认证,模拟交易,并发送背书签名。
  3. 如果交易得到背书,那么客户端会向订购服务提交此交易。否则,交易将被取消。
  4. 订购服务将交易交付至对等节点。所有对等节点都会落实并应用相同的交易顺序,同时更新其状态。

Hyperledger Composer 是什么?

Hyperledger Composer 是一组基于 JavaScript 的工具,可简化并加速 Hyperledger Fabric 区块链应用的创建过程。通过使用 Hyperledger Composer,业务所有者和开发人员可以快速创建链码(业务逻辑)和区块链应用。您将为自己的网络生成业务网络档案 (.BNA) 文件,而无需使用 Golang 编写链码,如下所述。

Hyperledger Composer 包含以下组件:

  1. 业务网络档案
  2. Hyperledger Composer Playground
  3. REST API 支持

业务网络档案

Hyperledger Composer 有助于为当前的业务网络建模,包括现有资产和与之相关的交易。要生成业务网络定义,Hyperledger Composer 需要一个网络模型文件、JavaScript 文件 (.js)、访问控制文件 (.acl) 和查询文件 (.qry)。

  • 网络模型文件 (.cto) 。作为业务网络模型的一部分,您还要定义资产以及能与这些资产交互的交易和参与方。此模型文件包含资产、参与方和交易的定义。
  • JavaScript 文件 (.js) 。此文件用于定义交易函数。
  • ACL 文件 (.acl)。此文件包含访问控制规则,用于定义业务网络中不同参与方的权利。
  • 查询文件 (.qry)。此文件用于定义可在网络中运行的查询。

通过使用这些文件,Hyperledger Composer 可创建业务网络定义,此定义可打包并作为一个归档导出。导出的归档文件即业务网络档案 (.bna) 文件,您可将其部署到现有 Hyperledger Fabric 网络上。此 BNA 文件包含可执行的交易处理器函数,可将其视为使用 JavaScript 编写的智能合约。您可以使用 Hyperledger Composer API 来编写客户端应用以访问 BNA 函数。

图 2. 可部署到网络上并可供应用访问的业务网络定义组件

RBzIRzR.png!web

RBzIRzR.png!web

Hyperledger Composer Playground

Hyperledger Composer 还可提供基于 Web 的用户界面“Playground”,您可将其用于对自己的业务网络进行建模和测试。Playground 使用浏览器的本地存储来模拟区块链网络的状态存储。由于它无需正在运行的区块链网络,因此是概念证明的极佳起点。

REST API 支持

Hyperledger Composer 还会基于业务网络定义使用 LoopBack 接口生成 REST API。这些 REST API 便于客户端应用使用,还可与非区块链应用相集成。

小结

简而言之,Hyperledger Composer 是基于 Hyperledger Fabric 构建区块链应用的应用开发框架。换言之,Hyperledger Composer 可帮助您创建业务网络定义,以便部署到 Hyperledger Fabric 并在其中运行这些定义。

Hyperledger Composer 的优势在于它提供了高级抽象层,可用于对业务网络进行建模、为交易编写 JavaScript 函数,并将这些函数作为 REST API 公开,用于客户端应用开发。由于只需少量编程工作,非应用开发人员的业务所有者也可以为区块链网络轻松建模和编写交易函数。

后续行动

  • 阅读 Steve Perry 编写的 Hyperledger Composer 基础知识 这一系列热门文章,深入了解如何使用 Hyperledger Composer 从头开始创建业务网络。 
  • 试用全新的 IBM Blockchain Starter Membership Plan 。它为您开始使用区块链网络提供了一条经济实惠的途径,您可在此轻松部署和测试样本区块链应用。您还可以部署自己按本文所述使用 Hyperledger Composer 创建的业务网络模型,通过 Starter Plan 运行这些模型。 
  • 查阅许多 Code Pattern ,它们为解决区块链技术中遇到的复杂问题提供了路线图,还包括架构图、代码存储库和其他阅读材料。 
  • 访问 区块链开发人员中心 。可以在这里获得开发和部署商业区块链解决方案的免费工具和教程,以及代码和社区支持。

了解更多信息


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK