Hyperledger Composer之开发部署业务网络

playground方式
这个方式适合业务人员/开发人员快速测试开发业务网络,它提供图形化界面操作,可以直观的操作资产/参与者以及提交交易。安装这个环境很简单。如果要部署到正式环境,请先导出.bna文件,然后参考方式一中的部署到区块链上的操作。我的操作系统是ubuntu16.04。
要求
Docker Engine >= 17.03
Docker Compose >= 1.8

安装注意: 先关闭其他fabric网络,防止冲突。

选择一个安装目录执行面命令:
curl -sSL https://hyperledger.github.io/composer/install-hlfv1.sh | bash
// 在当前目录下 会多出一个composer-data文件夹,一个composer.sh脚本
├── composer-data
├── composer.sh
└── …
它会自动执行:
下载fabric相关镜像
启动fabric网络
生成composer配置文件
下载composer playground镜像
启动composer playground
把预先准备的admin证书材料复制到composer里面
image.png
基本操作
开启composer:
/composer
关闭composer:
./composer stop

部署业务网络
它会部署到自带的fabric测试网络上
image.png
测试业务网络
我们使用composer playground自带的basic-sample-network来演示。这个业务网络定义了:SampleParticipant 参与者,SampleAsset 资产,SampleTransaction 交易,SampleEvent 事件。创建资产,参与者是通过点击右侧+create 按钮,输入json格式化数据,然后提交即可。
创建两个参与者,id分别为A和B
{
“$class”: “org.acme.sample.SampleParticipant”,
“participantId”: “A”,
“firstName”: “zhang”,
“lastName”: “san”
}
{
“$class”: “org.acme.sample.SampleParticipant”,
“participantId”: “B”,
“firstName”: “li”,
“lastName”: “si”
}
image.pngimage.png
创建一个归属于A的资产
{
“$class”: “org.acme.sample.SampleAsset”,
“assetId”: “1”,
“owner”: “resource:org.acme.sample.SampleParticipant#A”,
“value”: “”
}
结果:
image.png
修改资产值( 执行事务)
{
“$class”: “org.acme.sample.SampleTransaction”,
“asset”: “resource:org.acme.sample.SampleAsset#1”,
“newValue”: “1000”
}
image.png
执行完毕后 再次查看SampleAsset:
image.png
测试权限控制
查看权限定义规则
permissions.acl
/**

  • Sample access control list.
    */
    //任何人都有读取权限
    rule EverybodyCanReadEverything {
description: "Allow all participants read access to all resources"
participant: "org.acme.sample.SampleParticipant"
operation: READ
resource: "org.acme.sample.*"
action: ALLOW

}
//任何人都可以提交交易
rule EverybodyCanSubmitTransactions {

description: "Allow all participants to submit transactions"
participant: "org.acme.sample.SampleParticipant"
operation: CREATE
resource: "org.acme.sample.SampleTransaction"
action: ALLOW

}