Hyperledger Fabric(五)

如果已经理解了BYFN那个样例,那么这个就很好理解了,这里的网络有五个容器:ca.example.com couchdb orderer.example.com peer0.org1.example.com cli

用node-SDK进行app与网络的交互。

目录

app端的逻辑部分在fabric-samples/fabcar

  • 初始情况下应有6个文件:enrollAdmin.js invoke.js package.json query.js registerUser.js startFabric.sh
  • 在这个目录下执行npm install按住干node模块,会多出一个node_modules目录
  • 运行过程中会创建一个目录hfc-key-store用来存放各种秘钥

网络部分在fabric-samples/basic-network

  • 这个目录下共有12个文件
  • start.sh启动网络,stop.sh关闭网络,generate.sh生成各种证书以及网络的配置信息
  • config目录下是网络的配置信息,crypto-config目录下是各种证书

这里有个坑,configcrypto-config目录下的文件一定不要修改,如果你运行了generate.sh就会替换掉那两个目录下的文件,后面就会疯狂报错:
Failed to enroll admin :Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054]

ps:

  • diff -r dir1 dir2比较两个目录下文件的不同
  • 查看某一端口号的情况:netstat -ap | grep [port]或者lsof -i:[port]

UPDATE:上面报错的原因是docker-compose.yml中FABRIC_CA_SERVER_CA_KEYFILE=/etc/hyperledger/fabric-ca-server-config/4239aa0dcd76daeeb8ba0cda701851d14504d31aad1b2ddddbac6a57365e497c_sk这里指定了文件名,generate.sh之后文件名变了就找不到了。

启动网络

ps:清理环境的工作就不用说了吧,不会的去看一下Docker

fabric-samples/fabcar目录下,运行startFabric.sh脚本。

网络部分就不细说了,具体可以看上一篇博客,看懂了这里自己就可以看明白是怎么回事。

app与网络交互

  • Enrolling the Admin User

    node enrollAdmin.js

  • Register and Enroll user1

    node registerUser.js

  • Querying the Ledger

    node query.js

  • Updating the Ledger

    node invoke.js

以上交互部分可以去看一下源码就明白了,修改源码以便更好的理解,具体可以参考官方文档

ps:可打开一个新的终端查看CA端的日志:docker logs -f ca.example.com
logs

猜你喜欢

转载自blog.csdn.net/yijiull/article/details/81189666