您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“在mac下如何部署hyperledger fabric本地開發環境”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“在mac下如何部署hyperledger fabric本地開發環境”這篇文章吧。
準備工作:
Git client(https://git-scm.com/downloads) Go - 1.6 or later(https://golang.org/) Vagrant - 1.8.6 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啟動都是這個樣子:
這一步要單獨介紹一下vagrant有許多命令,大概方式 就是它會從vagrant 的box的鏡像中去下載最新版本的鏡像大概有1G多吧,然后進行安裝我們可以通過迅雷手動下載,最新版本。然后通過
vagrant box add hyperledger/fabric-baseimage virtualbox.box
的方式直接添加這個鏡像文件。下載地址(https://atlas.hashicorp.com/hyperledger/boxes/fabric-baseimage/versions/0.2.1/providers/virtualbox.box)
可以瀏覽一下鏡像庫
當前的最新版本是0.2.1
本地的版本可以通過
vagrant box update的方式進行更新。
然后安裝好鏡像以后,一般會報一個錯誤。就是連接不到 google.com上去去更新代碼,因為會在當前默認的工程目錄下去生成文件。出錯情況是這樣的:
==> default: package golang.org/x/tools/go/gcimporter15: unrecognized import path "golang.org/x/tools/go/gcimporter15" (https fetch: Get https://golang.org/x/tools/go/gcimporter15?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
golang.org/x/tools/go/這些地址都是連接不上的,因為被墻了。但其實這些代碼 都在github有的,我們要手動創建目錄然后通過github去下載它。比如這個tools目錄。
mkdir golang.org/x這個目錄在src目錄下
創建一個和github.com平級的golang.rog 目錄,然后呢進入x目錄
localhost:golang.org pro$ cd x/ localhost:x pro$ ls localhost:x pro$ git clone https://github.com/golang/tools.git
在x目錄下執行git clone 就可以了就生成了一個目錄結構了。生成結果如下
其實如果這種方式安裝好tools源碼后還是不能編譯通過的,我找了好久才發現。在hyperledger目錄下還有一個自己的工作空間。
是在vagrant up時生成的。我們進入fabric目錄看到
這里又需要生成,然后我以為只在自己的第一個工作空間添加上就好了,誰知它還會不斷去安裝tools源碼,原來是這里還需要,只要把我們
剛才在另一個目錄下git clone下載好的源碼拷貝到這里就行了。
上面那個gotools目錄是需要在devenv目錄下下執行vagrant up時才會生成 的,只要把這個問題解決了。安裝虛擬環境就沒有問題了。
部署步驟:
打開ssh:
cd $GOPATH/src/github.com/hyperledger/fabric/devenv vagrant ssh
這個時候如果沒裝之前的ssh,就會報錯。
以上登錄成功以后會顯示:@hyperledger-devenv 這樣 就表示虛擬環境安裝成功了。如果只是出現的unbunt的登錄,那表示安裝過程中有錯誤,雖然能登錄進來會有很多東西缺失導致編譯失敗。
回到 要目錄下我們查看,會有一個hyperledger的目錄這個目錄是映射我們的宿主主機的,當前我們在自己的電腦上更新了源代碼,這里也會自動更新的,方便我們開發。
安全驗證(可選):
To set up the local development environment with security enabled, you must first build and run the Certificate Authority (CA) server:
這個是可選項,主要用作member的身份認證,具體作用體現在后面的命令加不加username上。
make membersrvc && membersrvc
運行驗證peer:
開另外一個命令行窗口,運行
cd $GOPATH/src/github.com/hyperledger/fabric/devenv vagrant ssh
然后,要注意的是,以下操作都是在上面的vagrant ssh登錄以后才進行的操作。不是在當前的宿主機系統源碼上進行的操作。
cd $GOPATH/src/github.com/hyperledger/fabric make peer peer node start --peer-chaincodedev
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的名稱,可以隨便定,只要在后面的過程中對應使用就行了。
ready for invocations 這樣 就是這步OK了
CLI調試:
我沒有用REST方式,用的CLI。
用戶注冊:
再 通過vagrant ssh打開一個終端再 登錄。
cd $GOPATH/src/github.com/hyperledger/fabric/peer peer network login
username要從membersrvc.yaml里邊選,比如alice試了幾次別的用戶都不成功,然后會要求輸入密碼,把后面的密碼輸入就行了。然后注冊會成功。
membersrvc.yaml文件用戶列表:
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窗口
部署,調用和查詢三個交易在這幾個窗口中都可以看到。
這個部署總算是完成了,但是上面黑色窗口的部門我沒用,我跑了一下他自帶的智能合約,
真心感覺 hyperledger太龐大了,不是一般人能玩的。高度模塊化 ,而且現在處于開發階段變化特別大。比如上面有一部門是要,編譯和啟動用戶模塊membersrvc。在現在的git分支中沒有這個代碼 了不知道,為什么。所以就沒用,但是在0.6分支還是有這塊模塊的。
但
但是在master分支下這塊兒的代碼沒有,也請有分析過的給指導一下。
以上是“在mac下如何部署hyperledger fabric本地開發環境”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。