hyperledger/fabric-sdk-node测试运行

概述

下面会介绍hyperledger/fabric-sdk-node的使用并如何跑测试用例

介绍

fabric-sdk-node是IBM开源的区块链项目hyperledger/fabric的node sdk

环境搭建

这里需要fabric,fabric-ca,fabric-sdk-node,具体都在https://github.com/hyperledger这个里面

fabric

首先clone fabric项目
git clone https://github.com/hyperledger/fabric.git
具体如何搭建fabric环境这里不细写了,回头再单独写一下,比较复杂。这里我们就写最关键直接的,这一步其实可以不需要,关键是需要fabric相关的那几个docker image,如果你有其他的路径能下载到,可以不用这样
cd fabric
make docker

fabric-ca

再次强调一下,这一步其实可以不需要,关键是需要fabric相关的那几个docker image,如果你有其他的路径能下载到,可以不用这样

git clone https://github.com/hyperledger/fabric-ca.git
cd fabric-ca
make docker

fabric-sdk-node

再次强调一下,这一步其实可以不需要,关键是需要fabric相关的那几个docker image,如果你有其他的路径能下载到,可以不用这样

git clone https://github.com/hyperledger/fabric-sdk-node.git

如果你对node很熟悉,也可以直接用node命令来跑,下面给个例子:
node test/integration/e2e/query.js

运行测试

sdk安装

cd fabric-sdk-node
npm install

fabric环境运行

peer、orderer、ca都需要跑起来,如果用的couchdb,还会有

cd fabric-sdk-node/test/fixtures/
docker-compose up -d

运行sdk测试

cd $GOPATH/src/github.com/hyperledger/fabric-sdk-node
gulp ca
gulp test

可能的问题

修改gulp配置

因为现在sdk还不成熟,出于调试而修改fabric-ca-client或者fabric-client里面的代码总是无法自动被npm加载,提供下面的办法

cd $GOPATH/src/github.com/hyperledger/fabric-sdk-node

修改build/task/ca.js文件

const DEPS = [
        'fabric-client/lib/api.js',
        'fabric-client/lib/hash.js',
        'fabric-client/lib/utils.js',
        'fabric-client/lib/Config.js',
        'fabric-client/lib/Remote.js',
        'fabric-client/lib/impl/CouchDBKeyValueStore.js',
        'fabric-client/lib/impl/CryptoSuite_ECDSA_AES.js',
        'fabric-client/lib/impl/ecdsa/*',
        'fabric-client/lib/impl/CryptoKeyStore.js',
        'fabric-client/lib/impl/FileKeyValueStore.js',
        'fabric-ca-client/lib/FabricCAClientImpl.js'
];

在这个数组里面添加你需要修改的文件,然后每次修改完文件后,执行gulp ca你修改的文件就会被自动拷贝到npm安装的目录里面

fabric-ca的container起不来

我在搭建这一套环境的时候发现ca的container一直没法正常启动,经过研究代码发现,有个配置是有问题的,这个可能是sdk更新没跟上的原因吧。

cd $GOPATH/src/github.com/hyperledger/fabric-sdk-node

修改文件test/fixtures/fabricca/tlsOrg1/fabric-ca-server-config.yaml
改动如下:

- certfiles: db-server-cert.pem # Comma Separated (e.g. root.pem, root2.pem)
+ certfiles:
+ - db-server-cert.pem # Comma Separated (e.g. root.pem, root2.pem)

也可以看一下我GitHub的分支https://github.com/chenshuijin/fabric-sdk-node/tree/fixe2etest

捐赠:
BTC: 1NTom3PgUct3WNmnBYNq5KGDQvY3MXs8dJ
ETH:0x8509f0F37497e094924F5c2e776e0dA522c57e43

你可能感兴趣的:(fabric)