在mac下如何部署hyperledgerfabric本地開發(fā)環(huán)境

這篇文章主要為大家展示了“在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境”這篇文章吧。

創(chuàng)新互聯(lián)長期為1000多家客戶提供的網(wǎng)站建設(shè)服務,團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為三沙企業(yè)提供專業(yè)的網(wǎng)站設(shè)計、成都做網(wǎng)站,三沙網(wǎng)站改版等技術(shù)服務。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

準備工作:

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語言的編譯環(huán)境,因為源碼是go語言編寫的。點擊文檔說明的鏈接下載,安裝方法和環(huán)境變量的設(shè)置可以百度,一大堆的參考資料,基本都比較靠譜。后兩個就更簡單,下載下來安裝就行了。另外,由于后面要用到ssh命令,我下載了一個Cygwin64 Terminal,安裝選擇包的時候搜索openssh,然后選擇這個包,安裝之后,也需要配置環(huán)境變量,具體自己百度。

搭建步驟:

第一步:

首先確保你之前安裝go語言的編譯環(huán)境搭建好了。

然后在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,而且要全局加速,親測速度確實要穩(wěn)定一些。文檔里說運行了這個命令之后就可以喝咖啡去了,要a few minutes,我表示不服。

Vagrant裝好之后,大部分的工作就完成了,然后就是部署一些東西。

之后的vagrant up啟動都是這個樣子:

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

這一步要單獨介紹一下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)

可以瀏覽一下鏡像庫

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

當前的最新版本是0.2.1

本地的版本可以通過

vagrant box update的方式進行更新。

然后安裝好鏡像以后,一般會報一個錯誤。就是連接不到 google.com上去去更新代碼,因為會在當前默認的工程目錄下去生成文件。出錯情況是這樣的:

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

==> 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有的,我們要手動創(chuàng)建目錄然后通過github去下載它。比如這個tools目錄。

mkdirgolang.org/x這個目錄在src目錄下

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

創(chuàng)建一個和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目錄下執(zhí)行g(shù)it clone 就可以了就生成了一個目錄結(jié)構(gòu)了。生成結(jié)果如下

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

其實如果這種方式安裝好tools源碼后還是不能編譯通過的,我找了好久才發(fā)現(xiàn)。在hyperledger目錄下還有一個自己的工作空間。

是在vagrant up時生成的。我們進入fabric目錄看到

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

這里又需要生成,然后我以為只在自己的第一個工作空間添加上就好了,誰知它還會不斷去安裝tools源碼,原來是這里還需要,只要把我們

剛才在另一個目錄下git clone下載好的源碼拷貝到這里就行了。

上面那個gotools目錄是需要在devenv目錄下下執(zhí)行vagrant up時才會生成 的,只要把這個問題解決了。安裝虛擬環(huán)境就沒有問題了。

部署步驟:

打開ssh

cd $GOPATH/src/github.com/hyperledger/fabric/devenv

vagrant ssh

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

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

以上登錄成功以后會顯示:@hyperledger-devenv  這樣 就表示虛擬環(huán)境安裝成功了。如果只是出現(xiàn)的unbunt的登錄,那表示安裝過程中有錯誤,雖然能登錄進來會有很多東西缺失導致編譯失敗。

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

回到 要目錄下我們查看,會有一個hyperledger的目錄這個目錄是映射我們的宿主主機的,當前我們在自己的電腦上更新了源代碼,這里也會自動更新的,方便我們開發(fā)。

安全驗證(可選):

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

To set up the local development environment with security enabled, you must first build and run the Certificate Authority(CA) server:

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

make membersrvc && membersrvc

運行驗證peer

開另外一個命令行窗口,運行

cd $GOPATH/src/github.com/hyperledger/fabric/devenv

vagrant ssh

然后,要注意的是,以下操作都是在上面的vagrant ssh登錄以后才進行的操作。不是在當前的宿主機系統(tǒng)源碼上進行的操作。

cd $GOPATH/src/github.com/hyperledger/fabric

make peer

peer node start --peer-chaincodedev

make peer過程會比較久我這里大概用了將近一小時左右,要安裝下載一堆東西

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

下載完成以后會出現(xiàn)下面安裝的的界面。

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

上面完成后執(zhí)行:peer node start --peer-chaincodedev 這樣,peer節(jié)點就起來了。

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

編譯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的名稱,可以隨便定,只要在后面的過程中對應使用就行了。

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

ready for invocations 這樣 就是這步OK了

CLI調(diào)試:

我沒有用REST方式,用的CLI。

用戶注冊:

再 通過vagrant ssh打開一個終端再 登錄。

cd $GOPATH/src/github.com/hyperledger/fabric/peer

peer network login

username要從membersrvc.yaml里邊選,比如alice試了幾次別的用戶都不成功,然后會要求輸入密碼,把后面的密碼輸入就行了。然后注冊會成功。

membersrvc.yaml文件用戶列表:

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

peer窗口可以看到注冊信息:

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

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的調(diào)用交易:

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"]}'

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

peer窗口

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

chaincode窗口

部署,調(diào)用和查詢?nèi)齻€交易在這幾個窗口中都可以看到。

這個部署總算是完成了,但是上面黑色窗口的部門我沒用,我跑了一下他自帶的智能合約,

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

真心感覺 hyperledger太龐大了,不是一般人能玩的。高度模塊化 ,而且現(xiàn)在處于開發(fā)階段變化特別大。比如上面有一部門是要,編譯和啟動用戶模塊membersrvc。在現(xiàn)在的git分支中沒有這個代碼 了不知道,為什么。所以就沒用,但是在0.6分支還是有這塊模塊的。

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

但是在master分支下這塊兒的代碼沒有,也請有分析過的給指導一下。

在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境

以上是“在mac下如何部署hyperledger fabric本地開發(fā)環(huán)境”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

新聞標題:在mac下如何部署hyperledgerfabric本地開發(fā)環(huán)境
本文網(wǎng)址:http://bm7419.com/article18/pcgigp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、網(wǎng)站改版自適應網(wǎng)站、網(wǎng)站排名、動態(tài)網(wǎng)站、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化