Fabric-V1.4-First-Application

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

官网示例教程:https://hyperledger-fabric.readthedocs.io/en/latest/write_first_app.html#writing-your-first-application

Fabric-V1.4-First-Application_第1张图片

实验环境:

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

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

./byfn.sh down

docker rm -f $(docker ps -aq)

docker ps -a (查看)

进入下列目录:

cd /usr/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/fabcar

执行:./startFabric.sh javascript

执行完成如下图: 

Fabric-V1.4-First-Application_第2张图片

进入下一级目录:

cd /usr/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/fabcar/javascript

提前修改:

vi package.json

把里面1.0.0版本改成1.4.0

npm install(如报错执行下列命令)

npm install --unsafe-perm

执行成功后.

注册admin用户: 

当前文件夹中执行:

node enrollAdmin.js

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

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

注册user用户:

node registerUser.js

注册完成后如图:

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

的信息。

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

node query.js

结果如图: 

Fabric-V1.4-First-Application_第3张图片

更新账本:

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

// Evaluate the specified transaction.

// queryCar transaction - requires 1 argument, ex: ('queryCar', 'CAR4')

// queryAllCars transaction - requires no arguments, ex: ('queryAllCars')

// const result = await contract.evaluateTransaction('queryAllCars');

const result = await contract.evaluateTransaction('queryCar','CAR1');

console.log(`Transaction has been evaluated, result is: ${result.toString()}`);

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

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

执行:

node invoke.js

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

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

Fabric-V1.4-First-Application_第4张图片

比之前的查询多了CAR12,那么单独查询修改之前的代码CAR1为CAR12

再次执行: 

交易这辆Honda: 

可以看到车现在是Tom,那么交易给Jacky 

修改vim invoke.js文件:

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

await contract.submitTransaction('changeCarOwner', 'CAR12', 'Jacky');

修改完成后执行:

node invoke.js

node query.js

显示如下: 

车子已经是Jacky。 

Fabric-V1.4-First-Application_第5张图片

(未完待续)

参考: 

1.https://blog.csdn.net/ASN_forever/article/details/87778013 

2.https://hyperledger-fabric.readthedocs.io/en/latest/developapps/developing_applications.html

你可能感兴趣的:(Fabric-V1.4-First-Application)