首页 > 网络 > 云计算 >

在Win7环境使用DockerImages模拟IBMBluemixBlockchainService

2016-11-01

在开发区块链 (blockchain) 应用系统时,一定是先在本机测试完毕后再上传至云端平台;本机测试可有两种方法:(1)本机安装 hyperledger fabric source code(参考文獻[2],除了开发应用app,还可以修改hyperledger fabric 源码)。

在 Win7 环境使用 Docker Images模拟 IBM Bluemix Blockchain Service

在开发区块链 (blockchain) 应用系统时,一定是先在本机测试完毕后再上传至云端平台;本机测试可有两种方法:(1)本机安装 hyperledger/fabric source code(参考文獻[2],除了开发应用app,还可以修改hyperledger/fabric 源码)。(2)使用hyperledger/fabric docker images (仅用于开发应用app)。学生适用第一项 (可深入理解 hyperledger/fabric) ,企业适用于第二项 (安装简单,容易建立 blockchain app开发环境);以下网址范例是以 docker images 建立本机 blockchain 开发环境,并以 IBM marblrs(参考文獻[3]) 做为测试范例。

開發環境:Win7 (64 bit, RAM >=8G) , Docker Toolbox , blockchain

1. win7 安装 cygwin (https://cygwin.com/install.html)

将安装之执行文件目录 (C:\cygwin64\bin) 设定在控制台系统 path 变量

2. 参考附录 (1) 在 Win7安装 Docker Toolbox (安装最新版)

(Win 10 可直接安装 Docker 请参考附录2 )

3. 桌面点选 (Docker Quickstart Terminal)

\

$ docker -v

Docker version 1.12.0, build 8eab29e

$ docker-machine ls (Docker Quickstart Terminal接口执行,确认虚拟机default 已安装)

NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS

default virtualbox Running tcp://192.168.99.100:2376 v1.10.3

$ docker-machine env default

SET DOCKER_TLS_VERIFY=1

SET DOCKER_HOST=tcp://192.168.99.100:2376

SET DOCKER_CERT_PATH=C:\Users\user\.docker\machine\machines\default

SET DOCKER_MACHINE_NAME=default

REM Run this command to configure your shell:

REM FOR /f "tokens=*" %i IN ('docker-machine env default') DO %i

$ FOR /f “tokens=*” %i IN (‘docker-machine env default’) DO %i

$ docker-machine ls (确定虚拟机已经启动)

NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS

default * virtualbox Running tcp://192.168.99.100:2376 v1.10.3

4. 使用 putty (附录 3) 登录 default VM (username: docker,password:tcuser)

\

5. 建立 blockchain network vp0,vp1

安装 docker-compose (https://docs.docker.com/compose/install/)

$sudo -i

$curl -L “https://github.com/docker/compose/releases/download/1.8.1/docker-compose-$(uname -s)-$(uname -m)” > /usr/local/bin/docker-compose

$ chmod +x /usr/local/bin/docker-compose

$ exit

$ cd /c/Users/user

$ git clone https://github.com/IBM-Blockchain/marbles.git

(下载范例 marbles )

修正 Dockerfile,docker-compose.yaml,app.js, mycreds.json (参考附录 4)

$ cd marbles; mkdir peer; cd peer

$ vi docker-compose.yaml

$ docker-compose up (启动 vp0 vp1 container)

$ docker ps (验证 vp0, vp1 已启动)

1c1d1ba037b1 hyperledger/fabric-peer peer_vp1_1

d94012517013 hyperledger/fabric-peer peer_vp0_1

6. 观察 peer_vp1_1, peer_vp0_1 之container IP

$docker exec -it peer_vp0_1 bash

$ifconfig (记录 ip)

7. 启动 marble App container

$cd /c/Users/user/marbles

$ vi mycreds.json (依据前项更换 vp0 vp1 IP)

编辑 Dockerfile , docker-compose.yaml (参考附录 4)

$docker-compose build

$docker-compose up (请关闭窗口不必要程序)

若出现以下错误删除 marrble container,重复执行 docker-compose up

\

$ docker ps -a

\

$docker rm -f marblesdocker_web_1

8. marble APP 启动成功显示如下 container ( container将记录执行过程)

$docker ps

\

9. 浏览器输入http://192.168.99.100:3000,(192.168.99.100 default VM 之 IP)点选 CREATE (每一步骤代表transaction)

\

10. 选择 颜色,大小,使用者 => create

\

11.将Bob’s 之 marble 拖曳置至 Leroy’s

\

12. 将 Red Mable 拖曳至垃圾桶

\

13. 浏览器输入http://localhost:3000/p2, (2 peer) 点选 CREATE

Bob 及 Leroy 可建立自己的 marble 并拖曳至另不同 user, 且user可以所持 marble 交易不同颜色的 marble。

14. 指定 User 为 BOB 将 white marble 拖曳至 Leroy’s (非 BOB 无法拖曳)

\

15. 在 BOB 之下点选 TRADE (交易 marbles 使用)

\

16. 选择交易对象

\

17. 显示正在等待的交易,点选 x (删除等待的交易)

\

18.正在等待的交易将消失

\

若将 Bob之 red marble 拖曳至垃圾桶, 正在等待的交易也会消失

\

19. 本例可修改为夺宝游戏

a 可增加参与者人数 ( 2 -> 5)

b 建立宝藏库, marble可改为宝物, 每一种宝物都有不同颜色组合, 根据 user所付出劳务的多寡,可至宝藏库换得不同价值的宝物.相同宝物不同颜色全拿,可至宝藏库交换更高价值的宝物,也可与其它参与者交换。

c 参予者不积极参与游戏,先前的宝物,将自动退还至宝藏库,积极度的计算与目前所获宝物价值有关,所获宝物愈多,积极度愈严格 (一定时间未取得相对应。

d 等级宝物就需退回原有取得之宝物;当所有宝物都被退回,即中止该user 参与取宝游戏)。

20. 夺宝游戏可应用在广告代理商, user 所看广告多寡视为劳务支出,夺宝冠军后可向代理商得现金作为报酬;游戏与个人能力无关; user只要肯花时间看广告就能取得报酬。

相关文章
最新文章
热点推荐