在Ubuntu上部署Fabric環(huán)境(+出錯(cuò)記錄)

首先在VMware Workstation虛擬機(jī)上安裝Ubuntu,配置好環(huán)境,調(diào)好中文語(yǔ)言、分辨率后,打開終端。

PS:在安裝Ubuntu系統(tǒng)后如果發(fā)現(xiàn)與Windows系統(tǒng)的文件不能相互復(fù)制,網(wǎng)上查了很多教程,發(fā)現(xiàn)都是不能用的,能實(shí)現(xiàn)的方法如下所示:
打開終端,輸入:

sudo apt-get autoremove open-vm-tools
sudo apt-get install open-vm-tools-desktop

然后重啟

特別推薦
如果用戶切換到root下,就不用考慮權(quán)限的問(wèn)題,這樣會(huì)省去哼多麻煩,不用加sudo,安裝其他的軟件業(yè)方便

cc@cc-fibric:~$ sudo -i
[sudo] password for cc: 
root@cc-fibric:~# 

接下來(lái),就正式開始Fabric的部署了,這是在普通用戶下的(在root用戶下就不用sudo):

第一步:配置好基本的Ubuntu環(huán)境**

安裝 Vim:

sudo apt-get install vim

安裝Curl:

sudo apt-get update
sudo apt install curl

安裝Git:

sudo apt-get install git

第二步:安裝go語(yǔ)言和搭配環(huán)境變量

安裝go語(yǔ)言:

sudo apt-getinstall golang

查看go 語(yǔ)言版本:

root@cc-fibric:~# go version
go version go1.11 linux/amd64

查看go語(yǔ)言的安裝路徑等:

root@cc-fibric:~# go env
微信截圖_20181106105602.png

在安裝好go語(yǔ)言之后,還需要配置****go****語(yǔ)言的環(huán)境變量:

vim ~/.profile //編輯當(dāng)前用戶的環(huán)境變量

當(dāng)然,如果需要在所有用戶下都生效,即在root賬戶下生效,建議在 /etc/profile目錄下配置環(huán)境變量

root@cc-fibric:~# vim /etc/profile

在 profile的最后添加以下內(nèi)容

可以再自己的home目錄下建立一個(gè)go的空文件目錄(用mkdir 語(yǔ)句),來(lái)設(shè)置go語(yǔ)言的環(huán)境變量

具體介紹,可以參考這個(gè)鏈接:go語(yǔ)言中文網(wǎng)

export PATH=$PATH:/usr/local/go/bin (根據(jù)自己的情況而定)   //設(shè)置為你自己的go安裝目錄
export GOROOT=/usr/local/go
export GOPATH=$HOME/cc/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
微信截圖_20181106105043.png

第三步:安裝docker

Ubuntu有自帶的docker:

sudo apt-get update
sudo apt-get install -y docker.io
sudo ln -sf /usr/bin/docker.io  /usr/local/bin/docker //軟鏈接,就行wonder下的建立快捷鍵一樣

查看版本:

root@cc-fibric:~# docker -v
Docker version 17.03.2-ce, build f5ec1e2

如果遇到問(wèn)題,可以停用、啟動(dòng)docker。

停用:sudo service docker stop
啟用:sudo service docker start

然后修改當(dāng)前用戶的權(quán)限:

sudo usermod -aG docker $USER

添加鏡像加速:

sudo mkdir -p /etc/docker                     //建立docker文件
sudo gedit /etc/docker/daemon.json        //也可以用vim 編輯,隨便

在daemon.json文件中加入如下信息:

{ "registry-mirrors":["https://registry.docker-cn.com"] }

Docker-Compose的安裝

運(yùn)行以下命令下載最新版本的docker-compose:

sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-compose

這個(gè)網(wǎng)站可能跑不通,讀者可以在這個(gè)網(wǎng)站:docker-compose拉取地址

自己去拉取最新的docker-compose,語(yǔ)句都是一樣的,只不過(guò)換了網(wǎng)址:https://github.com/docker/compose/releases/

更改二進(jìn)制文件的權(quán)限,使其能夠運(yùn)行:

sudo chmod +x /usr/local/bin/docker-compose

另一個(gè)辦法 源碼安裝

