区块链100讲:Hyperledger的Composer和Fabric到底是什么关系?

image

昨天HiBlock区块链社区“超级账本讨论群”的小伙伴们在讨论是用Hyperledger的Fabric更好,还是Composer更方便。有小伙伴提出,在讨论这个之前还是得先了解这两者到底有什么关系。正好社区“技术布道小组”有成员产出了一篇文章,本期《区块链100讲》就借这篇文章来看看Hyperledger的Composer和Fabric到底是什么关系。

总之

Hyperledger Composer是属于Hyperledger下的,包含了开发构架,和工具的开源项目。

团队的目的是为了简化blockchain applications开发过程中,一部分开发过程。

Hyperledger Composer原本是为了抽象出接口,可以和任何区块链网络对联,但目前的开发状况基本上是基于Hyperledger Fabric来实现的。

Hyperledger Composer is an extensive, open development toolset and framework to make developing blockchain applications easier. Our primary goal is to accelerate time to value, and make it easier to integrate your blockchain applications with the existing business systems. You can use Composer to rapidly develop use cases and deploy a blockchain solution in weeks rather than months. Composer allows you to model your business network and integrate existing systems and data with your blockchain applications.

关系

关系图

image

Composer Diagram 图片来自官方网

上面的部分,就是Composer,通过一些脚本(JS的童鞋开心了吧 )语言,来定义需要的内容(参与方,CA,资产,交易等),然后打包成.bna文件,就可以直接部署(到Fabric私有链网络上)了。

至于原本Fabric实现的时候,需要自己实现的区块链读写操作等,Composer都为你实现好了。

栗子

一家房地产商可以这样子模块化(定义)他们的业务:

  • Assets: 房屋,土地等

  • Participants: 买房者,卖房者,中介

  • Transactions: 买,卖等

参与方都根据在交易里的角色,才可以查询和查询相关的交易。
房地产商可以提供一些接口,比如给卖方:公开房源,关闭房源等。

比较

Innovation That Matters(https://blog.selman.org/2017/07/08/getting-started-with-blockchain-development/

It isn’t possible to make a complete apples-to-apples comparison, because the Go version of Marbles includes queries, whereas the Composer version does not, however it is clear that the Composer version is far shorter and includes much less boilerplate code:

  • marbles_chaincode.go : 627 lines

  • Composer marbles-network : 63 lines total, 26 lines (logic), 37 lines (model)

This ±10x reduction in the number of lines of code when Go and Composer solutions are compared is fairly consistent across several samples.

Composer includes several other major features and productivity enhancements:

  • business networks are automatically exposed as OpenAPI (Swagger) REST APIs via the composer-rest-server. The composer-rest-server uses passport.js to support pluggable end-user authentication schemes.

  • Composer includes a declarative Access Control Language, allowing developers to define which participants have access to which assets and under which circumstances. Composer ACLs drastically reduce the amount of procedural access control checks required in business logic.

  • Use the Composer Node-RED nodes to integrate Composer with IoT, analytics, dashboards etc.

  • VSCode extension to validate Composer model, ACL and query files

  • Integrate Composer with industry leading BPM and Integration tools, via OpenAPI and the LoopBack connector

  • Unit test using the Node.js embedded Composer runtime using standard JS tools like Mocha, Chai, Sinon, Istambul etc

  • Develop and test on the web interactively using the Composer Playground, simulating the blockchain in the browser, or connected to a Fabric.

  • Generate skeleton Angular web application from a business network definition

  • Publish and reuse models across business networks

There are of course some advantages to coding in Go to the Fabric APIs directly:

  • follow the absolute latest evolutions in the Fabric APIs and capabilities

  • possibly better raw performance, although for most application chaincode performance is unlikely to be the determining factor

  • type-safety

  • single language for both business logic and model

  • can incorporate third-party C and Go libraries easily

In summary I believe that for 90% of business developers Hyperledger Composer is the right choice to get started with blockchain development. It allows them to focus on the business logic, and avoids a lot of error-prone boilerplate code. They will also benefit from many of the higher-level tools and abstractions that Composer has to offer.

本文作者:HiBlock区块链技术布道群-AmyWu
原文发布于简书
加微信baobaotalk_com,加入技术布道群

以下是我们的社区介绍,欢迎各种合作、交流、学习:)

image

猜你喜欢

转载自blog.csdn.net/hiblock/article/details/80616164