搭建hyperledger-fabric環(huán)境
一、準備工作
安裝虛擬機virtualBox-導(dǎo)入ubuntu。導(dǎo)入之后會發(fā)現(xiàn)有頁面很小的情況,并且打開終端terminal(快捷鍵:Ctrl+Alt+T)無法使用復(fù)制粘貼功能。按照以下步驟更改:
設(shè)備-共享粘貼板設(shè)為雙向,拖放設(shè)為雙向-安裝增強功能-運行
打開終端
curl是利用URL語法在命令行方式下工作的開源文件傳輸工具。它被廣泛應(yīng)用在Unix、多種Linux發(fā)行版中,并且有DOS和Win32、Win64下的移植版本。作用:文件傳輸。安裝curl:
$ sudo?apt?install?curl
二、安裝go語言
1. 下載
首先官網(wǎng)查看最新版本:https://golang.google.cn/dl/

目前穩(wěn)定的版本是go1.12.1,下載go:
$ wget https://storage.googleapis.com/golang/go1.12.1.linux-amd64.tar.gz
如果下載速度太慢,可以自己在官網(wǎng)下載,拖到虛擬機主頁面home,再運用下個命令解壓:

解壓:sudo tar -C /usr/local -xzf go1.12.1.linux-amd64.tar.gz
2. 配置go語言環(huán)境變量
進入.bashrc 配置環(huán)境變量,先安裝vim:
$?sudo?apt install?vim
$ sudo vim ~/.bashrc
在最后添加以下內(nèi)容:
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$HOME/go/bin

注意出現(xiàn)“--插入--”時才可以寫入,右鍵直接粘貼會出現(xiàn)粘貼不全的問題,但會觸發(fā)進入可寫狀態(tài),可以把之前粘貼不全的指令刪除,重新粘貼就可以啦,粘貼完后,要按Esc退出寫入模式。
:wq 保存并退出,不要忘記打冒號~
3.載入環(huán)境變量
$ source ~/.profile
我們把go的目錄GOPATH設(shè)置在當(dāng)前用戶的文件夾下,所以記得要創(chuàng)建go文件夾
回到根目錄:cd ~
創(chuàng)建go文件夾:mkdir go
測試:go version

go環(huán)境安裝完成?。?/b>!
三、安裝docker
一開始用這個指令出現(xiàn)錯誤:

可以按照docker官網(wǎng)提示安裝:
https://docs.docker.com/install/linux/docker-ce/ubuntu/#prerequisites
1. 前期準備
(1) 更新apt包索引:$ sudo apt-get update
(2)安裝包以允許apt通過HTTPS使用存儲庫:
$?sudo?apt-get install?\
apt-transport-https?\
ca-certificates?\
curl?\
gnupg-agent?\
software-properties-common
(3) 添加Docker的官方GPG密鑰:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88通過搜索指紋的最后8個字符,驗證您現(xiàn)在擁有帶指紋的密鑰 。
$ sudo apt-key fingerprint 0EBFCD88

(4) 使用以下命令設(shè)置穩(wěn)定存儲庫。
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
2. 安裝DOCKER CE
(1) 更新apt包索引。
$ sudo apt-get update
(2) 安裝最新版本的Docker CE和containerd:
$sudo apt-get install docker-ce docker-ce-cli containerd.io
通過運行hello-world 映像驗證是否正確安裝了Docker CE
$ sudo docker run hello-world
出現(xiàn)問題:

本來以為是未加入用戶組的原因,但是切換到root(ubuntu 使用 sudo su 切換)就可以了。

在Ubuntu終端輸入sudo加命令可以實現(xiàn),如果需要root則使用su,直接把$變成#.退出時按快捷鍵ctrl+D退出。
3.添加docker進用戶組。
sudo groupadd docker #添加docker用戶組
sudo gpasswd -a $USER docker #將登陸用戶加入到docker用戶組中
newgrp docker #更新用戶組
docker ps #測試docker命令是否可以使用sudo正常使用

下載node.js
$ curl -sL https://deb.nodesource.com/setup_8.x?| sudo -E bash
安裝node.js
$ sudo?apt-get install?-y nodejs
出現(xiàn)錯誤

重新試一下,就好了。
配置我們的鏡像加速器
https://cr.console.aliyun.com/cn-hangzhou/mirrors獲取你自己的加速地址
sudo mkdir -p /etc/docker
sudo vim /etc/docker/daemon.json
將以下內(nèi)容寫入文本:
{
"registry-mirrors": ["https://145hgoxo.mirror.aliyuncs.com"]
}
自己的鏡像地址,阿里云為每個人分配的地址是不一樣的??梢宰约喝ド暾?。
此步驟也可以用官網(wǎng)的指令配置鏡像加速器。

