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

7 篇文章 0 订阅
6 篇文章 0 订阅

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

作者:陳兆麟 Email:chenlin2@ms9.hinet.net

在开发区块链 (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只要肯花时间看广告就能取得报酬。

附录:

1.Win7 安装Docker Toolbox:
https://www.docker.com/products/docker-toolbox
http://knight-.iteye.com/blog/2254627
http://rominirani.com/2015/08/15/docker-toolbox-setup-windows/
https://getcarina.com/docs/troubleshooting/troubleshooting-windows-docker-vm-startup/
http://dockone.io/article/594
2.Win 10 安装Docker
http://blog.miniasp.com/post/2016/08/01/Docker-for-Windows-1-12-Released.aspx
3.putty安装及使用:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
http://download.ithome.com.tw/article/index/id/1649
4.docker 组态档设定
marbles:Dockerfile,docker-compose.yaml, mycreds.json, app.js
marbles/peer:docker-compose.yaml
可经以下网址内容修正后可得
https://1drv.ms/b/s!AkBmzWP0h-VxghIk2nyUNi8vNtiC
https://1drv.ms/b/s!AkBmzWP0h-VxgVV8ldGqidoa4tn9
企业若需要协助请私讯我
5.陈兆麟 facebook
https://zh-cn.facebook.com/chaolin.chen.18

參考文獻:

1.https://github.com/IBM-Bluemix/bluechatter
2.http://blog.csdn.net/chenjaulin/article/details/52803480
3.https://github.com/IBM-Blockchain/marbles
4.http://ict.dst.ibm.com/files/CLD9404.pdf
5.https://hub.docker.com/r/reachlin/bluemix/
6.https://developer.ibm.com/answers/questions/190436/ice-login-error.html
7.http://dockone.io/article/594
8.https://www.youtube.com/watch?v=i7_dQQy40ZQ&feature=youtu.be
9.https://1drv.ms/b/s!AkBmzWP0h-VxggcKD76DVuLZ92ky
10.https://1drv.ms/f/s!AkBmzWP0h-Vxbr7h1uTNsTMcPWI
11.https://1drv.ms/b/s!AkBmzWP0h-VxazOBOsVz8nGMLpM
12.https://1drv.ms/b/s!AkBmzWP0h-VxbLK7FOjH9IL5HHc
13.https://www.youtube.com/watch?v=24JAF9Eu1mk&list=UUOTZe-b_jE_Ovy9K9UhZ4BA&index=74
14.https://www.youtube.com/watch?v=wSmJ-rwUo8I&list=UUOTZe-b_jE_Ovy9K9UhZ4BA&index=73
15.https://www.youtube.com/watch?v=SOsn6MvGH60&list=UUOTZe-b_jE_Ovy9K9UhZ4BA&index=72

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值