上一篇我们讲解了在Linux环境下安装和运行Hyperledger Composer,对这玩意有个大概的印象。本篇我们会了解下Hyperledger Composer的组件,以及内部设计。
Composer架构介绍
首先我们先看一下官方网站放出的一张示意图:
Composer-Diagram.png很明显可以看出,Hyperledger对这个项目的定位是Fabric的上层,由Composer创建出Model File(.cto文件), Script File(.js文件), ACL(.acl文件), Query File(.qry文件)等等,进行打包成一个商业网络文件(.bna文件),发布到Fabric网络中。
它的作用很明显,就是加快Fabric项目的开发和部署的一个官方工具。在使用前需要先对商业模型进行快速建模。比如一个买卖房屋的商业模型如下:
- Assets(资产): 房屋清单
- Participants(参与者): 购买人和屋主
- Transactions(交易过程): 完成买卖房屋,结算清单
参与者可以访问交易数据,但是受限于他们的角色。房屋中介可以创建一个应用程序,为买卖双方提供一个简单的用户接口,看到交易的过程。商业网络也可以集成已有的库存系统,完成房屋资产的转移。另外其他相关的角色都可以注册加入到这个网络成为参与者,比如土地局可能会参与到交易中,完成土地所有权转移。
Composer关键概念
Composer是一个编程模型,包含一种建模语言,以及一组API,用于快速建网和应用程序,允许参与者发起交易,转移资产(Assets)。
Composer提供了两套组件,一个基于浏览器的UI Playgroud,用于演示和展示本地Fabric网络。此外还提供一套开发工具集,为开发者提供便利的开发框架。
Blockchain State Storage
这里就是区块链的概念了,交易历史和资产都会直接保存在区块链上,用区块链做存储。
Connection Profiles
就是一组JSON配置文件,Composer通过这组被称为Connection Profiles配置文件,定义了应该连接到哪个系统上。Connection Profile通常需要由系统创建者提供,定义了各种网络连接参数。
Assets
这里的资产(Assets)可以指代任何有型的和无形的资产,可以上链的一切可交易的商品,都可以作为资产。
Assets必须有唯一标识符,此外,还可以添加一些额外的信息,用于关联其他资产或者参与者等等。
Participants
参与者(Participants)是商业网络的成员,可以拥有资产或发起交易。参与者也是模型化的,跟资产一样,必须有唯一的标识符,此外也可以包含其他可选属性。一个参与者可以有一个或多个身份。
Identities
对应Fabric的PKI认证的概念,通过密钥确认用户身份的。
Business Network cards
Business Network cards就是一个Identitie,一个connection profile,以及元数据的组合,元数据包含一个可选的连接到商业网络名称。Business Network cards简化了连接商业网络的过程。
Transactions
交易,可以抽象为资产转移的过程。
Queries
查询返回的是区块链当中的数据。只需要定义好商业网络,以及相关的变量,就可以轻松的利用Composer API从区块链网络中提取所需数据。
Events
事件是在商业网络中定义的,就跟定义资产或参与者同样的方式。定义事件之后,就可以通过交易处理函数触发。应用程序可以通过composer-client
API订阅这些事件。
Access Control
商业网络可以包含一组访问控制规则。访问控制规则允许细粒度控制什么角色在什么条件下有什么样的权限控制什么资产。
Historian registry
historian是专门用于成功交易记录的,包含了发起交易的参与者和身份信息。historian将交易保存为HistorianRecord
资产,定义在 Composer系统的namespace中。
小结
本篇我们总结了下Composer的一些基础概念,后面这些概念将用于Composer的开发过程中。后续将进一步介绍Composer的大致工作流,用Composer开发的时候是一个怎样的流程。
网友评论