博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Fabric-V1.4-First-Application
阅读量:4171 次
发布时间:2019-05-26

本文共 1775 字,大约阅读时间需要 5 分钟。

接上两篇内容,这里实验下First-Application。 

屏幕快照 2019-04-03 下午6.29.45.png-163.7kB

实验环境:

Centos7.4 CPU:4C、内存:16G、硬盘:50G


笔者使用之前的测试环境,那么在实验前,建议重置后再进行以下操作。

 
  1. ./byfn.sh down
  2. docker rm -f $(docker ps -aq)
  3. docker ps -a (查看)

进入下列目录:

 
  1. cd /usr/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/fabcar
  2. 执行:./startFabric.sh javascript

执行完成如下图: 

屏幕快照 2019-04-04 上午10.50.26.png-324.5kB

进入下一级目录:

 
  1. cd /usr/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/fabcar/javascript
  2. 提前修改:
  3. vi package.json
  4. 把里面1.0.0版本改成1.4.0
  5. npm install(如报错执行下列命令)
  6. npm install --unsafe-perm

执行成功后.

注册admin用户: 

当前文件夹中执行:

 
  1. node enrollAdmin.js

执行完成后如下图,可以看到wallet中的admin相关信息。可通过查看

 
  1. docker logs -f ca.example.com查看输出的log内容。

屏幕快照 2019-04-04 上午10.54.11.png-80.9kB

注册user用户:

 
  1. node registerUser.js

注册完成后如图:

屏幕快照 2019-04-04 下午12.00.31.png-156.2kB

可以看到在:/usr/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/fabcar/javascript/wallet目录中有相关的admin和user1 

的信息。

查询账本,区块链中每个节点都有一个账本副本,那么通过user1来查看:

 
  1. node query.js

结果如图: 

屏幕快照 2019-04-04 下午12.03.11.png-441.9kB


更新账本:

可以通过vim来打开阅读、修改query.js文件,这里修改如下:

 
  1. // Evaluate the specified transaction.
  2. // queryCar transaction - requires 1 argument, ex: ('queryCar', 'CAR4')
  3. // queryAllCars transaction - requires no arguments, ex: ('queryAllCars')
  4. // const result = await contract.evaluateTransaction('queryAllCars');
  5. const result = await contract.evaluateTransaction('queryCar','CAR1');
  6. console.log(`Transaction has been evaluated, result is: ${result.toString()}`);

再次执行:node query.js会发现只显示CAR1:

屏幕快照 2019-04-04 下午12.12.55.png-103.2kB

那么区块链网络包含多个peer,每个peer都维护一份账本副本,并且选择性的维护一个智能合约副本,除此之外,网络还包括一个排序服务。

执行:

 
  1. node invoke.js

来创建一个新车,成功结果如下: 

屏幕快照 2019-04-04 下午12.15.20.png-135.1kB

那么再次查看刚才的交易是否成功,修改query.js来对比: 

屏幕快照 2019-04-04 下午12.22.32.png-478.6kB
比之前的查询多了CAR12,那么单独查询修改之前的代码CAR1为CAR12

再次执行: 

屏幕快照 2019-04-04 下午12.24.54.png-101.3kB

交易这辆Honda: 

可以看到车现在是Tom,那么交易给Jacky 
修改vim invoke.js文件:

 
  1. // await contract.submitTransaction('createCar', 'CAR12', 'Honda', 'Accord', 'Black', 'Tom');
  2. await contract.submitTransaction('changeCarOwner', 'CAR12', 'Jacky');

修改完成后执行:

 
  1. node invoke.js
  2. node query.js

显示如下: 

车子已经是Jacky。 
屏幕快照 2019-04-04 下午12.32.48.png-234.1kB


(未完待续)

参考: 

1. 
2.

转载地址:http://rxyai.baihongyu.com/

你可能感兴趣的文章
软考UML
查看>>
信息系统的生命周期各阶段及说明
查看>>
Ubuntulinux离线安装ClamTk杀毒软件步骤和使用方法
查看>>
摆脱贫穷2021V1
查看>>
Android.Could not find *.apk
查看>>
JNI
查看>>
Android基于TranslateAnimation的动画动态菜单
查看>>
android NDK中的GCC编译器
查看>>
Android NOtification 使用
查看>>
Android的SharedPreferences保存与删除数据简单实例
查看>>
android 如何从sqlite读取数据到spinner下拉中显示
查看>>
Android实现开机自动运行程序
查看>>
最近几天搭建MySql且连接问题总结
查看>>
搭建Tomcat
查看>>
在MyEclipse中运行tomcat出现Error initializing endpoint错误
查看>>
JSP文件中的上传功能(JSP中的相对路径)------JSP
查看>>
jsp中上传文件的源代码
查看>>
使用SQL语句查询表中重复记录并删除
查看>>
将xml中的数据导入到数据库
查看>>
Qt容器测试
查看>>