我們從官方網(wǎng)站(https://github.com/docker/compose/releases)上下載源碼壓縮包(最新版),放到Downlands目錄下,

切換到給目錄下,將docker-compose-Linux-x86_64改名為docker-compose

sudo  mv  docker-compose-Linux-x86_64  docker-compose
sudo mv  docker-compose /usr/local/bin/docker-compos
chmod +x /usr/local/bin/docker-compose

測(cè)試安裝:

root@cc-fibric:~# docker-compose version
docker-compose version 1.23.0-rc3, build ea3d406e
docker-py version: 3.5.0
CPython version: 3.6.6
OpenSSL version: OpenSSL 1.1.0f  25 May 2017

第四步 Fabric源碼下載

在go的環(huán)境變量下建立文件夾,切換到該文件夾下:

cd ~/go/src/github.com/hyperledger

用git命令下載完整源碼

git clone https://github.com/hyperledger/fabric.git

由于我們只是在搭建環(huán)境。不需要最新的代碼,所以只需要切換到v1.0.0大版本就行。

cd  ~/go/src/github.com/hyperledger/fabric           //進(jìn)入fabric目錄git checkout v1.0.0
git checkout v1.0.0

我現(xiàn)在切換到較新的版本 v1.1
Fabric源碼下載完成??!

第五步 Fabric Docker鏡像的下載

切換到fabric的examples文件下:

 cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/

運(yùn)行命令下載鏡像:

 source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

下載完畢后,我們運(yùn)行以下命令檢查下載的鏡像列表:

docker images
微信截圖_20181106102903.png

第六步 啟動(dòng)Fabric網(wǎng)絡(luò)并完成ChainCode的測(cè)試

切換到examples/e2e_cli文件下,啟動(dòng)測(cè)試?yán)樱?/p>

root@cc-fibric:cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli
root@cc-fibric:/home/cc/go/src/github.com/hyperledger/fabric/examples/e2e_cli
./network_setup.sh up
setting to default channel 'mychannel'
mychannel

Using cryptogen -> /home/cc/go/src/github.com/hyperledger/fabric/examples/e2e_cli/../../release/linux-amd64/bin/cryptogen

##########################################################
##### Generate certificates using cryptogen tool #########
##########################################################
.................
.................
.................
2018-11-01 09:43:07.708 UTC [msp/identity] Sign -> DEBU 007 Sign: digest: 88E6F9361B88875DC921D2139523C130AAD7DFDAECD142697FC10198AD4835B0 
Query Result: 90
2018-11-01 09:43:23.521 UTC [main] main -> INFO 008 Exiting.....
===================== Query on PEER3 on channel 'mychannel' is successful ===================== 

===================== All GOOD, End-2-End execution completed ===================== 


 _____   _   _   ____            _____   ____    _____ 
| ____| | \ | | |  _ \          | ____| |___ \  | ____|
|  _|   |  \| | | | | |  _____  |  _|     __) | |  _|  
| |___  | |\  | | |_| | |_____| | |___   / __/  | |___ 
|_____| |_| \_| |____/          |_____| |_____| |_____|

啟動(dòng)和關(guān)閉:

啟動(dòng):./network_setup.sh up
關(guān)閉:./network_setup.sh down

第七 出錯(cuò)記錄

1.ERRO 001 Cannot run peer because error when setting up MSP from directory........msp.......

2.ERRO 001 Cannot run peer because error when setting up MSP from directory /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp......

解決辦法:

這兩個(gè)問(wèn)題都是因?yàn)閒abric版本和docker鏡像版本不一致查看

git branch -a
微信截圖_20181106102733.png

結(jié)果帶*就是你的branch,如果不是v1.0.0,就git checkout v1.0.0

當(dāng)然,也可以下載對(duì)應(yīng)的鏡像(如果版本為v 1.1):

cd $GOPATH/src/github.com/hyperledger/fabric/examples/e2e_cli/
source download-dockerimages.sh -c x86_64-1.1.0 -f x86_64-1.1.0
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 00 導(dǎo)言 由 Linux 基金會(huì)發(fā)起創(chuàng)建的開源區(qū)塊鏈分布式賬本 —— Hyperledger Fabric,...
    鏈播學(xué)院閱讀 8,231評(píng)論 1 18
  • 聽著古靈精怪的歌 心里卻是另外一種世界 說(shuō)是兒時(shí)的原聲帶 我怎么不記得 閉眼想到的未來(lái) 有些如夢(mèng)似幻 看著手機(jī)里的...
    三顆豌豆閱讀 260評(píng)論 0 0
  • 你說(shuō)你坐船不是為了打魚,而是因?yàn)橄矚g海。 夜市賣工藝品的很多。 吃了好多好多的海鮮,認(rèn)識(shí)了很多有趣的人。 也去了很...
    很多人沒得選擇閱讀 317評(píng)論 0 0
  • 上一次,寫的是Anson,帶團(tuán)中遇到的一位戶外教練。 這一次,寫的是一位客人。稱他為九吧。名字好難解釋。 這位客人...
    黃水娣很二閱讀 380評(píng)論 1 0

友情鏈接更多精彩內(nèi)容