Hyperledger Fabric——balance transfer(一)启动示例

Blacne transfer是Hyperledger fabric Node SDK的一个示例应用,主要使用了SDK中fabric-client 和 fabric-ca-client 模块中的API,实现了与Fabric网络交互的各种操作。

先决条件

  • Docker - v1.12 or higher
  • Docker Compose - v1.8 or higher
  • Git - needed for clone commands
  • Node.js - v8.4.0 or higher
  • Docker images
  • jq - needed for execute the test script

下载示例

需要注意的是 balance transfer 示例不同版本间差别很大,从v1.0.6到v1.1.0就存在很大改动,这里使用的是最新版本release-1.1。

git clone https://github.com/hyperledger/fabric-samples.git
cd fabric-samples/balance-transfer

运行示例

与之前运行的Fabric项目中的samples相比,e2efirst-network这两个例子是通过一个cli容器来模拟客户端与网络进行交互。而balance-transfer则会监听一个端口,用户可以通过curl命令、浏览器等工具根据URL来进行相应操作。
示例可通过脚本运行,构建一个本地的Fabric网络,所有节点包括:

  • 2 CAs
  • 1 SOLO orderer
  • 4 peers (2 peers per Org)
方法一

在终端1执行脚本:

./runApp.sh
  • 启动本地fabric网络
  • 下载fabric-client 和 fabric-ca-client 模块
  • 监听4000端口

在终端2测试网络,执行测试脚本前需下载jq

sudo apt-get install jq
./testAPIs.sh

  • 创建channel并加入节点
  • 安装和实例化chaincode
  • 执行(invoke)chaincode
  • 进行各种查询(query)
方法二

在终端1执行:

docker-compose -f artifacts/docker-compose.yaml up

在终端2执行命令,下载fabric-client 和 fabric-ca-client 模块:

npm install

运行node app,监听4000端口:

PORT=4000 node app

在终端3通过curl命令进行测试。

报错解决

注意:balance transfer 的版本应该与镜像文件的版本相匹配,否则会出现错误。
比如我的镜像文件下载的是v1.0.0,而fabric-samples项目没有此版本(使用git tag查看),则在注册用户的第一步就出现错误No identity type provided

No identity type provided. Please provide identity type

则需要重新下载相应版本的镜像,并切换fabric-samples的版本使两者保持一致 ( git checkout v1.1.0 )。

关闭网络

# 清除所有容器
docker rm -f $(docker ps -aq)
# 删除chaincode镜像
docker rmi -f $(docker images | grep dev | awk '{print $3}')
# 删除用户注册和登录的数据,如私钥和证书
rm -rf fabric-client-kv-org[1-2]

参考:http://www.cnblogs.com/studyzy/p/7437157.html

posted @ 2018-03-27 09:01  zhayujie  阅读(252)  评论(0编辑  收藏  举报