Ubuntu重现IBM-Blockchain/marbles的Demo

IBM-Blockchain/marbles-Github网址

以前看书marbles是被翻译成大理石,不过也有翻译成弹珠的。本身理解就能够了,都是资产!!
如今咱们开始重现这个官方的Demo。html

搭建Fabric的开发环境

下载源码

本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下,所有复制过去!!!node

修改配置文件

打开marbles/config/connection_profile_local.json,以下:linux

{
    "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的地方,git

"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所在的路径。换句话说,你也值须要改前面这个,若是一致的话就不用改了!github

链码的安装和实例化

打开终端
cd marbles所在的文件路径
cd scripts
node install_chaincode.js
node instantiate_chaincode.js
web

运行

打开一个终端
cd marbles所在的文件路径
npm install gulp -g
npm install
gulp marbles_local

打开:http://localhost:3001/login就能够了。npm

遇到的问题及解决方法

Node提示没有模块
只须要安装缺失的模块便可:npm install –save 模块名
执行gulp marbles_local出现下面的错误提示json

未找到 '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软连接时候的指令!gulp

晒图

one

下面你们能够去探索一下这个demo的代码了!bash