區塊鏈框架hyperledger Fabric1.2,win10,docker18.6,資產轉移例項

tang6237422發表於2018-08-20

區塊鏈框架hyperledger Fabric1.2,win10,docker18.6,資產轉移例項

最近在學習區塊鏈,找了很多資料,看到的概念也很雜,關於區塊鏈和fabric的介紹我就不多講了,百度一搜一大把,以下是我通過查詢很多資料,找到的最簡易的測試方法,甚至連go語言都可以省略,
環境:

  • docker 18.06.0-ce(自帶docker-compose)
  • hyperledger Fabric1.2
  • go1.10.3 windows/amd64(go語言)
  • win10企業版

環境安裝

  • docker安裝
    下載docker18.06 windows版本,下載地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
    下載成功後,傻瓜式安裝,安裝完成後,啟動docker,並設定Shared Drives,選擇碟符(可以勾選所有),點選Apply,如果點選無效,請參考 https://blog.csdn.net/u012680857/article/details/77970351 ,必須Shared Drives,如圖:
    這裡寫圖片描述
  • hyperledger Fabric1.2
    下載fabric1.2, 使用git下載:git colon https://github.com/hyperledger/fabric ;也可以直接下載zip包:
    這裡寫圖片描述
    下載成功後,解壓檔案,將資料夾名稱改為:fabric-samples,我的檔案目錄如下:
    這裡寫圖片描述
    至此基本的環境搭建完成
  • 使用docker命令,執行測試
    本次測試,就是完成一筆簡單的轉賬,下面開始:
    找到fabric-samples/basic-network/.env檔案,開啟並增加配置:COMPOSE_CONVERT_WINDOWS_PATHS=1 該配置的作用是修改為windows路徑,預設為linux路徑;如圖:
    這裡寫圖片描述
    配置增加後,進入cmd,進入fabric-samples/basic-network資料夾,執行:
    docker-compose -f docker-compose.yml up -d
    命令執行效果如下:
    這裡寫圖片描述
    執行該命令,會自動下載docker的image並自動完成配置(docker-compose.yml檔案中有很多配置),執行成功如下:
    這裡寫圖片描述
    如果執行命令過程中出現以下錯誤,請設定Shared Drives,設定方法請參考:
    https://blog.csdn.net/u012680857/article/details/77970351
    這裡寫圖片描述
    如果出現以下錯誤,請在.env檔案中增加 COMPOSE_CONVERT_WINDOWS_PATHS=1 配置,上文有提及,錯誤如圖:
    這裡寫圖片描述
    執行fabric的docker環境基本完成,cmd中輸入docker ps 命令,執行效果如下:
    這裡寫圖片描述
    接下來開始測試fabric:
    cmd中執行
    docker exec -it -e”CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp” peer0.org1.example.com bash
    進入peer0.org1.example.com這個images的命令列,
    建立通道,輸入:
    peer channel create -o orderer.example.com:7050 -c mychannel -f /etc/hyperledger/configtx/channel.tx
    加入通道:
    peer channel join -b mychannel.block
    退出peer節點容器peer0.org1.example.com
    exit
    執行效果如圖:
    這裡寫圖片描述
    在cmd中,輸入 :
    docker exec -it cli /bin/bash,
    進入cli的命令列,給peer節點安裝鏈碼,輸入:
    peer chaincode install -n mycc -v v0 -p github.com/chaincode_example02/go
    例項化鏈碼
    peer chaincode instantiate -o orderer.example.co:7050 -C mychannel -n mycc -v v0 -c ‘{“Args”: [“init”,”a”,”100”,”b”,”200”]}’
    執行效果如圖:
    這裡寫圖片描述
    鏈碼例項化後,可以查詢初始值,初始值是:100,同樣在cli裡執行以下命令:
    peer chaincode query -C mychannel -n mycc -c ‘{“Args”: [“query”,”a”]}’
    效果如下:
    這裡寫圖片描述
    下面開始我們的轉移操作,從“a”轉移10到“b”,同樣還是再cli裡執行以下命令:
    peer chaincode invoke -C mychannel -n mycc -c ‘{“Args”: [“invoke”,”a”,”b”,”10”]}’
    查詢“a”和“b”的值,分別執行以下命令:
    peer chaincode query -C mychannel -n mycc -c ‘{“Args”: [“query”,”a”]}’
    peer chaincode query -C mychannel -n mycc -c ‘{“Args”: [“query”,”b”]}’
    結果如下:
    這裡寫圖片描述

如果能轉移成功,恭喜您!

主要參考資料: 《深度探索區塊鏈Hyperledger技術與應用》

相關文章