IBM-Blockchain/marbles-Github网址
之前看书marbles是被翻译成大理石,不过也有翻译成弹珠的。自己理解就可以了,都是资产!!
现在我们开始重现这个官方的Demo。
搭建Fabric的开发环境
- 搭建的环境至少是1.0.0及以上,整个过程可以参考我的博客Ubuntu搭建Fabric开发环境以及Fabric开发环境的搭建。前者是1.1.0,或者是1.0.0。
下载源码
本Demo是基于fabric-samples里面的fabcar,你也必须实现这个fabcar的小Demo才可以。这个还请参照官网吧。这里给出我的一篇博客,虽然没有具体过程,但是有我遇到的错误,还算不错。
下载
git clone https://github.com/IBM-Blockchain/marbles.git --depth 1
不管你下载在什么地方,我都是建议你将它移动到fabric-samples下。
打开终端,进入marbles文件夹
cd marbles所在目录的路径
npm install
新开一个终端
cd fabcar所在目录的路径
./startFabric.sh
node enrollAdmin.js
node registerUser.js
这个时候fabcar目录下会有一个新的文件夹叫hfc-key-store,你需要将里面的所有东西复制到/home/用户名/.hfc-key-store下,全部复制过去!!!
修改配置文件
打开marbles/config/connection_profile_local.json,如下:
{
"name": "Docker Compose Network",
"x-networkId": "not-important",
"x-type": "hlfv1",
"description": "Connection Profile for an Hyperledger Fabric network on a local machine",
"version": "1.0.0",
"client": {
"organization": "Org1MSP",
"credentialStore": {
"path": "/home/gopath/fabric-samples/fabcar/hfc-key-store"
}
},
"channels": {
"mychannel": {
"orderers": [
"fabric-orderer"
],
"peers": {
"fabric-peer-org1": {
"x-chaincode": {} }
},
"chaincodes": [
"marbles:v4"
],
"x-blockDelay": 10000
}
},
"organizations": {
"Org1MSP": {
"mspid": "Org1MSP",
"peers": [
"fabric-peer-org1"
],
"certificateAuthorities": [
"fabric-ca"
],
"x-adminCert": {
"path": "/home/gopath/fabric-samples/basic-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem"
},
"x-adminKeyStore": {
"path": "/home/gopath/fabric-samples/basic-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/"
}
}
},
"orderers": {
"fabric-orderer": {
"url": "grpc://localhost:7050"
}
},
"peers": {
"fabric-peer-org1": {
"url": "grpc://localhost:7051",
"eventUrl": "grpc://localhost:7053"
}
},
"certificateAuthorities": {
"fabric-ca": {
"url": "http://localhost:7054",
"httpOptions": {
"verify": true
},
"registrar": [
{
"enrollId": "admin",
"enrollSecret": "adminpw"
}
],
"caName": null
}
}
}
最重要的地方如下:
找到三个path的地方,
"path": "/home/gopath/fabric-samples/fabcar/hfc-key-store"
"path": "/home/gopath/fabric-samples/basic-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem"
"path": "/home/gopath/fabric-samples/basic-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/"
这个是我修改之后的,原来是就是将路径改为hfc-key-store所在的路径,原来是$HOME
,我是将$HOME改为/home/gopath,这是我的fabric-samples所在的路径。换句话说,你也值需要改前面这个,如果一致的话就不用改了!
链码的安装和实例化
打开终端
cd marbles所在的文件路径
cd scripts
node install_chaincode.js
node instantiate_chaincode.js
运行
打开一个终端
cd marbles所在的文件路径
npm install gulp -g
npm install
gulp marbles_local
打开:http://localhost:3001/login就可以了。
遇到的问题及解决方法
Node提示没有模块
只需要安装缺失的模块即可:npm install –save 模块名
执行gulp marbles_local出现下面的错误提示
未找到 'gulp' 命令,您要输入的是否是:
命令 'gslp' 来自于包 'ghostscript' (main)
gulp:未找到命令
就是找不到gulp的意思,首先进入你Node的路径,这个就是你之前搭建Node环境的时候的那个包,你放在那个路径我就不知道了。
输入下面指令:
sudo ln -s /home/node-v8.11.1-linux-x64/bin/gulp /usr/local/bin/gulp
但是如果Node环境搭建成功了的话,你对上面指令肯定很熟悉,就是你创建npm软链接时候的指令!
晒图
下面大家可以去探索一下这个demo的代码了!