本文介绍如何运行fabric-samples中的fabcar示例。
- 安装nodejs和npm
application使用nodejs开发,需要安装nodejs.这里我安装的是node v8.9.4,亲测可用。据说fabric node sdk不支持node9.X及以上版本???一开始安装了v6.X版本,是有问题的,不好用。。。
wget https://nodejs.org/download/release/v8.9.4/node-v8.9.4-linux-x64.tar.gz //下载node包
tar -zxf node-v8.9.4-linux-x64.tar.gz //解压
ln -s /home/my/tools/node-v8.9.4-linux-x64/bin/node /usr/local/bin/node //创建软连接,记得把路径改成你的node路径
ln -s /home/my/tools/node-v8.9.4-linux-x64/bin/npm /usr/local/bin/npm //npm链接
node -v //测试node是否安装成功
npm -v //测试npm是否安装成功
- 下载fabric-samples
cd ~/gopath/src/github.com/hyperledger //要放在此目录下,否则需要修改相应脚本,我还没改过,,,
git clone https://github.com/hyperledger/fabric-samples.git
- 部署环境
cd fabcar/
npm install --registry=https://registry.npm.taobao.org //源用淘宝这个,能快一点,下载fabric nodejs sdk
sudo ./startFabric.sh //启动网络环境
- 执行js
node enrollAdmin.js //生成key
node registerUser.js //注册用户
node query.js //查询车辆,这里指的是调用fabcar chaincode的queryAllCars方法
query结果如下图所示:
示例中的invoke.js里边调用chaincode的方法和参数都是空,所以如果我们想执行这个,需要先把参数补全
//update following part in invoke.js
var request = {
//targets: let default to the peer assigned to the client
chaincodeId: 'fabcar',
fcn: 'createCar',
args: ['CAR991', 'bb', 'cc', 'dd', 'my'],
chainId: 'mychannel',
txId: tx_id
};
保存执行invoke.js
node invoke.js
node query.js
结果如下,我们可以看到,多了CAR991
- 关闭网络
cd ../basic-network
./stop.sh