Hyperledger fabric 中的fabcar案例
本篇文章用来记录学习Hyperledger fabric 中的fabcar例子。
fabcar是官方例子之一,主要是通过单机配置模拟环境,实现管理员admin用户的enrollAdmin(注册管理),其他用户的注册(主要是指user1)。以及实现query和invoke。
1.配置环境
1.1首先配置好Hyperledger fabric的docker环境,这里不做介绍,具体可以看深蓝博客点击打开链接。
1.2 安装nodejs和npm
下载地址:点击打开链接,安装版本为node-v6.9.5-linux.tar.gz。下载后解压:
#tar -zxf node-v6.9.5-linux-x64.tar.gz
移动到通用的软件安装目录/opt/
#sudo mv node-v6.9.5-linux-x64 /opt
安装npm和node
# ln -s /opt/node-v6.9.5-linux-x64/bin/node /usr/local/bin/node
# ln -s /opt/node-v6.9.5-linux-x64/bin/npm /usr/local/bin/npm
查看版本:
node -v
npm -v
2.下载fabric-samples,放在和fabric的同一目录下 :
git clone https://github.com/hyperledger/fabric-samples.git
3.进入fabric-samples中,我们这次的例子fabcar主要的文件夹是basic-network,chaincode,fabcar。
basic-network:实现的是搭建基本的网络(创建channel,peer0等等)。都已经封装写好,start.sh脚本文件就可以实现,我们这里也不需要运行该脚本。
chaincode:该文件夹下的fabcar中的fabcar.go是这个例子中的智能合约。实现了初始化账本,创建汽车,查询汽车,改变汽车的所属者等等。
fabcar:该文件夹下有enrollAdmin.js registerUser.js query.js invoke.js startFabric.sh package.json
分别实现注册管理,查询等,需求包,启动部署脚本。
4.进入到fabcar文件夹下,先将npm的源换为淘宝源,然后在下载:
#npm config set registry http://registry.npm.taobao.org/
#npm install
如果拉取镜像失败,提示缺少fabcar@1.0.0等。下载
点击打开链接完成下载后放入fabcar\node_modules\grpc\src\node\extension_binary\node-v48-linux-x64\目录下即可。
5.通过脚本文件一步部署环境。
#./startFabric.sh
如果成功会显示以上内容。
6.实现enrollAdmin.js 的功能,会在fabcar目录下生成一个存放key的文件夹:hfc-key-store
#node enrollAdmin.js
7.实现registerUser.js
#node registerUser.js
8.实现query.js
#node query.js
9.实现invoke.js
#node invoke.js