您的位置:首页 > 运维架构 > Linux

在 IBM LinuxONE 云端平台执行 Blockchain Marbles App

2016-11-17 00:24 555 查看

在 IBM LinuxONE 云端平台执行 Blockchain Marbles App

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

IBM 所提供的 blockchain 范例 marbles (參考文獻 2)可在 bluemix 云端平台执行 (參考文獻 3);可在本机安装 hyperledger/fabric 开源软件环境执行,适合学生研究 (參考文獻 4);可在本机安装 docker环境下执行,适合产品开发(參考文獻 5);可在 IBM linuxone 云端平台 Virtual Server环境下执行,适合在线测试(http://148.100.5.193:3000/) ;相同的程序可验证IBM其它的 blockchain 范例修改後可在不同的环境执行。以下范例是将 marbles app 移植至 Linuxone virtual server 执行之步骤。

開發環境:Win7 ( x86_64 bit), IBM LinuxONE 云端平台

1. 安装 cygwin & LinuxONE

win7 安装 cygwin (https://cygwin.com/install.html)将安装之执行文件目录 (C:\cygwin64\bin) 设定在控制台系统 path 变量。

IBM LinuxONE 云端平台注册 (http://www.ibm.com/linuxone/try) 点选 Request a Trial (120 天试用期)。



填写数据注册



2. 核准后 IBM 会以 Email 通知 (账号,密码)

登录 IBM LinuxONE Community Cloud



3.建立虚拟主机 ( RedHat, SUSE, 未来将有ubuntu)



4. 建立 SSH Key pair



点选 Create
     点选 Create a new key pair



记录金钥 wangchen.pem

chmod600wangchen.pem cp wangchen.pem wangchen.ppk (putty 会用到)

5. 建立 virtual machine 点选 [create]



填选需求 =>[Create] 建立虚拟机器



主机已完成建立 (user name:linux1)



6. Win7 command shell 登录主机

$ssh -i wangchen.pem linux1@148.100.5.49



7. 下载解压缩 putty.zip

(http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)

执行 PUTTYGEN.EXE=> load
    选择 wangchen.ppk  (附录1)



key passphass 选择空白 => save
 文件名称选择 wangchen.ppk => 存档



8. 执行PUTTY.EXE



登录至虚拟主机: login as:linux1



9. 建构包含 docker,blockchain,Nodjs 的环境

$
sudo -i

#
mkdir /data/docker

#
ln -s /data/docker /var/lib/docker

#
cd /root

#
wget https://raw.githubusercontent.com/harrijk/docs/master/zSystemsFabricBuild.sh

#
. zSystemsFabricBuild.sh (安装 docker & blockchain 套件)

#
sudo -i

#
cd /data

//安装 nodejs & npm for s390x

//下载 ibm-java-s390x-sdk-7.1-3.50.bin, ibm-6.9.1.0-node-v6.9.1-linux-s390x.bin

https://developer.ibm.com/node/sdk/

https://developer.ibm.com/javasdk/downloads/

#
chmod a+x ibm-java-s390x-sdk-7.1-3.50.bin ibm-6.9.1.0-node-v6.9.1-linux-s390x.bin

#
./ibm-java-s390x-sdk-7.1-3.50.bin

#
./ ibm-6.9.1.0-node-v6.9.1-linux-s390x.bin

#
vi /root/.bashrc (新增 script)

export JAVA_HOME=/opt/ibm/java-s390x-71


export JRE_HOME=$JAVA_HOME/jre


export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH


export
CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib


export NODE_PATH=/root/ibm/node/lib/node_modules/:$PATH


export PATH=/root/ibm/node/bin:$PATH


# source  /root/.bashrc


10. 测试 node ,npm 是否完成安装

# node -v
v6.9.1
# npm -v
3.10.8


11.安装 marbles 范例及执行时所需之 packages

#
cd /data

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

(修正 app.js, setup.js, Dockerfile, docker-dompose.yml 等档案如附录 2)

#
cd marbles

#
npm install . (依据 package.json 产生dependences,若有错误无须理会)

#
npm i node-linux-s390x (安装 nodejs dependence for s390x)

#
mkdir fabric_start_kit & cd fabric_start_kit

#
vi Dockerfile (编辑 Dockerfile如附录 2)

#
docker build -t hyperledger/fabric-starter-kit:s390x . (产生fabric-starter-kit images)

#
docker images |grep fabric-starter-kit:s390x

hyperledger/fabric-starter-kit s390x ff43d3459e77 About an hour ago 1.777 GB

#
cd /data/marbles & mkdir peer & cd peer

#
vi docker-compose.yaml (如附录 2)

#
docker-compose up (启动 peer network)

#
docker ps |grep peer



12. 使用 putty 再开启新的终端机,安装 marbles images & 启动 marbles

# sudo -i
# cd /data/marbles
# vi Dockerfile     (如附录 2)
# vi docker-compose.yaml   (如附录 2)
# vi setup.js  (如附录 2)
# docker-compose build .   (产生 marbles_web images)
# docker images |grep marbles
marbles_web  latest  8d40cb51bb50    About an hour ago   1.853 GB
# docker-compose up &  (启动 marbles_web_1 container)
# docker ps |grep marbles




13. 浏览器输入http://148.100.5.193:3000 (linuxone IP), 点选 CREATE (每一步骤代表transaction)



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



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



16. 将 Red Mable 拖曳至垃圾桶



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

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


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



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



20. 选择交易对象



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



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



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



附录:

1.putty安装及使用:

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

http://download.ithome.com.tw/article/index/id/1649

2.范例 marbles 执行时组态档必须修正 (for RHEL 7.2:IBM s390x)

marbles:Dockerfile,docker-compose.yaml, mycreds.json, app.js,setup.js

marbles/peer:docker-compose.yaml

marbles/fabric_start_kit:Dockerfile

企业若需要协助请私讯我

3.陈兆麟 facebook

https://zh-cn.facebook.com/chaolin.chen.18

參考文獻:

1.https://github.com/hyperledger/fabric/blob/master/docs/starter/fabric-starter-kit.md

2.https://github.com/IBM-Blockchain/marbles.git

3.https://1drv.ms/b/s!AkBmzWP0h-VxggcKD76DVuLZ92ky

4.https://1drv.ms/b/s!AkBmzWP0h-VxghIk2nyUNi8vNtiC

5.https://1drv.ms/b/s!AkBmzWP0h-VxghNwNvlYSkxE_oSJ

6.https://developer.ibm.com/linuxone/

7.http://developer.ibm.com/linuxone/wp-content/uploads/sites/57/virtual-servers-quick-start.pdf

8.https://developer.ibm.com/linuxone/wp-content/uploads/sites/57/blockchain-quick-start.pdf

9.https://github.com/docker-library/official-images

10.http://www-03.ibm.com/systems/tw/linuxone/solutions/

11.https://github.com/harrijk/docs/wiki/Hyperledger-Fabric-Build-for-Ubuntu-on-Linux-on-z-Systems

12.https://docs.docker.com/engine/tutorials/dockerimages/

13.https://github.com/docker/docker/blob/master/Dockerfile.s390x

14.https://1drv.ms/f/s!AkBmzWP0h-Vxbr7h1uTNsTMcPWI

15.https://1drv.ms/b/s!AkBmzWP0h-VxazOBOsVz8nGMLpM

16.https://1drv.ms/b/s!AkBmzWP0h-VxbLK7FOjH9IL5HHc

17.https://www.youtube.com/watch?v=24JAF9Eu1mk&list=UUOTZe-b_jE_Ovy9K9UhZ4BA&index=74

18.https://www.youtube.com/watch?v=wSmJ-rwUo8I&list=UUOTZe-b_jE_Ovy9K9UhZ4BA&index=73

19.https://www.youtube.com/watch?v=SOsn6MvGH60&list=UUOTZe-b_jE_Ovy9K9UhZ4BA&index=72
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ibm 开源软件