2019-06-20

HyperLedger Fabric 入门实例

参考自官方文档 :HyperLedger Fabric 入门实例

准备事项

  1. 下载 fabric-samples 项目,所有的应用代码都在 github 上获取到。Hyperledger-Samples
  2. 下载 hyperledger-samples 的docker镜像,使用官网提供的命令:(需要事先安装 docker 和 curl 和 npm 等工具)

curl -sSL http://bit.ly/2ysbOFE | bash -s -- 1.4.1 1.4.1 0.4.15

这个 curl 访问不到这个地址,所以我直接把地址的 bash 脚本考到本地的新建 bash 文件中,然后直接执行,可以成功,但是下载文件的速度太慢。
然后直接把下载文件的地址放到window浏览器中直接把压缩包文件下载下来,再考到虚拟机中,得到对应的bin和config文件。


下载后的文件目录结构

解压压缩包文件,得到bin和config目录,把这两个目录 export 到 path 中, 后面需要用到这两个文件夹中的命令

export PATH=<path to download location>/bin:$PATH

(注意 : docker运行的是 root 用户还是当前用户,可能会导致export环境变量后,还是找不到目录中的命令)

启动网络

准备事项完成后,就可以开始搭建 Hyperledger Fabric 网络,并进行应用的交互了。
进入从 github 上下载的 fabric-samples 目录,进去 fabcar 目录,执行以下命令,启动网络:

sudo ./startFabric.sh javascript

可以看到这个命令,为我们下载了网络所需的peer节点,orderer排序节点,ca证书机构节点等,都是放在各自的 docker 镜像中,下载成功,应该能显示以下的界面:


脚本运行效果图

网络开启成功后,部署应用,进行和网络的交互,这里使用的javascript的方式,部署应用使用的npm工具。
进入 fabric-samples 目录中的 fabcar/javascript 目录,执行以下命令:

npm install

执行完成,可以看到打印出来的应用目录:


项目依赖

注册用户

启动网络,并注册应用后,我们开始注册一些用户,这些用户通过各自的 ca 进行认证,并与网络进行交互:
在 fabcar/javascript 目录中,执行以下命令,注册一个管理员admin和一个用户user1:

node enrollAdmin.js

注册管理员

node registerUser.js

注册用户

网络交互——查询

现在,我们有了一个hyperledger网络, 一个连接到该网络的应用和两个用户,接下来我们可以通过调用对应的 smartcontract 对ledger进行操作了。
首先,尝试以下查询操作,在 fabcar/javascript 目录中,执行以下命令,

node query.js

查询返回结果

用 vim 查看 query.js 文件中的代码,可以看到其实是通过调用对应 contract 的方法,查询返回所有的信息,对调用的方法进行细微修改,调用单个查询的方法


修改查询方法

可以看到,返回的是查询指定的单条记录结果:


image.png

网络交互——修改

尝试了查询的操作后,再试着调用修改的方法。
在同样的目录下,执行以下命令,向 ledger 中添加一条记录:

node invoke.js

执行完成后,可以看到提交的结果:


查询单个记录

此时,可以调用之前涉及到的查询方法,调用 query.js ,即可返回刚添加的目录信息。
这个demo是在虚拟机环境下的ubuntu中运行的,运行结果和官方文档的结果一样,如果查阅文档的时候有遇到问题,欢迎一起探讨


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

推荐阅读更多精彩内容

  • Fabric已经发布到1.4LTS版本,各个版本对比如下: 来自:超级账本解读https://hyperledge...
    磨链社区阅读 3,101评论 2 3
  • Git常用命令总结 git init 在本地新建一个repo,进入一个项目目录,执行git init,会初始化...
    brenton阅读 261评论 0 0
  • 昨天又多与参与了孩子的事以后少管,感赏孩子晚上回来写作业 感赏孩子晚上早点休息 感赏老师的理解 叫孩子早上去...
    苦茶_09e4阅读 222评论 0 2
  • 爱是一幅山水画,洗去铅华雕饰,留下清新自然;爱是一首深情的歌,婉转悠扬,轻吟浅唱;爱是一阵和煦的风,吹去朔雪纷飞,...
    袁园圆阅读 491评论 0 8
  • 文字大纲 导图 今天这期特好,内容特别充实,尤其是谈朱元璋思想控制那个部分,以前从来没有从这个角度考虑过,特别深刻...
    轻言细语0001阅读 652评论 2 1