创建一个业务网络定义
业务网络定义具有以下布局:
models/ (optional)lib/permissions.acl (optional)package.jsonREADME.md (optional)
创建新的业务网络定义的最简单的方法是git clone范例,或者使用Hyperledger Composer Yeoman生成器来创建骨架业务网络。
README.md
使用Markdown标记语言描述业务网络的意图。
Package.json
业务网络定义有一个名称(仅限于基本的ASCII字母数字字符和-)、一个可读的描述和一个版本号。网络的版本号应采用Major.Minor.Micro形式 ,增加版本号时应使用Semantic Versioning原则。
网络的标识符由其名称、-字符和版本号组成。一个有效的标识符(和例子)类似于mybusinessnetwork-1.0.3。
业务网络定义的元数据从package.json中读取,这意味着业务网络定义也是有效的npm包。
模型
业务网络定义的领域模型集定义了用于网络内的有效类型,和用于与外部系统(例如,向网络提交交易的系统)集成的有效类型。
领域模型可以打包在业务网络定义中(通常存储在models目录下),也可以在package.json中声明为外部依赖。如果您想跨业务网络定义共享模型,则可以通过npm依赖引用模型。
脚本
业务网络定义的脚本通常存储在lib目录下,并打包在业务网络定义中。这些脚本是用ES 5 JavaScript编写的,并引用在业务网络的域模型中定义的类型。
Permissions.acl
表示的业务网络的权限表示在一个可选permissions.acl文件中。
克隆一个示例业务网络定义
示例业务网络定义存储在GitHub上https://github.com/hyperledger/composer-sample-networks。你可以通过git clone这个存储库来拉取所有的示例网络。每个示例网络都存储在packages目录下。
生成业务网络定义
生成
1.yo hyperledger-composer
Welcome to the Hyperledger Composer Skeleton Application Generator? Please select the type of Application: (Use arrow keys)❯ CLI ApplicationAngular 2 ApplicationSkeleton Business Network
并选择 Skeleton Business Netork
2.回答所有的问题
? Please select the type of Application: Skeleton Business NetworkYou can run this generator using: 'yo hyperledger-composer:businessnetwork'Welcome to the business network skeleton generator? Do you only want to generate a model? Yes? What is the business network's name? mynetwork? What is the business network's namespace? org.example? Describe the business network This is my test network? Who is the author? Dan Selman? Which license do you want to use? Apache-2create index.jscreate package.jsoncreate README.mdcreate models/org.example.ctocreate .eslintrc.yml
这产生了骨架业务网络与asset、participant和transaction定义,以及一个mocha单元测试。
还包括一个“最佳实践”eslint配置文件,它定义了JS代码的示例linting 规则。
