Hyperledger Composer
可能会有一些不完善或错误的地方,如果发现了请指出,谢谢!
Blockchain State Storage
交易通过 business network 存储到 blockchain ledger
当前的资产状态和参与者被存储到 blockchain state database
blockchain 分布式的账本和 state database 通过 一套 peers 来确保 ledger 的更新 和 state database 通过所有 peers的同一个共识算法来保持一致性
Connection Profiles
Hyperledger Composer 用 Connection Profiles 来连接一个 runtime.
Connection Profile 是一个JSON 文档,在 user’s home 目录下,也可能是一个环境变量。
Assets
Assets 可以是实物 也可以是与无形的事物,服务或者属性。在登记的时候被存储。
Assets 有一个唯一的 identifier, 它们可以包含任何你想定义的属性。
Assets 可能与另一份 assets 或 参与者有联系。
Participants
参与者是一些商业网络。他们可能拥有自己的资产和提交的交易。
参与者类型是一个模型,像 assets 必须有一个 idetifier 并且能够有任何被需要的其它属性。
Transactions
transactions 是一个通过参与者资产交互的机制
这可以像参与者对拍卖中的资产进行投标,或拍卖商标记拍卖结束一样简单,自动将资产所有权转让给最高出价人。
Events
Events 在 business network 中以资产和参与者的相同的定义方式被定义。
一旦 events 已经被定义,他们可以通过 transaction 处理函数来发出,来向外部系统指示账本已经发生了一个重要的事情。
应用可以通过 composer-client API 来描述发出的事件
Access Control
Business networks 可能包含一套 access control 规则
访问控制规则允许对参与者有权访问 business networks 中的资产以及在什么条件下进行细粒度的控制。
访问控制语言足够丰富,可以声明地捕获复杂的条件,例如“只有车辆的所有者可以转移车辆的所有权”。 从事务处理器功能逻辑外部化访问控制使得检查,调试,开发和维护更容易。
Hyperledger Composer 被实现通过 high-level 部分:
- Execution Runtimes (four are currently supported!)
- JavaScript SDK
- Command Line Interface
- REST Server
- LoopBack Connector
- Playground Web User Interface
- Yeoman code generator
- VSCode and Atom editor plugins
Execution Runtimes
- Hyperledger Fabric v0.6
- Hyperledger Fabric v1.0
- Web ,在一个 web 页面中执行,通过 Playground 来用。状态被存储在本地浏览器
- Embeded, 通过 Node.js 进程执行,状态以 key-value 的形式被存储在内存中
Connection Profiles
Connection Profiles 被用来连接 Hyperledger Composer 以指定怎样连接执行 runtime.
每种类型的 execution runtime 都有一个不同的配置选项
举个例子:一个 Hyperledger Fabric v1.0 runtime 的 Connection Profile 将会包含 Fabric peers 的 TCP/IP 地址和端口号还有 cryptographic certificates 等
JavaScript SDK
Hyperledger Composer JavaScript SDK是一组Node.js API,使开发人员能够创建应用程序来管理和与部署的业务网络进行交互。
APIs 分两个模块
- composer-client: 用于提交 transactions 到 business network 或
- conposer-admin: 用于管理 business networks (deploy, undeploy)
所有 APIs 的详细信息可用作 JSDocs (请查阅参考)
composer-client
该模块通常将作为应用程序的本地依赖来安装。 它提供 business applications 的 APIs 用于连接到 business networks 以访问 assets,participants 和 提交 transactions。 在生产环境中,这只是需要作为应用程序的直接依赖关系添加的模块。
composer-admin
该模块通常将作为管理应用程序的本地依赖来安装。 该API允许创建和部署业务网络定义。
Command Line Interface
composer 命令行工具使开发人员和管理员能够部署和管理 business network 定义。
REST Server
Hyperledger Composer REST Server 自动为 business network 生成一个Open API(Swagger)REST API。 REST Server(基于LoopBack技术)将 business network 的Composer 模型转换为 Open API 定义,并在 runtime 实现对 assets 和 participants 的创建(create),读取(read),更新(update)和删除(delete)支持,并允许提交(submitted)交易(transactions)以进行处理(processing)或检索(retireved)。
LoopBack Connector
Composer REST Server使用Hyperledger Composer LoopBack连接器,但也可以通过本地支持LoopBack的集成工具独立使用。 或者,它可以与LoopBack工具一起使用来创建REST API的更复杂的自定义。
Playground Web User Interface
Hyperledger Composer Playground是一个用于界定和测试 business networks 的Web用户界面。 它允许 business 分析人员快速导入在 Web 或 Hyperledger Fabric runtime 执行的样本(sample)和原型业务逻辑(prototype business logic)。
Domain Model
Note: You can add as many model files as convenient under the models folder, however each model file must have a unique namespace and you can import types from one namespace into other namespaces.
Yeoman Code Generators
Hyperledger Composer 使用 Open Source Yeoman 代码生成器框架来创建框架(skeleton)项目:
- Angular web application
- Node.js application
- Skeleton business network
VSCode and Atom Editor Extensions
Hyperledger Composer有VSCode和Atom的社区贡献编辑器扩展。 VSCode扩展非常强大,并验证了 Composer 模型和 ACL 文件,提供语法高亮显示,错误检测和片段支持。 Atom插件更简单,只有基本的语法高亮显示。
参考
- LookBack 是一个可扩展的开源 Node.js 框架 https://loopback.io/doc/zh/lb2/