在 Win7 環境使用 hyperledger fabric source code 類比 IBM Bluemix Blockchain Service

來源:互聯網
上載者:User

標籤:docker   scm   image   .com   產生   led   test   tle   tmc   

 在 Win7 環境使用 hyperledger fabric source code 類比 IBM Bluemix Blockchain Service標籤: blockchain區塊鏈2016-10-13 07:05 949人閱讀 評論(1) 收藏 舉報 分類:blockchain(12)  Docker(5)  區塊鏈(6) 

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

 

目錄(?)[+]

 在 Win7 環境使用 hyperledger/fabric source code 類比 IBM Bluemix Blockchain Service作者:陳兆麟  Email:[email protected]當美國聯準會(Fed)主席葉倫力挺區塊鏈 (blockchain) 後,區塊鏈如野火燎原般風靡了整個地球,它將改變人類傳統生活習慣;唯一 IBM bluemix所提供的 bloclcahain service 最近幾乎塞到爆,常出現用量超出負荷的訊息,幸好IBM佛心提供了4 萬行 hyperledger/fabric source code如果沒有這些 source code, 區塊鏈的應用將會被口袋深的大廠把持;目前企業只要有支援 Docker 雲端平台都可以自行開發區塊鏈的應用系統,有興趣的企業可私訊聯絡共同開發。以下範例是以 hyperledger/fabric source code在local machine 模擬 IBM Bluemix bloclcahain service 的功能,也就是不必登入至 IBM bluemix 就可以執行IBM 所提供的範例blockchain marbles。開發環境:Win7 (64 bit, RAM >=8G) , vagrant , blockchain, docker,golang1. win7 安裝 cygwin (https://cygwin.com/install.html)

將安裝之執行檔案目錄 (C:\cygwin64\bin) 設定在控制台系統 path 變數 
win7 安裝 virtualbox (VirtualBox-5.1.6-110634-Win.exe) (https://www.virtualbox.org/) 
win7 安裝 Git (https://git-scm.com/downloads)

2.建立 github帳號

登入github 建立帳號 (https://github.com/ 紀錄 username 及 password)

fork hyperledger/fabric

瀏覽器入以下網址: 
https://github.com/hyperledger/fabric/blob/master/docs/Gerrit/gerrit.md#Working-with-a-local-clone-of-the-repository

(點選 fork )

3. 確認 fabric 安裝至你的 guthub repository,

4.將 xxxxxx/fabric clone 至 Win7 local machine

進入Win7 command shell:

$mkdir -p d:\GoProjects\src\github.com\hyperledger$cd d:\GoProjects\src\github.com\hyperledger$git clone https://github.com/xxxxxxx/fabric$cd d:\GoProjects\src\github.com\hyperledger\fabric\devenv

修正 Vagrantfile (D:\GoProjects\src\github.com\hyperledger\fabric\devenv) 
新增 : 
config.vm.network “forwarded_port”, guest: 22, host: 22 
config.vm.network “forwarded_port”, guest: 3000, host: 3000

$vagrant up (第一次在 virtual box 產生虛擬機器 hyperledger需要一段時間)

5.使用 putty (附錄 1) 登入 hyperledger VM

(username: vagrant,password:vagrant) 

6.在hyperledger VM 使用 nvm 安裝 node 最新版 (參考附錄 2)$ nvm use 6.7.0 (選擇 node 版本)$ node -v
  v6.7.0
$ npm -v
  3.10.3
7. 驗證hyperledger已掛載 Win7 目錄

hyperledger掛載點 ($GOPATH/src/github.com/hyperledger/fabric) 
已掛載 win 7 local machine目錄(d:\GoProjects\src\github.com\hyperledger\fabric) 
可用 touch 指令新增 empty file (例如 touch abcd) 測試是否掛載成功

8. 下載編輯 marbles 範例相關檔案

將 marbles 範例安裝至local machine (https://github.com/IBM-Blockchain/marbles)

cdGOPATH/src/github.com/hyperledger/fabric$ git clone https://github.com/IBM-Blockchain/marbles.git$ cd marbles

將附錄 3之app.js, mycreds.json覆蓋原先檔案,因不使用bluemix blockchain 
service,就必須使用hyperledger chaincode,先將marbles-chaincode fork至 
我的repository, 再clone至hyperledger VM,修改以下檔案: 
(*shim.ChaincodeStub 修正 shim.ChaincodeStubInterface) 
https://github.com/chenlin2/marbles-chaincode/tree/master/hyperledger/part1/part1_chaincode.go 
https://github.com/chenlin2/marbles-chaincode/tree/master/hyperledger/part2/part2_chaincode.go 
修改後再回存至我的 github repository。以下 app.js 所含zip_url,git_url 
已修正為 chenlin2/marbles-chaincode (不可使用系統預設值,user可嘗試使用 
自己的github repository) 

IBM-Blockchain/marbles-chaincode fork 至 user repository

marbles-chaincode下載經 hyperledger VM修改後上傳的chaincode

9. 在hyperledger VM 建立 node vp0,vp1 (以 putty 重新開啟另一 terminal)mkdirGOPATH/src/github.com/hyperledger/fabric/vagrant_marblescdGOPATH/src/github.com/hyperledger/fabric/vagrant_marbles$ docker pull hyperledger/fabric-baseimage:x86_64-0.1.0$ docker images (記錄 image id: db53d04b117c)$ docker tag db53d04b117c hyperledger/fabric-baseimage:latest(更改 tag)$ docker images (驗證 hyperledger/fabric-baseimage:latest)

$ vi docker-compose.yaml (編輯 docker-compose.yaml如附件 3)$ docker-compose up (過程需要 hyperledger/fabric-baseimage:latest)

10 執行 marbles 範例 (另一 terminal)cdGOPATH/src/github.com/hyperledger/fabric/marbles$sudo npm install gulp -g (安裝 gulp 套件)

$sudo npm install (根據package.json 在node modules資料夾安裝 dependences)

以上執行若無錯誤則執行 $gulp (執行 gulpfile.js 內所定義的工作)

sudonpminstall(若發生錯誤則執行node app.js)

若 (gulp或node app.js)執行時出現以下錯誤則重複執行指令(與RAM 大小 
有關,請關閉視窗內不必要的程式) 

若執行成功出現以下畫面

11. 瀏覽器輸入http://localhost:3000, 點選 CREATE (每一步驟代表transaction)

12. 選擇 顏色,大小,使用者 => create

13.將Bob’s 之 marble 拖曳置至 Leroy’s

14. 將 Red Mable 拖曳至垃圾桶

15. 瀏覽器輸入http://localhost:3000/p2, (2 peer) 點選 CREATE
Bob 及 Leroy 可建立自己的 marble 並拖曳至另不同 user, 且user可以所持 marble 交易不同顏色的 marble。
16. 指定 User 為 BOB 將 white marble 拖曳至 Leroy’s (非 BOB 無法拖曳)

17. 在 BOB 之下點選 TRADE (交易 marbles 使用)

18. 選擇交易對象

19. 顯示正在等待的交易,點選 x (刪除等待的交易)

20.正在等待的交易將消失

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

21. 本例可修改為奪寶遊戲
a 可增加參與者人數 ( 2 -> 5)b 建立寶藏庫, marble可改為寶物, 每一種寶物都有不同顏色組合, 根據 user所付出勞務的多寡,可至寶藏庫換得不同價值的寶物.相同寶物不同顏色全拿,可至寶藏庫交換更高價值的寶物,也可與其它參與者交換。c 參予者不積极參与遊戲,先前的寶物,將自動退還至寶藏庫,積極度的計算與目前所獲寶物價值有關,所獲寶物愈多,積極度愈嚴格 (一定時間未取得相對應。d 等級寶物就需退回原有取得之寶物;當所有寶物都被退回,即中止該user 參與取寶遊戲)。
22. 奪寶遊戲可應用在廣告代理商, user 所看廣告多寡視為勞務支出,奪寶冠軍後可向代理商得現金作為報酬;遊戲與個人能力無關; user只要肯花時間看廣告就能取得報酬。附錄:

1.Win7 安裝 putty 
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 
http://download.ithome.com.tw/article/index/id/1649 
2.hyperledger VM 安裝 nvm & node 
http://www.liquidweb.com/kb/how-to-install-nvm-node-version-manager-for-node-js-on-ubuntu-14-04-lts/ 
https://www.liquidweb.com/kb/how-to-install-node-js-via-nvm-node-version-manager-on-ubuntu-14-04-lts/ 
3.Docker-compose.yaml, app.js, mycreds.json 
https://1drv.ms/u/s!AkBmzWP0h-VxghFdrcW_nVX1GpgO 
4.陳兆麟 facebook 
https://zh-cn.facebook.com/chaolin.chen.18

參考文獻:

1.https://github.com/chenlin2/marbles2/blob/master/local_blockchain.md 
2.http://www.wealth.com.tw/article_in.aspx?nid=8450 
3.https://github.com/hyperledger/fabric/blob/master/docs/dev-setup/devenv.md 
4.https://github.com/diegomasini/hyperledger-fabric/blob/master/docs/dev-setup/devnet-setup.md 
5.https://github.com/IBM-Blockchain/marbles 
6.https://github.com/IBM-Blockchain/learn-chaincode 
7.https://github.com/hyperledger/fabric/blob/master/docs/Setup/Network-setup.md 
8.https://console.ng.bluemix.net/docs/services/blockchain/ibmblockchain_tutorials.html 
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 

在 Win7 環境使用 hyperledger fabric source code 類比 IBM Bluemix Blockchain Service

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.