昨天HiBlock区块链社区“超级帐本讨论群”的小伙伴们在讨论是用Hyperledger的Fabric更好,仍是Composer更方便。有小伙伴提出,在讨论这个以前仍是得先了解这二者到底有什么关系。正好社区“技术布道小组”有成员产出了一篇文章,本期《区块链100讲》就借这篇文章来看看Hyperledger的Composer和Fabric究竟是什么关系。node
总之web
Hyperledger Composer是属于Hyperledger下的,包含了开发构架,和工具的开源项目。api
团队的目的是为了简化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.app
关系composer
关系图less
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,加入技术布道群
活动推荐
扫描下图中二维码或点击“阅读原文”便可报名参加