Hyperledger Composer和Hyperledger Fabric有什么区别?

35

我是一位Java开发人员,对Hyperledger比较新。我想学习它并需要知道从哪里开始。Fabric和Composer有什么区别?


首先使用Composer.. 但现在它已被弃用。如果有可用的旧Hyperledger版本,您可以检查一下。 - Vijay
8个回答

60

Hyperledger Composer简化了基于Hyperledger Fabric区块链基础架构的应用程序开发。

如果您对区块链基础架构感兴趣,请从Fabric 教程开始。

如果您对区块链应用程序感兴趣,请从Composer 教程开始。

Fabric教程还包括低级链码开发(使用golang)的示例。Composer是一个更高级别的应用程序开发框架。

我建议尝试两种方法以获得总体功能的概述。

作为Java开发人员,您还需要查看Fabric Java SDK来构建与区块链交互的Java客户端应用程序。从Fabric v1.3开始还提供Java链码。


Composer是否根据业务网络生成Go语言智能合约并在Docker中部署它们?还是使用通用的智能合约来处理所有业务网络?我在YouTube上看到一个视频,提到了通用的链码,让我感到困惑。 - Ashishkel
1
Composer本身作为Fabric上的智能合约运行。 - neuromouse
3
Composer不直接生成'Go'或链码。它使用通用的链码,将composer模型映射到链码表,并在JavaScript解释器中运行事务处理函数。因此,它在自己的运行时环境和链码容器中运行。每个Composer业务网络(即包含智能合约逻辑的网络,使用JavaScript编写并作为业务网络的一部分创建)都部署到自己的Chaincode容器中。 - Paul O'Mahony
我找到了这些教程,介绍如何将Composer区块链业务网络部署到“普通”的Hyperledger Fabric上。我认为单独的Fabric和Composer教程都很有用,但真正能够将它们组合起来的是一个漂亮的架构图,使用两种技术并展示它们之间的“内脏”。作为试图设计整体解决方案的人,我认为这确实是没有得到很好解释的部分。https://hyperledger.github.io/composer/tutorials/deploy-to-fabric-single-org https://hyperledger.github.io/composer/tutorials/deploy-to-fabric-multi-org - anyeone
Java SDK 将在 Fabric 1.3 中提供。 - Bilbo Baggins
显示剩余2条评论

13

更新的答案(如之前的帖子承诺):Hyperledger Composer v0.19.0(撰写时间-2018年4月1日)是使用Composer构建区块链业务网络的默认版本。因此,当您通过npm install等方式拉取HL / Composer时,它会使用当前GA版的Hyperledger Fabric v1.1作为底层区块链网络基础设施。这个0.19.0版本包括了一种基本的变化,即将Composer业务网络部署在Hyperledger Fabric“作为链码”中 - 这意味着业务网络(而不是Composer运行时)可以由所有参与区块链网络的各方协商并签署,使用类似于非Composer链码的管理模型。在以后的版本中,计划添加JS requires,以便可以在NodeJS中利用它们并包括您开发的其他JS函数-当然,您已经可以从Composer事务处理器中调用本机Fabric API /链码函数,这是在0.19.x版之前引入的。在发布说明-> https://github.com/hyperledger/composer/releases/tag/v0.19.0中了解更多信息。


嗨,保罗,你能否详细说明一下你的评论:“它使用通用链码将作曲家模型映射到链码表中,并在JavaScript引擎中运行JavaScript解释器中的事务处理器函数。” - user1274878
嗨,保罗,这里有两个问题。 1.在创建Composer中的业务网络时,如何查看创建的链代码? 2.我从你的陈述中了解到,现在它不再是通用的链代码,写在Composer UI中的业务逻辑被创建为链代码并部署到Fabric中。所以,我认为它正在创建一个JS链代码,请确认。 - Ashishkel
  1. docker exec -it peer0.org1.example.com /bin/bash; cd /var/hyperledger/production/chaincodes; ls
  2. Composer业务网络部署为NodeJS链码。
- Paul O'Mahony

4
超级账本Fabric是一个区块链框架,而Composer是超级账本的一个模块。我建议您从Hyperledger Composer开始学习,因为它有很多优点,例如:
  • 更快地创建区块链应用程序,消除了从头构建区块链应用程序所需的大量工作
  • 经过充分测试,风险较小,易于理解,并能与不同领域相适应
  • 更高的灵活性,因为更高层次的抽象使得迭代更加简单。
Hyperledger Composer是用JavaScript编写的。Composer为您提供一些易于使用的组件,您可以快速学习和实现。
如果想要了解区块链架构和底层过程,请选择超级账本Fabric。这里是一个学习Fabric的好地方:https://github.com/IBM-Blockchain/marbles

2

Hyperledger Fabric: Hyperledger Fabric是Hyperledger框架中的一种。它是一个私有许可的区块链,在构建企业应用程序方面广泛使用。

Hyperledger Composer: 它是Hyperledger框架中的工具之一。该工具的主要目的是在比Hyperledger Fabric框架更短的时间内开发区块链应用程序。

以下是两者之间的主要区别:

  • 使用Hyperledger Composer开发区块链应用程序更加容易和快速。
  • Hyperledger Composer中的链码只能使用javascript编写。
  • Hyperledger Composer是基于Hyperledger Fabric网络构建的,通过连接文件利用其主要组件。

2

如果您知道Hyperledger Fabric是一个框架,Hyperledger Composer是构建区块链业务网络的工具,那么它将帮助您入门。

Composer提供了GUI用户界面“Playground”来创建应用程序,因此是Proof of Concept工作的绝佳起点。


2

截至2019年8月29日,Hyperledger Composer项目已经被弃用。您仍然可以使用它,但是为了未来考虑,最好从fabric文档开始。现在,fabric教程得到了很大的改进。


1
Hyperledger Composer是一个框架,用于在Hyperledger Fabric区块链上部署业务网络。您甚至可以在Fabric上部署应用程序(使用Golang或Node编写的链码),但Composer只是简化了这个过程。在Composer中,您的网络中有参与者、资产,然后定义您要执行的交易。您可以查看Composer教程https://hyperledger.github.io/composer/latest/tutorials/tutorials.html

0

为了开发生产就绪的应用程序,Composer不是最佳选择,因为它缺乏使用“本地”基于Go的智能合约提供的完整功能集。还要注意,否则它就毫无用处,Composer需要通过运行基于fabric的区块链网络来备份。使用Web UI管理的Composer操作并不在任何区块链中编写,而是在内存中。

这些是Composer和Fabric之间的主要区别,因此Composer绝对是构建模型,进行PoC等的绝佳工具。


4
在Composer Playground中使用Web浏览器配置文件,例如托管的playground http://composer-playground.mybluemix.net/,确实将所有内容写入本地存储,非常适合检查Composer可以提供什么。但是,一旦您在本地安装Playground并将其与Hyperledger Fabric连接,一切都将在区块链上完成。此外,还有VSCode和Atom插件以及广泛、熟悉和开放的工具集可供使用,当您超越Playground时也同样适用。Composer是构建模型、PoC等以及完整规模的区块链解决方案的绝佳工具。 - James Taylor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接