Hyperledger-composer的使用逻辑

本文重要描述使用hyperledger-composer开发基于fabric的商业网络(chaincode)的逻辑,对于fabric网络的搭建只进行简略的描述

架构图

Hyperledger-composer的架构图

1. 创建business network


 导入business network的参考实例,在其上进行定制化的改写。

.通过下面的命令引入基本的样板,其中包含了model,participant,transaction,ACL,以及附加于transaction之上的回调函数

git clone https://github.com/hyperledger/composer-sample-networks.git

解压后进入下面的目录

➜  composer-sample-networks git:(master) ls

LICENSE      README.md    lerna.json  node_modules package.json packages    scripts

➜  composer-sample-networks git:(master) cd packages

➜  packages git:(master) ls

animaltracking-network    bond-network              digitalproperty-network  perishable-network

basic-sample-network      carauction-network        marbles-network          vehicle-lifecycle-network

以basic-sample-network为例查看如何定制化自身的商业网络

➜  basic-sample-network git:(master) ls

README.md      dist            header.txt      jsdoc.conf              logs            node_modules    permissions.acl  config          features        index.js        lib            models          package.json    test

其中我们需要修改的文件主要有package.json(项目的启动测试命令,名称,依赖环境等),permissions.acl(CURD权限的限定),models/sample.cto(asset定义,asset操作者的定义,asset操作动作的定义(如交易)),lib/sample.js(asset操作动作执行之后需要执行的操作,类似回调函数)。

单元测试3中生成,修改后的商业网络逻辑

首先下载依赖库

➜  basic-sample-network git:(master) cnpm install

执行测试逻辑

➜  basic-sample-network git:(master) npm test

得到全部passing则为测试成功

打包上文中构建的商业网络

basic-sample-networkgit:(mastercomposer archive create -a dist/simple-network.bna--sourceType dir --sourceName .

distgit:(masterls

basic-sample-network.bna 

此文件即为生成的商业网络文件,包含了上述的各种配置

2. 构建测试环境


此时有两种选择,一种选择本地化部署local-play-ground,另一种选择为使用online-play-ground来进行部署测试. 具体的部署请参考蓝色的链接。

如下图所示,点击左下角的红圈,将上一步骤产生的bna文件进行导入。

play-ground示意图

导入后的结果如下图所示,可以看到我们之前主要定义的文件都在左侧有所显示。如果要进行测试,请点击Test按钮,可以进行模拟的测试。

导入模板后的play-ground示意图

最后需要说明的是,如果使用online-play-ground的话,所有的运行默认是跑在浏览器的内存中。在local-play-ground中,可以选择跑在浏览器的内存之中,也可以实际链接到某个区块链网络之中。如下图所示,通过点击右上角圆圈所示的按钮,进入到配置链接网络界面,左边方形按钮中列举了所有可用的fabric网络(web browser为在浏览器中模拟运行,hlfabric为导入的本地区块链网络),现在我们选择的是hlfabric的网络。在中间菱形的部分即为我们现在链接fabric网络的属性,包含order地址,MSPID,ca地址等等的信息。 如果要导入新的网络,左侧红色方框下方进行操作即可(导入什么?请看这里connection profile

3. 启动本Fabric网络以及composer相关工具的安装

如何启动本地fabric网络,不是本文的重点,请参见下面的链接

https://hyperledger.github.io/composer/installing/development-tools.html

在部署之前,我们需要安装composer给我们提供的一些依赖包,从而方便的通过SDK与fabric网络进行交互

安装composer-cli

cnpm install -g composer-cli

包含了所有通过命令行进行商业网络构建的指令

安装generator-hyperledger-composer

cnpm install -g generator-hyperleger-composer

其实一个yoeman的插件,通过这个插件可以快速构造基于Rest的调用

安装composer-rest-server

cnpm install -g composer-rest-server

基于loopback的插件,基于其可以快速构建对于商业网络中model的rest格式调用,并以web页面的形式呈现

安装yoeman文件

cnpm install -g yo

其是一个能够快速生成application的工具(如angular),和generator-hyperledger-composer进行结合使用能够使得生成的application和商业网络进行交互。

4. 部署到Fabric网络之中


部署

测试完毕,Fabric网络搭建完毕以后,我们接下来要做的就是将我们的商业网络部署到其之上。

distgit:(mastercomposer network deploy -a my-network.bna -p hlfv1 -i admin -s adminpw

其中my-network.bna是我们在步骤1中创建的商业网络定义文件,hlfv1为我们在步骤3中创建的fabric本地网络,利用其生成的connection profile连接。

部署完毕后出现以下的内容表示成功

✔ Deploying business network definition. This may take a minute...

Command succeeded

5. 与部署到Fabric网络之中的商业逻辑(Chaincode)进行交互


在进行这一步之前,我们再来看一个逻辑图

hyperledger-composer项目示意图

通过这图我们可以看出,我们利用前端的restAPI接口调用中间层(play grouand等),然后中间层利用SDK与后端真实的Fabric网络进行交互。我们接下来解决的就是建立Restful接口,SDK会在相应的程序中自动加载。

1.  方案1建立angular前端应用以及Rest Server进行连接

basic-sample-networkgit:(masteryo hyperledger-composer


2.  只利用Rest-server

basic-sample-networkgit:(mastercomposer-rest-server

basic-sample-networkgit:(master

composer-rest-server

参考:https://hyperledger.github.io/composer/tutorials/developer-guide.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容