Hyperledger fabric 開發環境搭建


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

准備工作:

Git client

Go - 1.6 or later

Vagrant - 1.7.4 or later

VirtualBox - 5.0 or later

這些都必須要用到,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第一次時間非常長,有時還斷,所以建議翻牆,而且要全局加速,親測速度確實要穩定一些。文檔里說運行了這個命令之后就可以喝咖啡去了,要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>
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的設計邏輯,我想清楚了再跟持續大家匯報
 
 
 
 
 
 
 
 
 

 

 

 

 

 

 
        

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM