Create a Business Network Definition
A business network definition has the following layout:
models/ (optional)
lib/
permissions.acl (optional)
package.json
README.md (optional)
The easiest way to create a new business network definition is to either git clone
an example, or to use the Hyperledger Composer Yeoman generator to create a skeleton business network.
README.md
A description of the purpose of the business network using the Markdown mark-up language.
Package.json
A Business Network Definition has a name (limited to basic ASCII alphanumeric characters and -
), a human-readable description and a version number. The version number for the network should take the form Major.Minor.Micro and
Semantic Versioning principles should be used when incrementing the version number.
The identifier of the network is formed from its name, the -
character and its version number. A valid identifier (and example) is therefore mybusinessnetwork-1.0.3
.
The metadata for a business network definition is read from package.json
, meaning that business network definitions may also be valid npm
packages.
Models
The set of domain models for a business network definition define the types that are valid within the network and outside the network when it is integrated with external systems (for example systems that submit transactions to the network).
A domain model may either be packaged within the business network definition (typically stored under the models
directory), or may be declared in package.json
as an external dependency. You refer to models via an npm dependency if you wanted to share them across business network definitions.
Scripts
The scripts for a business network definition are typically stored under the lib
directory and are packaged within the business network definition. The scripts are written in ES 5 JavaScript and refer to the types that are defined in the domain models for the business network.
Permissions.acl
The permissions for the business network expressed are expressed in an optional permissions.acl
file.
Cloning an Example Business Network Definition
The sample business network definitions are stored on GitHub at https://github.com/hyperledger/composer-sample-networks
. You can git clone
this repository to pull down all the sample networks. Each sample network is stored under the packages
directory.
Generating a Business Network Definition
Generation
yo hyperledger-composer
Welcome to the Hyperledger Composer Skeleton Application Generator
? Please select the type of Application: (Use arrow keys)
❯ CLI Application
Angular 2 Application
Skeleton Business Network
And select Skeleton Business Netork
- Answer all of the questions
? Please select the type of Application: Skeleton Business Network
You 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-2
create index.js
create package.json
create README.md
create models/org.example.cto
create .eslintrc.yml
This generates a skeleton business network with an asset
, participant
and transaction
defined, as well as a mocha
unit test.
Also included, is a 'best practice' eslint config file which defines sample linting rules for JS code.