四、Docker-Compose的安裝
(1).運行以下命令下載最新版本的 docker-compose:
$ sudo?apt-get install?python-pip
官網(wǎng)查詢最新版本https://docs.docker.com/compose/install/
$ sudo curl -L?"https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname?-s)-$(uname -m)" -o?/usr/local/bin/docker-compose

出現(xiàn)問題,速度太慢

換個網(wǎng),再重新試一次,就好了。
(2)更改二進制文件的權(quán)限,使其能夠運行:
$ sudo chmod +x /usr/local/bin/docker-compose
(3) 測試安裝:
$ docker-compose --version
下面方法也是對的
Docker-compose是支持通過模板腳本批量創(chuàng)建Docker容器的一個組件。在安裝Docker-Compose之前,需要安裝Python-pip,運行腳本:
$ sudo?apt-get install?python-pip
然后是安裝docker-compose,可以從國內(nèi)的進行DaoClound下載,為了速度快接下來從DaoClound安裝Docker-compose,運行腳本:
$ curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
$ sudo?mv?~/docker-compose /usr/local/bin/docker-compose
$ chmod?+x /usr/local/bin/docker-compose
五、Fabric源碼下載
首先建好存放源碼的文件夾(也可手動建)路徑如下:出現(xiàn)錯誤建不了,我是手動建的,按照路徑一路建文件夾,但是第二次安裝時這個指令又可以用了。

$ mkdir -p ~/go/src/github.com/hyperledger
$ cd?~/go/src/github.com/hyperledger
用git命令下載完整源碼
$ git clone https://github.com/hyperledger/fabric.git
這步很慢,出現(xiàn)錯誤,換個網(wǎng)絡(luò)就好了。

*tips* Fabric代碼一直在更新,以后如果只想下載最新的代碼,可以通過–single-branch -b master –depth 1 命令選項來只獲取master分支最新的代碼。
由于我們只是在搭建環(huán)境。不需要最新的代碼,所以只需要切換到v1.0.0大版本就行。
$ cd ~/go/src/github.com/hyperledger/fabric進入fabric目錄
$ git checkout v1.0.0
六、Fabric Docker鏡像的下載
之前我們已經(jīng)設(shè)置了Docker Hub鏡像地址,所以下載也會很快。運行指令:
$ cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
$ source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0
下載完畢后,我們運行以下命令檢查下載的鏡像列表:
$ docker images
結(jié)果如下圖

七.啟動Fabric網(wǎng)絡(luò)并完成ChainCode的測試
現(xiàn)在還停留在e2e_cli文件中(如果沒有先進入),這里提供了啟動、關(guān)閉Fabric網(wǎng)絡(luò)的自動化腳本。我們要啟動Fabric網(wǎng)絡(luò),并自動運行Example02 ChainCode的測試,執(zhí)行一個命令:
$ ./network_setup.sh up
這個指令具體進行了如下操作:
編譯生成Fabric公私鑰、證書的程序,程序在目錄:fabric/release/linux-amd64/bin
基于configtx.yaml生成創(chuàng)世區(qū)塊和通道相關(guān)信息,并保存在channel-artifacts文件夾。
基于crypto-config.yaml生成公私鑰和證書信息,并保存在crypto-config文件夾中。
基于docker-compose-cli.yaml啟動1Orderer+4Peer+1CLI的Fabric容器。
在CLI啟動的時候,會運行scripts/script.sh文件,這個腳本文件包含了創(chuàng)建Channel,加入Channel,安裝Example02,運行Example02等功能。
稍等一會以后,會看見這個界面,那就恭喜啦,整個Fabric網(wǎng)絡(luò)已經(jīng)通了!

測試完,下次再測試前一定要輸入指令:
$ ./network_setup.sh down?
否則就會出錯誤。
附言:
強制中斷命令:Ctrl+C
返回主目錄:cd
退出root權(quán)限:Ctrl+D
輸入指令下載,如果遇到長時間不動,可以直接強制中斷,重新輸入執(zhí)行。
主要參考
[1]https://blog.csdn.net/so5418418/article/details/78355868 區(qū)塊鏈之Hyperledger(超級賬本)Fabric v1.0 的環(huán)境搭建(超詳細教程)
[2][http://www.cnblogs.com/studyzy/p/7437157.html]?深藍居
[3]https://www.cnblogs.com/X-knight/p/9511491.html 【推薦】 HyperLedger Fabric環(huán)境搭建、測試及注意事項 [詳盡指導(dǎo)] [親測有效]
[4]https://blog.csdn.net/diligent_lee/article/details/79098302Ubuntu16.04 安裝 Docker及 docker-compose