之前筆者寫了一篇Fabric1.0 Beta的部署和Fabric 1.0的多機部署。但是很多人在部署Fabric的時候還是很容易出問題,是以我就再把Fabric 1.0的單機環境搭建講一下。其實很多内容和前面部落格相同。下面開始我們的環境搭建工作:
這一步其實沒啥好說的,下載下傳好最新版的VirtualBox,下載下傳Ubuntu Server,我用的是Ubuntu16.04.2 X64 Server。在安裝完Ubuntu後,需要保證apt source是國内的,不然如果是國外的話會很慢很慢的。具體做法是
就可以把所有的us.改為cn.了。然後輸入:wq即可儲存退出。
更新一下源。
然後安裝ssh,這樣接下來就可以用putty或者SecureCRT之類的用戶端遠端連接配接Ubuntu了。
接下來編輯目前使用者的環境變量:
添加以下内容:
編輯儲存并退出vi後,記得把這些環境載入:
我們把go的目錄GOPATH設定為目前使用者的檔案夾下,是以記得建立go檔案夾
我們可以使用阿裡提供的鏡像,安裝也非常友善。通過以下指令來安裝Docker
安裝完成後需要修改目前使用者(我使用的使用者叫fabric)權限:
登出并重新登入,然後添加阿裡雲的Docker Hub鏡像:
<a></a>
不同的版本添加方法是不一樣的,官方的文檔如下:
<a href="https://cr.console.aliyun.com/#/accelerator">https://cr.console.aliyun.com/#/accelerator</a>
Docker-compose是支援通過模闆腳本批量建立Docker容器的一個元件。在安裝Docker-Compose之前,需要安裝Python-pip,運作腳本:
由于Fabric一直在更新,所有我們并不需要最新最新的源碼,需要切換到v1.0.0版本的源碼即可:
這個其實很簡單,因為我們已經設定了Docker Hub鏡像位址,是以下載下傳也會很快。官方檔案也提供了批量下載下傳的腳本。我們直接運作:
這樣就可以下載下傳所有需要的Fabric Docker鏡像了。由于我們設定了國内的鏡像,是以下載下傳應該是比較快的。
下載下傳完畢後,我們運作以下指令檢查下載下傳的鏡像清單:
得到的結果如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLxQTN4kzN3ATMy0yNyATM0YTMxAzNygDM3EDMy0SNyYjMvwFOwcTMwIzLcVjM2IzLcd2bsJ2Lc12bj5ycn9Gbi52YucTMwIzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
我們仍然停留在e2e_cli檔案夾,這裡提供了啟動、關閉Fabric網絡的自動化腳本。我們要啟動Fabric網絡,并自動運作Example02 ChainCode的測試,執行一個指令:
這個做了以下操作:
7.1編譯生成Fabric公私鑰、證書的程式,程式在目錄:fabric/release/linux-amd64/bin
7.2基于configtx.yaml生成創世區塊和通道相關資訊,并儲存在channel-artifacts檔案夾。
7.3基于crypto-config.yaml生成公私鑰和證書資訊,并儲存在crypto-config檔案夾中。
7.4基于docker-compose-cli.yaml啟動1Orderer+4Peer+1CLI的Fabric容器。
7.5在CLI啟動的時候,會運作scripts/script.sh檔案,這個腳本檔案包含了建立Channel,加入Channel,安裝Example02,運作Example02等功能。
最後運作完畢,我們可以看到這樣的界面:
如果您看到這個界面,這說明我們整個Fabric網絡已經通了。
我們仍然是以現在安裝好的Example02為例,在官方例子中,channel名字是mychannel,鍊碼的名字是mycc。我們首先進入CLI,我們重新打開一個指令行視窗,輸入:
運作以下指令可以查詢a賬戶的餘額:
可以看到餘額是90:
然後,我們試一試把a賬戶的餘額再轉20元給b賬戶,運作指令:
運作結果為:
現在轉賬完畢, 我們試一試再查詢一下a賬戶的餘額,沒問題的話,應該是隻剩下70了。我們看看實際情況:
果然,一切正常。最後我們要關閉Fabric網絡,首先需要運作exit指令退出cli容器。關閉Fabric的指令與啟動類似,指令為:
現在我們整個Fabric的環境已經測試完畢,恭喜,一切正常,接下來我們就是去做自己的區塊鍊的開發。希望我的文章對大家有所幫助。
本文轉自深藍居部落格園部落格,原文連結:http://www.cnblogs.com/studyzy/p/7437157.html,如需轉載請自行聯系原作者