Hyperledger Fabric Client SDK 能够非常简单的使用API和 Hyperledger Fabric Blockchain 网络进行交互。其v1.1及其以上的版本添加了一个重要的功能Conection-Profile来保存整个network中必要的配置信息,方便client读取和配置。 该Demo基于Connection-Profile测试了整个网络的如下功能:
v1.1
Connection-Profile
npm install -g gulp
主要fabric环境可参考Fabric 1.0。
$ git clone https://github.com/Sunnykaby/Hyperledger-fabric-node-sdk-demo
进入 Hyperledger-fabric-node-sdk-demo 目录,查看各文件夹和文件,功能如下。
Hyperledger-fabric-node-sdk-demo
该项目提供两种Demo构建方式:
当然,你也可以使用自己已经创建好的fabric network和其相关的connection-profile来测试Demo。
##进入项目根目录 ##使用本地资源构建Demo ./Init.sh local ##使用官方资源构建Demo ./Init.sh remote
执行之后,会在根目录中生成一个demo文件夹,其就是Demo程序的入口。
demo
清理Demo资源,使用./Init.sh clean
./Init.sh clean
首先,我们需要准备一个fabric网络来进行测试。 进入到demo文件夹。
进入资源目录,利用脚本启动网络即可。
cd artifacts ##启动网络 ./net.sh up ##关闭网络 ./net.sh down
用该脚本启动网络中包含:1个orderer, 2个organisation, 4个peer(每个组织有2个peer)和两个ca(每个组织一个)。
在demo目录,利用脚本启动网络即可。
##启动网络,并配置本地资源 ./net.sh init ##关闭网络并清理资源 ./net.sh clean
与本地资源启动不同,该方案主要有以下步骤:
fabric-sample/first-network/bynf.sh up
详细信息可以直接查看net.sh脚本。
net.sh
clean命令会将所有相关的docker 容器和remote的动态资源全部删除。还原到最初的demo文件状态。
clean
无论是remote还是local模式,最终资源和网络准备完成之后,核心资源列表如下:
demo/artifacts/ ├── channel-artifacts │ ├── channel2.tx │ ├── channel.tx │ ├── genesis.block │ ├── Org1MSPanchors.tx │ └── Org2MSPanchors.tx ├── connection-profile │ ├── network.yaml │ ├── org1.yaml │ ├── org2.yaml ├── crypto-config │ ├── ordererOrganizations │ │ └── example.com │ └── peerOrganizations │ ├── org1.example.com │ └── org2.example.com
网络和相关资源准备成功之后,进入demo/node目录。 其主要结构为:
demo/node
├── app //核心应用接口 │ ├── api-handler.js //接口定义文件 │ ├── *.js //应用实现模块 │ ├── tools //通用工具类 │ │ ├── ca-tools.js │ │ ├── config-tool.js │ │ └── helper.js ├── app-test.js //Demo程序启动文件 ├── package.json └── readme.md
使用命令node app-test.js即可进行一个完整workflow的测试,包括最开始我们提到的所有功能。 同时可以使用node app-test.js -m ca|createChannel|joinChannel|install|instantiate|invoke|query|queryChaincodeInfo|queryChannelInfo来运行单个功能。
node app-test.js
node app-test.js -m ca|createChannel|joinChannel|install|instantiate|invoke|query|queryChaincodeInfo|queryChannelInfo
程序使用的均为默认参数,其定义在app-test.js文件中。可以按照需求修改对应的参数,再运行程序即可。
app-test.js
如果在使用途中发现任何问题,或者有任何需求可以在该项目的issue中提出改进方案或者建议。 Github地址:Hyperledger-fabric-node-sdk-demo
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8