在 IBM LinuxONE 雲端平臺執行 Blockchain Marbles App

在 IBM LinuxONE 雲端平臺執行 Blockchain Marbles App

作者:陳兆麟 Email:[email protected]

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 [email protected]

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章