黎跃春
孔壹学院创始人兼CEO
黎跃春:孔壹学院创始人兼CEO,国内区块链布道先行者,通信和信息技术培养工程区块链高级授课专家。如果您有任何关于区块链的问题,可以加入区块链技术交流QQ群729666975(进群无需添加验证信息,直接点击下一步,等待管理员通过即可),我们会为您一一解答。
从零到壹学习Hyperledger Fabric为一个系列,一共15讲,包括搭建Hyperledger Fabric环境、Hyperledger Fabric Samples安装、建立第一个网络、手动配置网络实现及测试Chaincode、编写第一个应用等。今天我们将为大家介绍从零到壹学习Hyperledger Fabric第五讲:编写第一个应用。话不多说,马上开启我们的Hyperledger Fabric学习之旅。
课程学习,添加莉莉微信(kongyixueyuan)。
孔壹学院
关闭网络
进入到fabric-samples/fabcar目录中
如果是完整的环境,目录中应该包含如下文件:
关闭所有处于活动中的Docker容器
执行此命令可能会遇到输出权限问题的错误,如遇到此情况,可忽略,直接执行下条命令
查看Docker
清除所有的网络缓存:
删除fabcar智能合约的底层链码图像。如果您是第一次运行此项目可以不执行(系统上不会有此链接代码图像)
安装客户端
启动网络
该命令将启动各种Fabric实体,并启动用Golang编写的链式代码的智能合约容器
可选执行(流式处理CA日志, 打开新的终端并执行如下命令)
注册管理员用户
命令执行后输出如下内容:
成功执行后会调用证书签名请求(CSR),并最终将eCert和密钥材料输出到此文件夹中, 应用程序将在创建用户或加载身份对象时查找此位置
注册 user1用户
该命令执行后调用CSR并将密钥和eCert输出到子目录中
执行命令后输出如下:
查询分类帐
命令执行后输出如下
由Adriana拥有的黑色特斯拉Model S,由Brad拥有的红色Ford Mustang,由Pari拥有的紫色Fiat Punto等等。
分类账是基于Key的,在上面的信息中,Key为CAR0至CAR9
打开query.js
发现应用程序的初始部分定义了某些变量,例如通道名称,证书存储位置和网络端点
query.js文件有如下代码使用第二个身份作为此应用程序的签署实体。指定为签名者
这是实现查询功能的语句块:
当应用程序运行时,它会调用对等体上的链式代码,运行其中的函数,且不传递任何参数.
使用编辑器打开query.js
修改其查询块内容,更改为并将作为特定Key为参数传递来执行此操作
保存退出后运行:
执行后返回如下
使用该功能,我们可以查询任何关键字(例如)并获取与该车相对应的任何品牌,型号,颜色和所有者
更新分类帐
修改 , 找到中的与, 添加一条新的数据
保存退出后执行
执行成功,输出如下
返回并将参数由更改为
查询:
输出内容如下:
修改 , 修改CAR10的拥有者为 Dave
保存退出并执行
运行输出结果:
领取专属 10元无门槛券
私享最新 技术干货