Hyperledger fabric 開發環境搭建

買賣虛擬貨幣
搭建方法主要參考http://hyperledger-fabric.readthedocs.io/en/latest/dev-setup/devenv/的英文文件說明,我用的是vagrant方法在windows(其他環境的就不要往下看了,我不敢保證)搭建,親測沒問題。

準備工作:

git client(https://git-scm.com/downloads)
go - 1.6 or later(https://golang.org/)
vagrant - 1.7.4 or later(https://www.vagrantup.com/)
virtualbox - 5.0 or later(https://www.virtualbox.org/)

這些都必須要用到,git主要用於同步原始碼,go主要是搭建go語言的編譯環境,因為原始碼是go語言編寫的。點選文件說明的連結下載,安裝方法和環境變數的設定可以百度,一大堆的參考資料,基本都比較靠譜。後兩個就更簡單,下載下來安裝就行了。另外,由於後面要用到ssh命令,我下載了一個cygwin64 terminal,安裝選擇包的時候搜尋openssh,然後選擇這個包,安裝之後,也需要配置環境變數,具體自己百度。


搭建步驟:

第一步:

首先確保你之前安裝go語言的編譯環境搭建好了。
然後在git命令列中輸入 :

git config --get core.autocrlfgit
config --global core.autocrlf false

沒有深究為什麼,按照文件來就行了。

第二步:

把github中的fabric原始碼拉下來

cd $gopath/src
mkdir -p github.com/hyperledger
cd github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git

$gopath這個目錄在windows下可以隨便定,建議後面的按他說的來。源文件的git clone命令可能是針對有linux id的來的,可以不用他的命令。

第三步:

用vagrant來配置虛擬機器

cd $gopath/src/github.com/hyperledger/fabric/devenv  
vagrant up

vagrant up第一次時間非常長,有時還斷,所以建議fq,而且要全域性加速,親測速度確實要穩定一些。文件裡說執行了這個命令之後就可以喝咖啡去了,要a few minutes,我表示不服。
vagrant裝好之後,大部分的工作就完成了,然後就是部署一些東西。
之後的vagrant up啟動都是這個樣子:


部署步驟:

開啟ssh:

cd $gopath/src/github.com/hyperledger/fabric/devenv
vagrant ssh

這個時候如果沒裝之前的ssh,就會報錯。 


安全驗證(可選):

這個是可選項,主要用作member的身份認證,具體作用體現在後面的命令加不加username上。

cd $gopath/src/github.com/hyperledger/fabric
make membersrvc && membersrvc


執行驗證peer:
開另外一個命令列視窗,執行

cd $gopath/src/github.com/hyperledger/fabric/devenv
vagrant ssh

然後

cd $gopath/src/github.com/hyperledger/fabric
make peer
peer node start --peer-chaincodedev

這樣,peer節點就起來了。


編譯chaincode:

另開一個命令列視窗,執行:

cd $gopath/src/github.com/hyperledger/fabric/devenv
vagrant ssh

然後選擇原始碼中的一個例子chaincode機型編譯

cd$gopath/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
go build

註冊和執行chaincode:

core_chaincode_id_name=mycc core_peer_address=0.0.0.0:7051 ./chaincode_example02

mycc是chaincode的名稱,可以隨便定,只要在後面的過程中對應使用就行了。


cli除錯:
我沒有用rest方式,用的cli。

使用者註冊:

cd $gopath/src/github.com/hyperledger/fabric/peer
peer network login

username要從membersrvc.yaml裡邊選,比如jim,然後會要求輸入密碼,把後面的密碼輸入就行了。然後註冊會成功。


peer視窗可以看到註冊資訊:


chaincode的部署交易:

peer chaincode deploy -n mycc -c '{"function":"init", "args": ["a","100", "b", "200"]}'
如果使用了安全模式:
core_security_enabled=true core_security_privacy=true peer chaincode deploy -u jim -n mycc -c '{"function":"init", "args": ["a","100", "b", "200"]}'

chaincode的呼叫交易:

peer chaincode invoke -l golang -n mycc -c '{"function": "invoke", "args": ["a", "b", "10"]}'
如果使用了安全模式:
core_security_enabled=true core_security_privacy=true peer chaincode invoke -u jim -l golang -n mycc -c '{"function": "invoke", "args": ["a", "b", "10"]}'

chaincode的查詢交易:

peer chaincode query -l golang -n mycc -c '{"function": "query", "args": ["b"]}'
安全模式:
core_security_enabled=true core_security_privacy=true peer chaincode query -u jim -l golang -n mycc -c '{"function": "query", "args": ["b"]}'


peer視窗


chaincode視窗


部署,呼叫和查詢三個交易在這幾個視窗中都可以看到。

刪除安全模式下的臨時檔案:

cd $gopath/src/github.com/hyperledger/fabric/devenv
vagrant ssh
rm -rf /var/hyperledger/production

先寫到這,後面關於hyperledger的設計邏輯,我想清楚了再跟持續大家彙報

有任何問題可以去hyperledger論壇交流:http://8btc.com/hyperledger

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;